How to change pitch without changing tempo
- Step 1Open the pitch shifter and drop your file — Drag an audio file onto the tool above, or click to browse. FFmpeg 8.1 loads as WebAssembly in your browser the first time — after that it is cached. The file is read locally; it is never sent to a server. Pitch shifting is a Pro-tier tool, so you need a Pro plan or higher to process.
- Step 2Set the Semitones value — The only control is Semitones. Type or step the value from -24 to +24 in increments of 0.5. Positive values raise the pitch, negative values lower it. 12 = one octave up, -12 = one octave down, 7 = a perfect fifth up. Leave at 0 to pass the audio through unchanged.
- Step 3Choose between musical intervals — Think in semitones: a whole tone is 2, a minor third is 3, a major third is 4, a fourth is 5, a fifth is 7. For a half-step-between value (e.g. detuning by a quarter-tone), use the 0.5 step. There is no separate cents field in the browser tool — express fine shifts as fractional semitones (0.5 = 50 cents).
- Step 4Run the conversion — Click process. FFmpeg builds the filter
asetrate=<sr*ratio>,aresample=<sr>,atempo=<1/ratio>and applies it in one pass. For extreme shifts theatempostage is automatically chained (each stage clamps to the 0.5–100 range) so even ±24 semitones works without you doing anything. - Step 5Compare duration in and out — The result panel reports input and output byte sizes. The duration should match the source: that is the whole point of the back-correcting
atempostage. If duration is off, you likely wanted a speed change instead — see the edge cases below. - Step 6Download the shifted file — Output keeps the same format as the input (the browser tool has no separate format selector for pitch shift). Download it; the filename is suffixed with
-pitched. Re-encoding happens once, so lossy sources lose a little quality on this pass — start from WAV/FLAC if you plan further edits.
What the pitch shifter actually does
The complete control and behaviour surface of the browser tool, verified against the processor implementation. There is exactly one user control.
| Aspect | Behaviour | Notes |
|---|---|---|
| Control | Semitones (number) | Range -24 to +24, step 0.5, default 0 |
| Shift ratio | 2^(semitones/12) | +12 → 2.0 (octave up), -12 → 0.5 (octave down) |
| Filter chain | asetrate=sr*ratio, aresample=sr, atempo=1/ratio | asetrate retunes, aresample fixes playback rate, atempo restores duration |
| Duration | Preserved | atempo back-corrects the tempo change asetrate introduces |
| Formants / timbre | Not preserved | Resampling shifter — large shifts sound chipmunk (up) or monster (down) |
| Output format | Same as input | No format selector for this tool in the browser UI |
| Cents control | None in UI | Use fractional semitones (0.5 = 50 cents) |
Semitone shifts and their musical meaning
Common Semitones values, the exact frequency ratio FFmpeg applies, and the resulting interval. Use this to translate a desired key change into a Semitones number.
| Semitones | Ratio 2^(n/12) | Interval | Sounds like |
|---|---|---|---|
| +12 | 2.000 | Octave up | Doubled frequency, bright/thin |
| +7 | 1.498 | Perfect fifth up | Strong, consonant lift |
| +5 | 1.335 | Perfect fourth up | Open, anthemic |
| +2 | 1.122 | Whole tone up | Subtle key bump |
| +0.5 | 1.029 | Quarter-tone up | Microtonal detune |
| 0 | 1.000 | Unison | Pass-through, no change |
| -3 | 0.841 | Minor third down | Darker, fuller |
| -12 | 0.500 | Octave down | Halved frequency, deep/muddy |
Tier limits for pitch shifting
Pitch shift is a Pro-tier audio tool. Note the per-file DURATION limit, which is separate from the file-size limit.
| Tier | Max file size | Max duration / file | Files / batch |
|---|---|---|---|
| Free | Not available | Not available | Pitch shift requires Pro+ |
| Pro | 200 MB | 120 min | 10 |
| Pro-media | 100 GB | Unlimited | 100 |
| Developer | 100 GB | Unlimited | Unlimited |
Cookbook
Concrete recipes that translate a real goal into the right Semitones value, with the FFmpeg filter the tool builds shown for transparency. All run locally in your browser.
Raise a 44.1 kHz track one octave, keep its length
An octave up is +12 semitones, a ratio of exactly 2.0. asetrate doubles the playback rate, aresample restores 44.1 kHz, and atempo halves the tempo back so the duration is unchanged.
Input: song.wav (44100 Hz, 3:00) Semitones: 12 Ratio: 2^(12/12) = 2.0 Filter built: asetrate=88200,aresample=44100,atempo=0.5 Output: song-pitched.wav (44100 Hz, 3:00 — same length, one octave higher)
Drop a track an octave down
An octave down is -12 semitones, ratio 0.5. The atempo stage now has to speed tempo back UP by 2x; since 2.0 is within the 0.5–100 range, a single atempo stage handles it.
Input: bass.flac (48000 Hz, 1:30) Semitones: -12 Ratio: 2^(-12/12) = 0.5 Filter built: asetrate=24000,aresample=48000,atempo=2.0 Output: bass-pitched.flac (48000 Hz, 1:30 — one octave lower, same length)
Quarter-tone microtonal detune
There is no cents field; express 50 cents as 0.5 semitones. The 0.5 step is the finest resolution the control allows.
Input: drone.wav Semitones: 0.5 (= 50 cents up) Ratio: 2^(0.5/12) = 1.0293 Filter built: asetrate=45392,aresample=44100,atempo=0.9715 Output: drone-pitched.wav (subtly sharp, same duration)
Perfect fifth up for a harmony layer
Duplicate a vocal or lead, shift the copy +7 semitones, and layer it under the original for an instant parallel-fifth harmony. Because duration is preserved, the two layers stay phase-aligned in time.
Original: lead.wav (kept as-is) Copy: lead.wav + Semitones 7 → lead-pitched.wav Ratio: 2^(7/12) = 1.4983 Layer the two in your DAW: same 3:12 length, a fifth apart.
Extreme shift uses chained atempo automatically
At +24 semitones (two octaves) the back-correction tempo is 0.25, which is below atempo's 0.5 floor — so the tool chains two atempo stages for you. You do nothing special.
Input: fx.wav Semitones: 24 Ratio: 2^(24/12) = 4.0 → atempo target 0.25 Chained back-correction (each stage >= 0.5): asetrate=176400,aresample=44100,atempo=0.5,atempo=0.5 Output: fx-pitched.wav (two octaves up, same length, heavily coloured timbre)
Edge cases and what actually happens
Output sounds chipmunk / monster, not just higher / lower
By designThis is a resampling pitch shifter (asetrate-based), not a formant-preserving one. Formants — the resonances that define vowel character — move with the pitch, so large shifts make voices sound chipmunk (up) or monster (down). For natural-sounding speech, keep within roughly ±3 semitones; beyond that the colouration is creative, not transparent.
Semitones set to 0
Pass-throughRatio = 1.0, so asetrate keeps the sample rate, atempo = 1.0, and nothing changes pitch-wise. The file is still re-encoded once through the matching FFmpeg encoder, so a lossy input incurs one generation of re-encode even at 0. Leave the value alone if you do not intend to shift.
I wanted to change speed, not pitch
Wrong toolThis tool deliberately preserves duration and changes pitch. If you want to slow down or speed up while keeping the same key, use time-stretcher; if you want the musician's percentage convention, use tempo-changer. A raw playback-speed change (pitch AND tempo together) is what asetrate alone does — this tool intentionally undoes that.
Duration drifts by a few milliseconds
ExpectedThe atempo back-correction is computed from the exact ratio, but encoder frame alignment (MP3/AAC operate in fixed-size frames) can pad the very end by a few milliseconds. The audible content length is preserved; tiny frame-level padding at the tail is normal for lossy outputs. Use WAV/FLAC if you need sample-exact length.
Lossy input re-encoded to lossy output
Quality lossOutput stays in the source format. An MP3 in becomes an MP3 out, re-encoded via libmp3lame — a second lossy generation. For best fidelity, start from WAV or FLAC, do all your pitch/edit passes there, and convert to MP3 only as the final step with wav-to-mp3.
File over the tier duration limit
RejectedPro caps each file at 120 minutes (and 200 MB). A two-hour-plus recording is rejected on Pro before processing. Pro-media and Developer have no duration cap (100 GB size). The duration limit is separate from the size limit — a small but very long file can still be blocked.
Free-tier user tries to pitch shift
Requires ProPitch shift is gated to Pro and above. Free-tier accounts cannot run it. If you only need a quick conversion or trim, several sibling tools like audio-trimmer are available on lower tiers — but pitch shifting itself needs Pro+.
Very small fractional shift seems inaudible
ExpectedA 0.5-semitone shift is 50 cents — perceptible to trained ears but subtle. Below that the tool does not go (0.5 is the minimum step). If you need finer control than quarter-tones, this resampling tool cannot provide it; the step size is fixed at 0.5 in the UI.
Stereo image sounds slightly different after shift
Expectedasetrate and aresample operate per-channel; for normal stereo the relationship is preserved. Phase-sensitive material (mid/side, heavily panned reverbs) can shift subtly because resampling resamples both channels identically. This is inherent to resampling, not a bug — extreme shifts emphasise it.
Frequently asked questions
How does it change pitch without changing tempo?
It applies three FFmpeg filters in sequence: asetrate retunes by rewriting the sample rate (which shifts pitch and tempo together), aresample restores the original sample rate, and atempo back-corrects the tempo so the total duration is unchanged. The net effect is a pitch shift with the same runtime.
What is the maximum shift?
The Semitones control runs from -24 to +24 — that is two octaves down to two octaves up. At those extremes the timbre is heavily coloured (a resampling artefact), so they are best for sound design rather than transparent retuning.
Does it use Rubber Band or a formant-preserving algorithm?
No. Despite some older copy, the implementation is a resampling shifter built from asetrate + aresample + atempo. It does not preserve formants, so voices change character at large shifts. Keep within ±3 semitones for the most natural results.
Can I shift by cents instead of semitones?
There is no separate cents field in the browser tool. Use fractional semitones: 0.5 semitones equals 50 cents, the finest step the control allows. For sub-quarter-tone precision this tool is not the right fit.
Is my audio uploaded anywhere?
No. Processing runs entirely in your browser via FFmpeg 8.1 compiled to WebAssembly. The file is read locally and never sent to a server — suitable for confidential dialogue, demos, and unreleased music.
What formats can I shift?
Common audio containers: MP3, WAV, FLAC, OGG, Opus, and M4A/AAC. The output keeps the same format as the input — the pitch-shift tool has no separate output-format selector in the UI.
Why does the file get re-encoded?
Applying a filter requires decoding to PCM, processing, and re-encoding. For lossy formats that is one extra generation of compression. Start from WAV or FLAC if you plan multiple passes, and convert to MP3 only at the end.
Does +12 really equal one octave?
Yes. The ratio is 2^(semitones/12), so +12 gives exactly 2.0 (double the frequency, one octave up) and -12 gives 0.5 (one octave down). The math is the standard equal-temperament definition.
Will the runtime be exactly identical?
For WAV/FLAC it is sample-accurate. For MP3/AAC the frame-based encoder may pad the tail by a few milliseconds, but the audible content length is preserved. Use a lossless output if you need an exact match.
What is the difference between this and time-stretcher?
Pitch shifter changes pitch and keeps duration. Time-stretcher keeps pitch and changes duration. They are opposites. Tempo-changer is time-stretcher expressed as a percentage.
Does it work on long files?
Up to your tier limit. Pro allows 120 minutes / 200 MB per file; Pro-media and Developer remove the duration cap (100 GB size). Free tier cannot use pitch shift at all.
Can I harmonise by stacking shifts?
Yes — process copies at, say, +3, +7, or +12 semitones and layer them under the original in your DAW. Because every copy keeps the same duration, all layers stay time-aligned.
Privacy first
Every JAD Audio tool runs entirely in your browser via FFmpeg (WebAssembly) and RNNoise. Your audio files never leave your device — verified by zero outbound network requests during processing.