Buffer~ and Groove~ resizing issue


    Jul 27 2006 | 9:53 pm
    Hey everyone. I'm currently building a small patch that takes a trigger
    from an on/off guitar footswitch and uses that to 'freeze' audio going
    through the patch. The way that I'm doing that is I am constantly recording
    audio to a buffer in the patch while routing the non-frozen audio into a
    selector object. I then 'freeze' the audio by hitting the footswitch and
    routing the recorded audio out of the selector~ object. The groove~ object
    just plays the audio in the buffer repeatedly, and since the buffer is very
    small, it sounds like it's frozen.
    All of this works fine, however the problem in the patch arises when I try
    to resize the buffer by sending it a size $1 message followed by a clear
    message. Assumedly after resizing and then clearing the buffer, the record~
    object should just function as normal and it does, but the sound that comes
    out of the groove~ object attached to the buffer is just a hum. If I double
    click on the buffer~ and look at the waveform, everything looks like it
    should. Somehow, after changing the size of the buffer~, that effectively
    'breaks' the groove~ object and the patch doesnt work as it should. Does
    anyone have any insight as to what's wrong with the groove~ object in the
    patch below?
    thanks
    nic
    max v2;

    • Jul 27 2006 | 10:50 pm
    • Jul 28 2006 | 5:02 pm
      I've tried the tapin~ tapout~ thing before but it just doesnt sound that
      perfect to me. The thing about the buffer is that it seems like it is
      'made' to do the stuff I need. It sounds great until I resize it. I would
      try the two buffer approach but after I resize any buffer it stops the
      function off the groove~ object entirely, until I reset the max patch.
      Any other ideas? Anyone?
      Nic
    • Jul 28 2006 | 5:45 pm
      Why not just leave your buffer~ size alone... the beauty of groove~ is
      that it lets you change the loop start and end points on the fly. if
      you use a larger buffer than you need for each frozen-loop, you can
      just change the loop points to a different sized loop, or when trying
      to clear the sound, move the loop points to a silent portion of the
      buffer.
      I've tried the tapin~ tapout~ thing before but it just doesnt sound that
      perfect to me. The thing about the buffer is that it seems like it is
      'made' to do the stuff I need. It sounds great until I resize it. I would
      try the two buffer approach but after I resize any buffer it stops the
      function off the groove~ object entirely, until I reset the max patch.
      Any other ideas? Anyone?
      Nic
    • Jul 28 2006 | 5:52 pm
      hello
      I think "resize" also clears the buffer. Moreover, resizing takes some time so
      you should not send a "clear" message immediately after. Maybe, try to remove
      the "clear". But "resize" itself is not suited to live music because you can't
      know how many time it takes.
      For freezing sound I would perhaps use a fixed-size buffer (long enough) and
      choose a "start point" and an "end point" inside [groove~] (set to loop mode).
      You can change these points in realtime at signal rate if you want.
      Other freeze solutions include freezing reverbs (see the Freeverb or Altiverb),
      infinite reverb (well, it's not really a freeze but it can sound similar) or
      phase vocoder.
      n z :
    • Jul 28 2006 | 9:19 pm
      Thanks for all the ideas, everyone. What I ended up doing is just
      re-assigning the buffer name to the groove object every time I resize the
      buffer and that works pretty well.
      Nic
    • Jul 29 2006 | 11:40 am
    • Jul 29 2006 | 3:17 pm
      My apologies for all the quoted crap on the end of that one - it's an easy trap to fall into when reading/replying via 'mail
      cheers
      Roger
    • Jul 29 2006 | 4:52 pm
      No worries Roger - thanks for thinking of it. I've tidied the thread up a bit.
      -A