TD-PSOLA Autotune

Correction that leaves the voice its size. Pitch moves to the scale, formants stay where the singer put them.

One vocal run, four levels of correction

A baritone run in A minor, sung with deliberate pitch errors of 30 to 60 cents on every note. Toggle between the dry vocal and each correction level. The pitch moves toward the scale. The voice keeps its size. Measured on the run: dry median 41 cents off-grid, hard snap 1 cent. Vibrato on the held notes survives at every level.

The engine

Time-domain PSOLA with the pitch and the vocal tract on separate controls. Every 5.8 ms an NSDF pitch tracker estimates F0 and voicing. Pitch marks are placed one period apart and snapped to energy peaks. Hann grains are overlap-added at retimed positions and divided by the accumulated window sum so the gain stays flat. The vocal tract moves on its own control, so correcting a singer sharp by forty cents leaves their formants where they were.

Controls

Fourteen parameters: Key, Scale (9 scales), Retune speed (0 to 400 ms), Amount (0 to 100%), Voice range, Reference (415 to 466 Hz), Formant (-12 to +12 st), Tracking, Flex, Humanize, Natural vibrato, Mix, Output, Bypass.

Specs

VST3 and AU. macOS, Apple silicon and Intel. Stereo, one engine per channel. Latency 33.5 ms at 44.1 kHz. Block-size invariant: 64-sample and 517-sample blocks give bit-identical output. Transparent at unity. Perpetual licence, 14-day trial.

The SDK

The TD-PSOLA engine behind this plugin is available as source. Plain C++17, no dependencies, single static library. Part of the Quilio SDK.