DSP Adventures: Zero Latency Pitch Shifting

I finally did it: real-time, zero-latency pitch-shifting software.

After many years of contemplating it, with ideas marinating in my mind, I found the right opportunity to write this. What finally pushed me? I couldn’t find a good plugin for the eWhammy!

All the ingredients were already in place. I have a superb pitch and onset detector, backed by the Q DSP library, which has matured over the years: a cross-platform C++ library for audio digital signal processing.

Here’s a demo:

Zero latency means there is no delay in generating the pitch-shifted signal. The pitch shifter does not wait for a buffer to fill before processing begins; the first sample is streamed out the moment it is received.

To be clear, most audio applications, such as digital audio workstations (DAWs), always use an audio buffer, but that is a separate matter.

The waveforms below show the original signal (top) and the pitch-shifted signal (bottom):

Zero Latency
Original signal and pitch-shifted signal
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

11 Comments
Oldest
Newest Most Voted
Suso Romaris
Suso Romaris
3 months ago

Last Frontier!!! You did it!!! After this, everything is near! Chapeau!!!

Heiko Bloemers
Heiko Bloemers
3 months ago

you madman! pure genius! congraaaaaaaaaaaats! can’t wait to try it <3

Clark Battle
Clark Battle
3 months ago

That was the first pitch shifter I’ve ever heard where I enjoyed the tone. How does it sound on bass?

Karl
Karl
2 months ago

This is absolutely stunning, you did it!!

Basstrap
Basstrap
1 month ago

Nice! How does it work?

Colm Delaney
Colm Delaney
18 days ago

Wowwwwwww!
I can’t believe it just WORKS. I ported this into an opcode for Csound and it works flawlessly. Tried long and hard to make a PSOLA but of course getting clicks/pops regularly. Great job!

11
0
Would love your thoughts, please comment.x
()
x