Play a part of a sample using groove~

    Dec 11 2012 | 10:36 pm
    Can i play a part of a sample using groove~ (non-looping)? I can set a startposition, but i can't seem to define an endposition (or length to play). Should i use another object?

    • Dec 12 2012 | 4:07 pm
      Short answer: To play a sound from point A to point B, nothing beats play~. You just tell it, "start ".
      Long answer: If you must use groove~, you need to provide a stopping command at the right moment somehow. As you have no doubt noticed, the loopend attribute of groove~ causes the sound to loop back to the loopstart point if looping is on, but lets the sound continue if looping is off, so it's not really of that much use to you. You can send groove~ a start time, then send it a "stop" message some amount of time later. Or you can set its rate signal to 0 to stop it. Or you can use the sync signal (the signal coming out of the right outlet of groove~) to tell you when the loopend point has been reached, and use that to stop listening to groove~ (set its amplitude to 0). See the examples below. (The last solution is the worst, since it delays your playback and end time by one signal vector, which may or may not be noticeable.)
    • Dec 12 2012 | 9:16 pm
      +1 for [play~]
    • Dec 12 2012 | 9:46 pm
      Also: Example 17: Playing a sample from RAM and subsequent examples might be of interest.
    • Dec 13 2012 | 9:53 am
      Thanks for the clear insights. I'm making a beat slicer/reshuffler and mainly want to be able to play a specific part of a sample (probably with a speed-control) so it looks like play~ is the object for me in this case.
    • Dec 13 2012 | 11:41 am
      Then you should definitely look here:
      and also check out the [chucker~] helpfile
    • Dec 14 2012 | 9:02 am
      Take a look at this to get [groove~] to play a selection of a sample just once...