How the Audio Pitch Changer Works
AnyTool shifts pitch entirely in the browser using a WASM time-stretch engine that decouples pitch from tempo, so changing the pitch leaves speed and duration unchanged. For preview, the decoded audio runs through the stretcher in an AudioWorklet; dragging the semitone/cents slider, picking a key, or moving the formant control updates the playing sound live. For export, the same engine renders the full buffer block-by-block on a worker to shifted PCM, which is written to WAV (Web Audio encodeWav) and, for MP3/M4A/OGG/FLAC, passed through a self-hosted single-threaded ffmpeg.wasm engine (bundled core, no CDN) with libmp3lame/aac/libvorbis/flac and a bitrate selector. Formant preservation keeps voices natural across large shifts.
- Runs client-side — the audio is never uploaded
- WASM time-stretch shifts pitch without changing speed
- Formant preservation for natural voice shifts
- Real-time AudioWorklet preview that updates while playing
- Self-hosted ffmpeg core (bundled) — no CDN
- Export WAV/MP3/M4A/OGG/FLAC
