converting a breakpoint function to audiorate


    Aug 03 2006 | 4:58 pm
    I'm looking for a nice way to play back a breakpoint function at audio rate.
    The idea is to use something like [function] in combination with pattr to switch curves, and have these curves converted to a lookup table on the fly for flexible playback. I want to treat the breakpoint function as if it were continuous data, so I can jump, reverse, speedup etc. at any time.
    My first guess is to convert the function to an audio lookup table, but I can't find a good way to write values to a buffer~ instantly /non-realtime without the need for custom externals. Uzi-ing every sample using peek~ doesn't feel like the right thing to do.
    My main priority is fast curve switching so audio lookup might be overkill in that sense (?). I think the ideal solution is to interpolate in realtime between x-y pairs using a signal feed. Like an MSP equivalent of [funbuff] using floating point values for both x and y.
    The only object I know which come close is techno~, but it's capabilities and functions are too specific for my needs. Anyone experience with this?
    cheers, -thijs

    • Aug 03 2006 | 5:16 pm
      i would think the line~ object would work...
    • Aug 03 2006 | 5:31 pm
      Maybe [zigzag~]?
      On Aug 3, 2006, at 12:58 PM, Thijs Koerselman wrote:
      > I'm looking for a nice way to play back a breakpoint function at > audio rate. > > The idea is to use something like [function] in combination with > pattr to switch curves, and have these curves converted to a lookup > table on the fly for flexible playback. I want to treat the > breakpoint function as if it were continuous data, so I can jump, > reverse, speedup etc. at any time.
    • Aug 03 2006 | 6:12 pm
      One problem with both zigzag~ and line~ is that you can't jump between positions. I also need floating point index. If you have one point at x2.5-y10 and one at x5.2-y3.7 how can you jump to x 3.8?
      -thijs
      On 8/3/06, David Stanford wrote: > > Maybe [zigzag~]? > > On Aug 3, 2006, at 12:58 PM, Thijs Koerselman wrote: > > > I'm looking for a nice way to play back a breakpoint function at > > audio rate. > > > > The idea is to use something like [function] in combination with > > pattr to switch curves, and have these curves converted to a lookup > > table on the fly for flexible playback. I want to treat the > > breakpoint function as if it were continuous data, so I can jump, > > reverse, speedup etc. at any time. >
    • Aug 03 2006 | 6:23 pm
      With [zigzag~], you can jump to f.p. indices using the "jump" message with floating point values. Or am is misunderstanding what you mean?
      On Aug 3, 2006, at 2:12 PM, Thijs Koerselman wrote:
      > One problem with both zigzag~ and line~ is that you can't jump > between positions. I also need floating point index. If you have > one point at x2.5-y10 and one at x5.2-y3.7 how can you jump to x 3.8? > > -thijs
    • Aug 03 2006 | 8:27 pm
      I guess you're right. I never used the object before, and the reference manual implies that only ints can be used for jump, but the help file shows different. I'm going to give it a try. Thanks for the help.
      -thijs
      On 8/3/06, David Stanford wrote: > > With [zigzag~], you can jump to f.p. indices using the "jump" > message with floating point values. Or am is misunderstanding what > you mean? > > >
    • Aug 04 2006 | 1:41 am
      waveform~ is pretty good, gives out x, y mouse data.
    • Aug 04 2006 | 11:58 am
      On 8/4/06, bin ray wrote: > > > waveform~ is pretty good, gives out x, y mouse data.
      I don't see how waveform~ can be used to lookup a interpolate a breakpoint function. It turns out that explaining myself is a harder than I think most of the time. Its definitely not one of my strong points:-)
      At the risk of being en idiot, I ended up writing a msp external to do what I want. I wanted to have the interpolation functionality of the [function] object (input float x and get interpolated value y ) at audiorate and without the need for the UI.
      In case anyone cares I'll share it once its finished.
      -thijs
    • Aug 04 2006 | 12:16 pm
      i've had some success using waveform~ as a breakpoint editor, you can use the mouse output and selection area to draw curves into the buffer~ that youre working on i did use uzi and peek~, and i've made my curves lower resolution, 1 second of buffer~ for 16 seconds of control at the default pitch. higher rates of control had problems uziing that many values smoothly into the buffer~. it sounds good though, but you need a slide~ object in some instances. other ways to do it might be copying sections into your buffer~ using a hacked mxj buf.Op A top tip with animating waveform , is to use thispatcher to draw something over it as you change values, for some reason, this makes waveform~ refresh super fast so it looks nice when its animated. dunno why.
      post your ideas , i'm interested to see your solutions, i'll try and get mine up some time soon