PitchShifting / Bending using the Product1 module

So yesterday I released the kymaguy Modules – but how do we use them properly? Well, let’s have a look at the Product1 module and how we can do some crazy PitchShifting / Detuning with it.

We’ll start with a basic setup for Spectral Processing: use an analysis module (LiveSpectralAnalysis here), split the channels, join them again, and use a resythesis module (OscillatorBank here) to bring it back into the time domain. We want to treat the frequencies for PitchShifting, so we’ll insert the Product1 into the right leg. The resulting Sound looks like this:


Now for basic PitchShifting we’ll use a Constant for the Multiplier Input of the Product1 and use a HotParameter to control it. A multiplier value of 0 doesn’t have an effect, while positive values shift the pitch up and negative values shift the pitch down. In other words a value of 0 results in a multiplication with 1, positive or negative values result in a multiplication by greater or smaller 1. The order (set in the Product1) specifies the range of the PitchShifting. For example Order 1 lets you shift the Pitch 1 Octave up or down using values from -1 to 1. This may sound more complicated than it is: basically just specify the Order for the range and use some other Sound to control the Amount of PitchShifting.

So far we haven’t done anything new, but now things get interesting: The Multiplier Input works at samplerate (SR). This allows us to PitchShift each partial individually to detune the signal! All we have to do is to generate a frame-based control signal.

There are many ways to do that but we’ll have a look at the XenOscillator now. I use it quite often because it gives you absolute freedom on generating frame-based signals. Setting the frame is easy, just use FrameLength (e.g. 256) samp in the Frequency field. Now it depends on what you set for the x- and y-values and how you want to control them. In this case I decided to generate two points I can move using my iPad and KymaControl.

Have a look at the Parameters of the XenOscillator below:


The “- 0.5 * 2″ part of the expression just changes the range of the Pen signals to be -1 to 1. Also I decided to smooth it. The Amount controls the Level and is used to control the Amount of effect later on. Have a look at the VCS here to see what kind of signal gets generated. You can also open the XenOscillator Demonstration Sound contained and play around with your iPad.


Now we use that for the Multiplier Input of our Product1. What happens? All partials below PenX get shifted according to PenY, all partials above Pen2X get shifted according to Pen2Y. All partials in between get detuned (as long as the Y-Signals don’t match).

By playing around with that you can get some really nice SciFi FX. I’ve used some Reverb addition:



Download Sound


1 reply

Trackbacks & Pingbacks

  1. […] Gustav is also available for private consulting, coaching, and custom module design to help you customize your own spectral processing ideas in Kyma.  In fact, he’s already posted the first of a series of tutorials on how to use his spectral modules: PitchShifting/Bending using the Product1 Module […]

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply