There are certain effects you hear in about every modern movie – whooshes are one of them. But instead of using all the library stuff why don’t you create your own whooshes? Usually that’s what I do but using Pro Tools this can be quite time consuming because it’s not possible to build up a chain of processing and then choose whether to bypass certain things or not. When you want to reverse the sample at different stages of the processing things get even mor complicated. Luckily we have our Kyma Workstation

So what kind of processing do we need? I usually use the following:

– Change the Playback Rate (Varispeed)

– Pitch Shift

– Delay

– Reverb

– Reverse the Sample at different stages of the chain (e.g. reverse the reverberated sample)

Let’s begin with a sample. Changing the Playback Rate is very easy, just multiply “default” in the “Frequency” parameter field of the sample prototype with a hot value of your choice (e.g. default * !Varispeed). The next step is to build a bypassable Pitch Shifter using the “Polyphonic Pitch Shift Delayline” prototype and the “SelectableSound” prototype (just read the description, it is very easy to use – make sure to use a Toggle in the VCS). Since my sample is stereo I split the channels and process each of them. Afterwards I have to boost 6db to preserve unity gain. Have a look at the picture below:

kymaguy.com - whooshalizer 1

What about the !Reverse hot value and why is it multiplied by (-1)? As you know the sample plays backwards when the value in the “Frequency” parameter field is negative. In the VCS this hot value is a toggle to switch on/off the reversing. A toggle’s “On” or max value can’t be lower than its “Off” or min value. But !Reverse has to be “-1″ when “On” and “1” when “Off” – the easiest way to solve this is simply by multiplying the hot value by “-1″. Reverse the Reverse Toggle to reverse the sample when the toggle is switched on – right?

Let’s add a “DelayWithFeedback (variable)” and a “Eugenio Reverb” prototype like we added the Pitch Shifter. To hear the delayed and the direct sample we use a “Mixer” prototype. It should look like this now:

kymaguy.com - whooshalizer 2


Now we want to reverse the delayed and/or the reverberated sample as well – this is where things get a little bit complicated. At least it caused me some headaches but thanks to the Kyma Forum and Carla and Pete I got it solved.
Because it’s not possible to reverse something which hasn’t been written to the end we have to somehow write the whole processed sample into the RAM and read it out reversed. The writing can be easily done with the “MemoryWriter” prototype. Set the “CaptureDuration” to “20 s” and use the same Trigger as you used to trigger the sample (in my case !Play). Check the “Silent” Box because you don’t want to hear the written sample but the reversed one.

Now use the “Sample” prototype as the reader: Make sure to check the “FromMemoryWriter” Box and use the same name for the sample as you used for the recording name in the “MemoryWriter”. Also use another “SelectableSound” prototype to select between the processed and the reversed processed sample. I’m sure you can work this out by having a look at the picture below:

kymaguy.com - whooshalizer 3

So far so good! Make sure all your “SelectableSound” prototypes and the according Toggles in the VCS are working. Now check the “Reverse” Box of the “Sample” prototypes (I will call them readers from now on) and play your Sound. This is where the headache starts: When you reverse the processed sample you have to wait for “CaptureDuration” minus the length of your processed sample seconds to hear it. One easy way out of this would be to change the “CaptureDuration” to e.g. “5 s” but when you’re working with delays you can easily have longer samples than that. Since “CaptureDuration” is not a HotValue we can’t change it in the VCS either.

But the “Gate” and the “End” parameter fields of the readers are HotValues – but what do we put in there? Let’s have a look at the parameters which are affecting our processed sample length:

– Original sample length: I just made an EventValue called !Samplelength so you can specify your sample length in the VCS

– Playback Rate: The resulting sample length after changing the Playback Rate is (!Samplelength / !Varispeed) s

– Delay length: I just made an EventValue called !Delaylength so you can specify your delay length in the VCS

– Reverb length: I just made an EventValue called !Revlength so you can specify your reverb length in the VCS

Now have a look at the picture below and check out the CapyTalk I used in the “Gate” and the “End” parameter fields:

kymaguy.com - whooshalizer 4

Let’s analyze the “Gate” parameter field first: “!Play ramp: “(!SampleLength / !Varispeed) + !DelayLength” is saying that when the Trigger (!Play) is received start a ramp of the duration: “(!SampleLength / !Varispeed) + !DelayLength”. Since a Gate is triggered by every positive value we have to make sure that the ramp is crossing the zero line exactly where we want it to. This is done by multiplying it by 2 and subtracting 0.5. The ramp is twice as long as the processed sample length but with the offset of -0.5 it will cross the zero line exactly where we want it to (when the processed sample is written to its end).

The “End” parameter field is basically the start point of our sample (because you checked the “Reverse” Box). We don’t want to hear the other e.g. 10 seconds of silence the writer has written after the processed sample has reached its end. So again we use the expression “(!SampleLength / !Varispeed) + !DelayLength)” and we divide it by the “CaptureDuration” of the writer (in this case 20). The division has to be done because the “End” parameter field expects a value between 0 and 1 where 0 is the start and 1 is the end of the sample. So if you want 1 second of a 20 second sample you have to put in 1/20 which equals 0.05.

Basically in the reader of the reversed reverb you put in the same expression except you’re adding !RevLength to it:

kymaguy.com - whooshalizer 5

Now, just for the fun of it I’ve added a LFO to modulate the delay time. Another good idea would be to modulate the Playback Rate or to use different modulators – endless possibilities to go further

Finally set up the VCS – here’s a picture how I did it:

kymaguy.com - whooshalizer VCS

Now listen what you can get out of one crappy sample (you will hear the sample first):



Download .kym file

Visit the Kyma Forum Thread


Kyma Forum Discussion with Carla and Pete

8 replies
  1. kymaguy
    kymaguy says:

    I updated the tutorial due to a mistake: I wasn’t subtracting 0.5 from the ramp, I was subtracting 0.5 s from the ramp time… Thank you Pete!

  2. Julian W
    Julian W says:

    Thanks Gustav for taking the effort to put together these tutorials, really useful for Kyma newbies like myself. Hope to meet up again at the next symposium


Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply to Julian W Cancel reply