← All modules
AvailableEffect

Pitch Shift

Change pitch while keeping the tempo.

Engine preview

Browser version

About

Transposes in semitones without changing how long anything takes. A granular shifter: the signal is read out of a delay line at a different rate, in overlapping windows crossfaded so the seams stay under the music.

Signal graph.

Experimental

Migration fallback: approximated from parameter groups, not a runtime wiring diagram.

How it works.

Pitch and speed are the same knob on a tape machine, and a pitch shifter's whole job is to separate them. This one does it granularly: audio is written into a delay line at the normal rate and read back out at a different one, which transposes it, and because the read head drifts relative to the write head it has to be restarted before it collides. Restarting it is the artefact, the shifter uses two read heads offset by half a window and crossfades between them, so a seam is always hidden under a fade.

That is why Window is a control at all rather than a constant. The crossfade rate is set by the window length, and every choice trades one artefact for another: short windows fade often enough to blur sustained pitch, long windows hold a clean pitch but repeat a chunk of any transient that lands across a seam. Percussive material wants short, sustained material wants long, and nothing wants both.

The shift is also a resampling, not a re-synthesis, so it moves the formants along with the pitch instead of leaving them where they were. This is a harmoniser, not a voice changer, a large upward shift will sound smaller and thinner rather than like the same source singing higher.

Web Audio has no pitch-shifting node, so the browser preview is the first of those two options: a pair of delay lines whose lengths are swept by sawtooth ramps, with cosine window gains a half-cycle apart so whichever tap is resetting is silent while it does. Everything runs on stock nodes at audio rate, which means it renders identically offline and in a bounce.

Judge it accordingly. Small intervals, a few semitones either way on sustained material, are clean enough to use. Large ones burble: at an octave the grains are short relative to the pitch period and the characteristic granular warble is plainly audible, which is the honest cost of a two-tap shifter rather than a phase vocoder. Feedback compounds it, since each pass through the loop is shifted and windowed again.

Goes well with.

Preview

Frequency Shifter

Shift every partial by the same number of Hz.

PreviewNot built for macOS, Windows or Linux
Preview

Motion

Phaser and vibrato with independent LFOs.

PreviewNo build recorded
Preview

Chordex

Generate a voiced chord from one note.

PreviewNo build recorded