k y m a • t w e a k y — the kyma collective || view the current website || February 2015 Archive

/ WebHome / How.GateSequentSounds


How Section

How do I...
Add a question...


All Sections


Login / Register 
Change password
Forgot password?

Symbolic Sound

Kyma Forum
Eighth Nerve

TWiki Links

TWiki Formatting FAQ
What is TWiki?
%SESSION_ENDIF% twiki.org

Question (or Task)


I would like to gate a set of oscillator banks from the same key on the keyboard. When the key is pressed the first time I would like the first Osc. Bank to play, and relate to velocity and sustained note length etc. The second time I press the key I would like the second Osc. Bank to play and so on and so forth - for five times - and then when I press down the same key the sixth time, the first Osc. Bank should play again.

Have tried to get my head around this with no luck - does anyone have any ideas on how to do this?


Magnus -- MagnusLindberg - 18 Aug 2004


In the TimeIndex's Trigger field of the 4th OscillatorBank, you could try something like the following expression:

!KeyDown gateWhen: ((!KeyDown countTriggersMod: 5) eq: 3)

This expression would trigger the OscillatorBank the fourth time you pressed a MIDI key (and requires having all the OscillatorBanks in a Mixer so you can gate them at any time). The countTriggersMod: 5 expression would take on the following values as you press keys:

Key Press Nbr Value
0 -1
1 0
2 1
3 2
4 3
5 0
6 1

-- CarlaScaletti - 18 Aug 2004

Brilliant! Thanks!

Automatically the next question arises... How do I assign something to reset the counter? A CC or a specific key (that would have to be "removed" from playing the Osc.Banks.) As the code goes it just counts.


My first thought would be to capture the current value of of the count at the moment you hit a Reset trigger; then you could subtract that amount from the count (modulo the length of course). So something like this:

(!KeyDown countTriggers - (!KeyDown countTriggers sampleAndHold: !Reset)) mod: 5

-- CarlaScaletti - 06 Sep 2004

Thank you. But I am lost. Where do I insert this line of code? I can see that it resets the count, but triggered from what? My guess I have to assign a specific key on the keyboard for this? How do I do assign this?

Thanks for your effort!! -- MagnusLindberg - 15 Sep 2004

It would be

!KeyDown gateWhen: (((!KeyDown countTriggers - (!KeyDown countTriggers sampleAndHold: !Reset)) mod: 5) eq: 3)

-- CarlaScaletti - 15 Sep 2004

Solution 2

Perhaps an easier solution: Put a MIDIVoice on each of the OscillatorBanks, and set all MIDIVoices to the same channel. Put the MIDIVoices into a Mixer. They will be triggered in a round-robin fashion from MIDI KeyDown.

-- CarlaScaletti - 15 Sep 2004

The round robbins is similar to the first solution - but I assume that there is no reset of the count. This gives me a thought. What if I were to use !KeyDownLegato to step the counter - and a normal !Keydown to reset? This would simplify the resetting, wouldn´t it?

Not that I know how to implement it... Just my fifty cents... ;-)

Question: How do I gate sequential Sounds from the same key on the Keyboard?
Keywords: Gate, Key, Keyboard, Sequence

© 2003-2014 by the contributing authors. / You are TWikiGuest