This might be a simple question, but I just can’t get it to work properly.
I’m analyzing audio and using a kick drum to trigger a Lag CHOP. After applying some math, I send the result to a Ramp CHOP. So far, that part is working.
What I’d like to do now is trigger 3–5 different ramps with that kick signal—one after another, not all at once.
For example:
First kick triggers Ramp 1
Second kick triggers Ramp 2
Third kick triggers Ramp 3
…and so on, with each ramp playing its full envelope.
I tried using a Switch CHOP, but that didn’t give the result I was looking for.
Does anyone know how I can achieve this kind of sequential triggering?
Step 1:
Take your kick from the audioAnalysis and send it to a Trigger CHOP (everything set to 0 so that you get a clean pulse out of it (and set the retriger delay to something like .1 seconds). You want to get a clean 1 frame pulse from every kick.
Step 2:
Take the pulse into the Count CHOP and send that into a Limit CHOP set to ‘loop’. In the Limit CHOP define the voice count using min/max of 0 and 4 voices. You should get a nice stair-step pattern when viewed with a Trail CHOP.
Step 3:
Create a Constant CHOP with the channel count matching your number of voices. Set the value expression of each of the 4 to:
op('trigger1')['k1'] if op('voice')['voice'] == 0 else 0
(I was using a Keyboardin CHOP that was watching the ‘1’ key). Change the == 0 to == 1 and so on.
a slight simplified setup could also be a Count CHOP and a Fan CHOP.
The Count CHOP has the Limit parameter for looping already build in and the Fan CHOP will take the result of the Count CHOP and generates 2 or more channels. It sets to 1 one of the output channels while all others are 0, based on the input channel’s value.