audioJS

Wow and flutter fixer

Drop a transfer with pitch drift. See the wow and flutter measured, corrected, and the speed curve before and after.

Drop a tape, cassette or vinyl transfer here
or click to choose, or paste with Ctrl+V

Nothing is uploaded. Everything runs in this tab with @audio/denoise-dewow.

Wow and flutter correction that shows its work

This page runs @audio/denoise-dewow, an open-source phase-vocoder implementation of the classical (non-machine-learning) technique behind tools like Celemony Capstan. It estimates the transport's instantaneous speed over time and corrects it by variable-rate resampling, in your browser. Nothing is uploaded.

Three ways to find the speed

What the numbers mean

Wow and flutter are reported as unweighted peak deviation from nominal speed, before and after correction: not the IEC 60386 / DIN 45507 figure, which applies a psychoacoustic weighting curve this page does not implement. Confidence is the fraction of the recording with a usable speed reading. The speed curve chart plots the source's drift in grey and the corrected result in the accent color, both against a ±3% scale.

Honest limits

This corrects speed, nothing else. Dropouts and azimuth error (a stereo channel time-skew, not a speed defect) are out of scope, as is anything with no stable tone to track: a cappella breath, pure noise, hard cuts. See the package README for the measured accuracy this method achieves on its own test signal.

Questions

What is wow and flutter?

Wow is slow pitch drift, below about 6 Hz: a stretched belt, an eccentric capstan, a warped record. Flutter is faster wobble, up to a few tens of Hz: a rough motor, a dirty pinch roller. Both come from a transport that does not turn at a constant speed.

How does it find the speed without a reference recording?

The default mode tracks stable partials in the music itself: a tone that should hold one frequency reveals the transport's actual speed when it wobbles instead (a phase-vocoder implementation of the technique behind Celemony Capstan). Reference mode does the same on one known tone, mains hum or a calibration tone; pitch mode follows a monophonic voice or instrument.

What can it not fix?

Dropouts, azimuth error (a stereo time skew, not a speed error), and anything with no stable partial or reference tone to lock onto: a cappella breath, pure noise, hard cuts. Pitch mode also cannot tell real musical vibrato from mechanical wow, so it only works well on lightly-inflected material.

Why does flutter above about 40 Hz not show up?

The speed curve is itself sampled at roughly 86 Hz (sample rate divided by the analysis hop), so anything above its Nyquist, about 43 Hz, cannot be represented at all. Most tape and turntable flutter sits below that.

Does it work on drum loops or spoken word with no held notes?

Not well. Percussion-only material gives the estimator nothing to lock onto. Pick a passage with a sustained note or vowel, or switch to reference mode if a hum or tone runs through the recording.