Quantize groove looping
Okay so im writing an app which ivolves lots of grooves and looping sound files.
Most of the time the sound files are short (like drum samples).
All of it is done from the monome and the button presses are quantized i thought it'd be cool if instead of just looping, if it looped quantized (sort of like the mpc's note repeat) so each new repeat is on beat.
Does anyone have any suggestions? I thought about calculating a new end time but that doesn't seem like the best way to me.
Any help would be great.
Steve
dovemouse wrote on Fri, 22 May 2009 04:23Okay so im writing an app which ivolves lots of grooves and looping sound files.
Most of the time the sound files are short (like drum samples).
All of it is done from the monome and the button presses are quantized i thought it'd be cool if instead of just looping, if it looped quantized (sort of like the mpc's note repeat) so each new repeat is on beat.
Does anyone have any suggestions? I thought about calculating a new end time but that doesn't seem like the best way to me.
Any help would be great.
Steve
You could set the looping to off (0) and simply send the "startloop" message to your groove~ objects in a quantized manner. This way they would start on the beat and play all the way through, with silence at the end if the next quantized beat comes after the end.
You might also look at the phasor~ help file/metro subpatch, there's a small chain of objects which detect a signal transition from increasing to decreasing. This logic can be used on the right outlet of groove~, which sends out a signal from 0. to 1. over the course of the loop as it plays (this can also be used as an indicator of playback position: convert the signal to a float using number~ or snapshot~, then send to a multislider with just one slider that has a range from 0. to 1., it'll show you graphically where you are). So from the right outlet, use:
delta~ (positive if increasing, negative if decreasing)
edge~ (detect logical signal transitions)
--> bang (reaching the end now triggers a bang, to use as you please).
The above only works with looping on though.
here's the groove~ help file with the delta~ etc. added.
Thanks a lot, i went with the startloop method with a metro with assignable note value linked to transport.
Works like a charm.