Best way to create a realtime pitch shifter?

hey good people!
i have to support an artist tonight in a power-electronics performance.
he needs to pitch down his voice.
i created a pitch shifter using a dub looper followed by a varispeed player.
i found the best compromise between latency and quality.
it obviously clicks like crazy, but given the noisy nature of the performance it is not that bad.
any tips ?

1 Like

Have you tried using a Grain Delay set to 100% wet?


with the dublooper or directly on the voice?

this is perfect!!! why i’m so stupid and never tried it like this?
i even used it in a very similar way!
thanks @odevices !!! love this instrument each day a bit more!


Also been there! theres som much in the 301 its so easy to overlook things not really knowing what they do or just forgetting about certain units features. anyway i really love the grain delay for pitch shifting!

1 Like

I’ve not had the greatest of luck with this approach. Maybe I was just using an unsuitable input signal. Going to have to revisit.

I’m there with @hyena on the OMG revelation.

maybe not the most accurate pitch shifter, but i gets the job done and adds some great textures :slight_smile:

just had some great results controlling the dry/wet with a adsr to create som re-pitched “stabs”

It’s only half the answer but try this:

sound source -> doppler delay (delay = ~0.2 * aliasing saw (~1Hz)+ offset (0.5), 100% wet)

add a bipolar vca after the saw. positive lowers pitch, negative increases pitch.


Ok, The second half of the puzzle is to include another delay line. Set a vca on each with a skewed sin env triggered by the saw phasor. the second delay line phasor should be micro delayed by half your phasor frequency in seconds for both the delay line and the skewed sin env (in your vca). This should give you a cross fade between both delay lines to eliminate the click. Adjust skewed sin env skew to 0 and duration to somewhere around 85% of your phasor frequency.

1 Like

I can’t remember for sure. A lot of times I’ll just use a sine wave as a test signal when trying something out. In retrospect if I used that here, I can see where it probably wouldn’t have had great results. I’ll try it again with something with a bit more complex spectra.

Pitch is an ill-defined concept, so there are going to be assumptions made with any method. For example, with voices “or any continually excited resonating bodies”, you probably want the excitation source to change frequency but the properties of the resonating body to stay the same (i.e. you don’t want to shrink the person to a chipmunk or shrink the cello to a violin). However, with a drum you actually do want to change the properties of the resonating body (such as make it smaller/bigger or make the membrane tighter/looser).

The Grain Delay unit, granularizes the input (at a fixed rate) and changes the playback speed of each grain. So no deconvolution of the source material in to an excitation signal and resonating body is occurring. Changing playback speed effectively shrinks or expands everything. Therefore, it probably works best on drums, while giving mediocre results on voices (with artifacts increasing as the pitch shift gets larger).

I don’t see it as a huge negative though. It is an effect with its own unique properties. Letting someone else define what you mean by pitch is a negative in my book.


Thanks, that’s a good explanation. And agreed. Though I haven’t been able to get exactly what I was hoping for using the Grain Delay as a “pitch shifter” on certain source material, I have been able to get some very nice sounds out of it using it as an interesting delay. Sounds I probably wouldn’t reproduce anywhere else.


hmm no pitch shift unit… that’s not really frustrating, but hmmm! I’ve been looking at the dervish dsp module, but haven’t as yet figured out what it ships with and / or what level of programming is required to use its features.


I hadn’t previously used this unit. Wow its fun!

I haven’t tried this out yet. Is this a recipe for a pitch shifter? I’m having a little trouble wrapping my head around what it would do. It might become more obvious after building it.

Yeah! It works as a pitch shifter using the same concepts as the Doppler effect but cross fading between with two delay lines to eliminate the discontinuous click when the ramp phasor is reset to zero.

Here is what I was using as guide.

I’m learning a lot adapting James Clark’s guides (as applicable) for the 301.

One hurdle that I am running across is adjusting the pitch shifter to musical intervals. Let me know if you have any ideas.


Is there a pitch shifter method that works good for voice? As OD mentioned the grain delay unit Doesn’t work great on voice? What about this other method for voice?

If it doesn’t need to be live, the Grain Stretch unit works pretty well. I haven’t really tested on a shared buffer.

Ideally I’m Interested in live

All I can say is try it with the shared buffer. Maybe it will work!