First time here? Check out the FAQ!
x

Why do Sequencers sit to the right of what they are sequencing in a sound?

0 votes
446 views
This is something I've wondered since the first time I saw it. It always struck me as being the wrong way around - that the sequencer should feed into the sound it was triggering from the left. Perhaps that's because of me having cut my teeth on hardware sequencers.

Would love to find out why
asked Jul 5, 2015 in Using Kyma by sean-flannery (Adept) (1,490 points)

1 Answer

+2 votes
The Sequencer is one of the meta-modules that create signal flow structures and, in this case, generates KeyEvents which are vectors, rather than individual continuous controls.  The Sequencer creates a polyphonic (potentially overlapping) stream of vectors of (!KeyDown !KeyPitch, !KeyVelocity, !KeyTimbre).  It's designed so you can take any Sound that was set up to be controlled by a keyboard and instead control it with the Sequencer (or a MIDIVoice with File or Script as the source). When polyphonic, Sequencer (and MIDIVoice) also create multiple copies of the signal flow to their left and handle the voice-stealing policy.

As an environment, the Sequencer also "binds" the KeyEvents to specific values so they are no longer seen as variables to any Sounds to the right of the Sequencer in the signal flow.

To the keyboard-controlled Sound, it looks the same as if those KeyEvents were coming from an external keyboard (even though they are being algorithmically generated).

In order for the Sequencer to be a control source (rather than a meta-module that creates an environment as it is now), it would have to have multiple outputs: an output for !KeyDown, an output for !KeyPitch, and output for !KeyVelocity and an output for !KeyTimbre. The control source would not be able to create multiple copies of the Sound it was controlling so you would not be able to specify polyphony.  The Sequencer would have to be pasted into each parameter of the (formerly keyboard-controlled) Sound, making it tedious to switch between sequencer control and external keyboard control (or MIDIVoice Script or File control).
answered Jul 5, 2015 by ssc (Savant) (126,620 points)
Thanks SSC :)
Much appreciated
sorry SSC I have a question about this.
in the expression in the KeyPitches field:
{| a |
a := #(0 1 3 4 6 7 9 10 12 13 15 16 18 19 21 22 24 25 27 28 30 31 33 34 36 37 39 40 42 43 45 46 48).
a shuffle, a shuffle, a shuffle }

what " a shuffle" means?
What does "environment" mean?
Hi Domenico,
It's like shuffling a deck of playing cards; shuffle is a message you can send to an Array to get a new permutation of the elements in the Array.  For example, #(1 2 3 4) shuffle returns a new Array with the elements in a different, randomly selected order, for example: #(4 1 3 2).

In your example, a shuffle, a shuffle, a shuffle

is three different orderings of the Array in the variable called 'a', concatenated into one long array (3 times as long).
Hi Alan,
By environment, I meant something like a namespace — it's something that can bind values to free variables.  In the case of the StepSequencer, it's binding the free key variables to generated sequences of controls.
...