09.12.2012 Views

The Kyma Language for Sound Design, Version 4.5

The Kyma Language for Sound Design, Version 4.5

The Kyma Language for Sound Design, Version 4.5

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Double-click track the pulse to see how it works:<br />

Look at the parameter settings <strong>for</strong> trigger MIDI out when thresh exceeded. Notice that Gate is set so that<br />

it triggers the MIDI output event each time a threshold is exceeded (we will take a close look at the<br />

Threshold <strong>Sound</strong> in a moment), and that Frequency is set to:<br />

(( Threshold2 L nextRandom * 6) of: #(0 2 4 7 9 12)) nn + !Pitch<br />

In other words, each time the threshold is exceeded, it picks a new random index into an array of intervals<br />

and adds that number of half steps the to the current pitch from the keyboard.<br />

Now let’s take a closer look at Threshold2 (double-click on it to show its parameters). <strong>The</strong> output of this<br />

<strong>Sound</strong> is zero except when its input exceeds the Threshold at which point the output becomes one.<br />

Hysteresis is like inertia or a tendency <strong>for</strong> the <strong>Sound</strong> to prefer to stay in its current state of either one or<br />

zero. To switch from zero to one, the input actually has to exceed the Threshold plus the Hysteresis;<br />

once it is at one, it has to dip below the Threshold minus the Hysteresis be<strong>for</strong>e it gives up and goes<br />

back to zero. This protects the <strong>Sound</strong> against clicking on and off rapidly if the Input is wavering just<br />

around the Threshold.<br />

<strong>The</strong> input to the Threshold is an AmplitudeFollower on a GenericSource which, in its default setting, is<br />

playing back a drum loop from a sample CD called Sample Material from <strong>Sound</strong>s Good. ‡ Notice that the<br />

AmplitudeEnvelope <strong>Sound</strong> has a parameter called TimeConstant which we have set to !Tc * 0.1 s, so<br />

that it will be one tenth of its setting in the virtual control surface. This is a kind of responsiveness factor<br />

or averaging time. If it is too short, the output will react to every minute change in the input and you will<br />

just hear the original wave<strong>for</strong>m; on the other hand, if it is too long, then you will lose some of the fast<br />

transients in the input that should be reflected in the amplitude envelope.<br />

Notice that the GenericSource is also fed through a DelayWithFeedback and into a Mixer with the output<br />

of the synthesizer and the MIDIOutputEvent. If you look at the delay parameters, you can verify that the<br />

GenericSource is delayed by the same amount of time as the TimeConstant in the AmplitudeEnvelope,<br />

because an amplitude envelope follower is, by definition, a little “sluggish”, because it is ignoring instantaneous<br />

changes in amplitude in the wave<strong>for</strong>m in favor of getting an overall picture of how the<br />

amplitude is changing over time. Delaying the original audio signal by about the same amount as the<br />

delay introduced by the envelope follower makes the audio line up more exactly with the MIDI events<br />

that are being triggered by the original’s amplitude envelope.<br />

‡ Special thanks to Thomas Tibert <strong>for</strong> permission to include some of the samples from his <strong>Sound</strong>s Good collection.<br />

Thomas (a fellow <strong>Kyma</strong> user) has an interesting ear and has gathered together an intriguing selection of sounds on<br />

several CDs including samples of instruments from all over the world, hilarious outtakes from old documentaries,<br />

analog synths, and excellent per<strong>for</strong>mances and recordings of more traditional instrument tones and loops. See his<br />

web site <strong>for</strong> more in<strong>for</strong>mation http://www.ivo.se/sounds.good/.<br />

159

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!