How Speed and Pitch Are Connected

Why does a tape recorder sound like chipmunks when you play it fast? And what do professional musicians use when they need to change tempo without affecting pitch?

The speed-pitch link in raw audio

Digital audio is just a long sequence of numbers representing air pressure over time (PCM — Pulse Code Modulation). When you play a PCM recording at double speed, you're reading through those numbers twice as fast. The pitch rises by exactly one octave because you're completing each cycle of the waveform twice as often. This is the same effect you hear when you speed up a vinyl record (classic DJ scratching) or a cassette tape. Pitch and speed are locked together in raw PCM.

Pitch-preserving time-stretch (what we'd need)

Professional tools like Pro Tools, Ableton Live, and Audacity use algorithms to break this link. The most common approach is phase vocoder (Fast Fourier Transform-based), which analyzes the frequency content of short overlapping windows, stretches or compresses the time axis, and resynthesizes the audio. Another approach is WSOLA (Waveform Similarity Overlap-Add), which finds similar-looking chunks of audio and stitches them together. Both produce artifacts at extreme ratios but are remarkably transparent at moderate speed changes (±25%). The SoundTouch.js library brings WSOLA to the browser — we'll integrate it in a future update.

How the recording works

The Record button activates your browser's MediaRecorder API, which captures audio from your microphone and encodes it as WebM/Opus (the best-quality compressed format browsers support). When you stop recording, the WebM blob is decoded back to raw PCM samples using AudioContext.decodeAudioData(). The raw PCM is stored in an AudioBuffer, which supports playbackRate adjustment. On download, the PCM is re-encoded to uncompressed WAV for maximum compatibility with audio editors.

About Voice Spinner

Record your voice and play it back at different speeds. Hear yourself fast, slow, or anywhere between 0.25x and 2x. Download as WAV. Runs in-browser — no upload required.

How to use

  1. Click the Record button. Your browser will ask for microphone permission — click Allow.
  2. Speak, sing, or make sounds. The level meter shows your input volume in real time.
  3. Click Stop Recording when finished.
  4. Use the Speed slider to set playback speed: below 1x is slower (and lower pitch), above 1x is faster (and higher pitch).
  5. Click Play to hear your recording at the selected speed.
  6. Click Download WAV to save the original recording as an uncompressed audio file.
  7. Click New Recording to discard and record again.

Frequently asked questions

Does this tool upload my voice?
No. Everything runs in your browser using Web Audio API and MediaRecorder. Your audio never leaves your device and is never sent to any server.
Why does my voice sound higher when played faster?
This tool uses Web Audio's playbackRate parameter, which changes speed and pitch together. True pitch-preserving time-stretch (WSOLA or phase vocoder) is on the roadmap. For now, faster = higher pitch, slower = lower pitch.
What format is the download?
Uncompressed WAV (16-bit PCM). Universal compatibility with every audio editor, DAW, and operating system. Roughly 1 MB per 30 seconds.
Why does my browser ask for microphone permission?
This is a browser security requirement — the MediaRecorder API requires explicit mic permission before accessing your microphone. Permission is only requested when you tap Record, never on page load.
Does this work on iPhone?
Yes in iOS 14.5+. The first tap must be a user interaction. Downloads may open in a new tab instead of saving directly, due to iOS file handling.
Disclaimer: Requires microphone access. All audio stays in your browser — nothing is uploaded. Speed changes pitch (0.25x = very low, 2x = very high). Pitch-preserving stretch is on the roadmap.

Part of ToolFluency’s library of free online tools for Music. No account needed, no data leaves your device.