Audio tool · No upload

Change a song’s speed or key on your device

Slow down or speed up a track without changing its key, or shift its key without changing its tempo.

0 st

Two recipes to try: 0.80× speed with hall reverb, or 1.25× speed with the pitch a few semitones up.

Time stretch 1.00×: nothing to process at 0 semitones, 1.00× speed and no reverb. The audio is decoded and re-encoded to MP3 as it is, with nothing turned down, so a passage already over full scale is clipped.

Statusidle Files— File— Duration— PCM rate— Channels— Pitch0 st Speed1.00× Reverbnone Output length— Requested bitrate192 kbps Output size— Network since file read—

A file over 10:00 is decoded, then refused by name; an undecodable one as damaged or DRM-protected; any other extension as not an audio file this page accepts. Transient smearing is possible; a stretch above 1.50× triggers a setting-based warning. With every dial at rest, peaks over full scale are clipped without a note. Takes .mp3, .m4a, .aac, .wav, .wave, .ogg, .oga, .opus, .flac, .webm and .mp4.

How this tool works

Your browser reads the file into memory and decodes the audio itself. When stretching is needed, the code cuts the audio into overlapping frames of up to 2048 samples, about 46 ms at 44.1 kHz; short inputs use smaller frames or bypass stretching. That window length varies with the sample rate and is not processing time or latency. Each frame goes through a fast Fourier transform written into this page, and the frames are laid back down further apart or closer together than they were picked up. That changes the length and leaves the pitch alone. Reading the stretched result faster or slower then moves the pitch and brings the length back to the one you asked for, and those two steps together make the pitch and speed dials independent. Each spectral peak's phase is advanced by its own measured frequency, and every bin around that peak is rotated by the same amount. This technique, identity phase locking, keeps those bins' phases linked, though some artifacts remain.

The transform, phase vocoder, resampler and anti-alias filter are written in the page's own JavaScript, as are the reverb's comb and allpass delay lines, and you can inspect that code in your browser. The one extra download is lamejs, a JavaScript port of the LAME encoder (LGPL), which loads before the first file is read, so the network meter does not count it. To check that the tool works offline, convert one file while you are online so the encoder is cached, then disconnect and convert another. Processing runs on the page's main thread and shows its progress as a percentage, so a full-length track can take a while. The methodology page describes the network checks and publishes the encoder's license and provenance.

Pitch shifting of this kind is not transparent. A short percussive hit can land in several analysis frames, so spreading those frames apart can smear drum hits and consonants. The readout works out the time stretch from pitch and speed, and the result-row warning above 1.50× is setting-based, not a measurement of transient energy or a safe boundary: artifacts can occur without that warning. Files longer than ten minutes are decoded, measured and then refused by name, because the whole track sits in your device's memory several times over during processing. The output is a lossy MP3 re-encode, which costs a generation of quality on top of the processing. The bitrate readout and result rows repeat the requested setting, and at low conformed PCM rates the encoder can use a lower bitrate. If the processed result would clip, it is turned down, and the row reports reductions greater than 0.05 dB. Smaller reductions are applied without a gain note. More than two channels are folded to stereo and the row says so. The PCM rate readout shows the post-conform sample-buffer rate used for processing and supplied to the encoder, not a measurement of the source rate or finished MP3. Browser decoding may resample without a row note; a further rate change in the page's MP3-conform step gets a note. Upward shifts lose treble to the anti-alias filter, the reverb is a synthetic room whose tail the row reports in seconds, and no tags or album art are carried across. A file that will not decode, including one holding no audio (Chrome reports that as undecodable), gets a row saying it may be damaged or DRM-protected, and any other extension is refused as not an audio file this page accepts.

Frequently asked questions

Is my music uploaded anywhere?
No. The browser reads and decodes the file, and the pitch and speed processing and the MP3 encoding all run in this tab. The page’s network meter counts resource-timing entries from the first file read, so earlier page downloads and other connection types fall outside it; the methodology page describes other ways to check.
Can I change pitch without changing speed, or speed without changing pitch?
Yes. Set pitch to +3 semitones and leave speed at 1.00× to change the key and keep the length. Set speed to 0.80× and leave pitch at 0 to slow the track and keep the key. You can move both together, and the readout shows their combined time stretch. Reverb adds a tail, which the row reports separately.
How far can I shift it before it sounds bad?
Watch the time stretch shown under the controls. It combines both settings and matters for how much drum hits and consonants smear, and the page warns when it goes above 1.50×. Half speed at unchanged pitch is a 2.00× stretch, and 0.80× speed is 1.25×. Sustained notes can take on a metallic colour as settings move away from 1.00×, particularly near the octave limits. The controls cover -12 to +12 semitones and 0.50× to 2.00× speed. Listen to the export.
Why do voices change character when I shift the pitch?
Because this method shifts the whole spectrum, including the resonances (formants) that give a voice or instrument its character. Formants move with the pitch, so a large shift can change a voice a lot, while a semitone or two usually changes it less. It is not a formant-preserving vocal processor.
Can I make a slowed-and-reverb style version?
Yes. Try speed 0.80×, pitch 0 or one semitone down, and hall reverb. For tape-style slowing that also lowers the pitch, use 0.80× and about -4 semitones. The reverb is synthesised from delay lines (it is not a recording of a real hall), and the row reports its added tail in seconds.

Related tools