How to transpose audio by semitones
- Step 1Load the track to transpose — Drop the audio (MP3, WAV, FLAC, M4A, OGG, Opus). FFmpeg loads in-browser as WebAssembly; the file is read locally and not uploaded. Transposing is a Pro-tier tool — Pro or higher required.
- Step 2Work out the interval in semitones — Count the semitones from the current key to the target. Up: C→C# = +1, C→D = +2, C→E = +4, C→G = +7, C→C(oct) = +12. Down uses negative values. The interval table below lists the common ones.
- Step 3Enter the Semitones value — Type the value into the Semitones control (-24 to +24, step 0.5). Positive transposes up, negative transposes down. For microtonal targets use the 0.5 step.
- Step 4Transpose — Click process. FFmpeg builds
asetrate=<sr*ratio>,aresample=<sr>,atempo=<1/ratio>and applies it in one pass, holding the duration so the transposed track aligns in time with the original. - Step 5Check it against the reference — Play the transposed file alongside the track you are matching. If the keys clash, recount the interval — a common mistake is transposing by the wrong direction or being an octave off (±12).
- Step 6Download and layer — Output keeps the source format and is suffixed
-pitched. Because duration is preserved, drop it straight into your arrangement at the same position as the original.
Semitone-to-key transposition reference
Common transpositions from C as the reference. Add the semitone count for any starting key — the interval is what matters, not the absolute note.
| From C to | Semitones | Ratio 2^(n/12) | Interval |
|---|---|---|---|
| C# / Db | +1 | 1.059 | Minor second |
| D | +2 | 1.122 | Major second |
| E | +4 | 1.260 | Major third |
| F | +5 | 1.335 | Perfect fourth |
| G | +7 | 1.498 | Perfect fifth |
| A | +9 | 1.682 | Major sixth |
| C (octave) | +12 | 2.000 | Octave |
| A (below) | -3 | 0.841 | Minor third down |
Key-matching workflow at a glance
How to bring two tracks into the same key with this single tool.
| Goal | What to transpose | Semitones |
|---|---|---|
| Match track A (key C) to track B (key D) | Transpose A up | +2 |
| Match track A (key G) to track B (key E) | Transpose A down | -3 |
| Drop a backing track to a lower key for a singer | Transpose backing down | -2 to -4 |
| Octave-shift a sample to fit | Transpose sample | +12 or -12 |
Transpose control and limits
Verified control surface and tier limits for transposing.
| Item | Value |
|---|---|
| Control | Semitones, -24 to +24, step 0.5 |
| Output format | Same as input (no selector) |
| Duration | Preserved (atempo back-correction) |
| Min tier | Pro |
| Pro limits | 200 MB / 120 min / 10 files |
| Pro-media / Developer | 100 GB / unlimited duration |
Cookbook
Transposition recipes for key-matching, mashups, and range-fitting, with the exact Semitones value and the filter the tool builds. All processing is local.
Mashup: transpose track A up to match track B
Track A is in C, track B is in D. Transpose A up two semitones so both share the key of D, then layer. Both stay the same length.
Track A: in C, 3:00 Semitones: 2 (C → D) Ratio: 2^(2/12) = 1.1225 Filter built: asetrate=49502,aresample=44100,atempo=0.8909 Output: trackA-pitched (now in D, still 3:00) — layer with track B
Fit a backing track to a singer's range
A singer finds the original key too high. Transpose the backing down 3 semitones (a minor third) so the melody sits lower. Duration unchanged, so the arrangement stays intact.
Input: backing.wav (key A) Semitones: -3 (A → F#) Ratio: 2^(-3/12) = 0.8409 Filter built: asetrate=37083,aresample=44100,atempo=1.1892 Output: backing-pitched.wav (key F#, same length)
Octave-match a sample loop
A loop sits an octave above the rest of the track. Transpose it down 12 to bring it into the right register; same length means the loop still tiles cleanly.
Input: loop.flac Semitones: -12 Ratio: 0.5 Filter built: asetrate=22050,aresample=44100,atempo=2.0 Output: loop-pitched.flac (one octave lower)
Quarter-tone correction on an out-of-tune sample
A field recording is about 50 cents flat. Transpose up 0.5 semitone to bring it close to pitch. No cents field — 0.5 semitone = 50 cents.
Input: sample.wav (~50 cents flat) Semitones: 0.5 Ratio: 2^(0.5/12) = 1.0293 Output: sample-pitched.wav (≈ in tune)
Transpose up a perfect fifth for a doubling part
Derive a fifth-up part from a melody by transposing +7, then layer for a parallel-fifth texture. Same length keeps both parts time-aligned.
Input: melody.wav (kept as original) Copy: Semitones 7 (perfect fifth up) Ratio: 2^(7/12) = 1.4983 Output: melody-pitched.wav — stack under the original
Edge cases and what actually happens
Transposed track sounds off-character at large intervals
By designThis is a resampling transpose, so timbre and formants move with the pitch. Big intervals (a fifth or more) noticeably colour solo voice and acoustic instruments. For small transpositions (±1 to ±3) most material holds up; beyond that, expect audible character change.
Keys still clash after transposing
ExpectedUsually a counting error: wrong direction (you needed -2, not +2) or an octave off (±12). Recount the interval between the two keys. The tool transposes exactly by the Semitones you enter — it does not detect or auto-match keys.
Expecting automatic key detection
Not supportedThis tool does not analyse or detect the musical key — you supply the semitone interval. For BPM analysis of a track, see bpm-finder; for frequency content, see spectrum-analyzer. Neither detects key, but they help you understand the material.
Transposed loop no longer tiles seamlessly
ExpectedDuration is preserved, so a loop keeps its length and should still tile. If a seam appears, it is usually a frame-level tail pad from a lossy encoder — transpose in WAV/FLAC to keep the loop sample-exact.
Stacking several transposed parts sounds muddy
Quality lossIf each part is a re-encoded lossy file, stacking compounds artefacts. Transpose from and to WAV/FLAC for layering work, then bounce to MP3 once at the end with wav-to-mp3.
Want to change tempo to match BPM, not key
Wrong toolTransposing changes key, not tempo. To match BPM between tracks use tempo-changer or time-stretcher; find the current BPM with bpm-finder first.
Need finer than a quarter-tone
ExpectedThe step is fixed at 0.5 semitone (50 cents). Cent-level transposition is not available in this UI. For precise tuning beyond quarter-tones, use a dedicated pitch-correction plugin in a DAW.
File exceeds tier limits
RejectedPro allows 200 MB and 120 minutes per file; the duration cap is independent of size. Larger or longer files are rejected on Pro. Pro-media and Developer raise this to 100 GB with no duration cap. Free tier cannot transpose.
Frequently asked questions
How do I transpose a song by semitones online?
Drop the file in, enter the semitone interval (positive up, negative down) in the Semitones control, and process. It runs in your browser via FFmpeg WebAssembly. Transposing is a Pro-tier feature.
How do I match the key of two tracks?
Count the semitones between their keys and transpose one to meet the other — e.g. C to D is +2. Both files keep the same length, so they layer cleanly. The tool does not auto-detect key; you supply the interval.
Does transposing change the tempo?
No. The atempo stage holds the tempo, so the transposed track is the same length as the original. Only the pitch (key) changes.
How many semitones in an octave?
Twelve. So +12 transposes up one octave (double the frequency) and -12 down one octave. The control goes to ±24, two octaves.
Can I transpose by a fraction of a semitone?
Yes, in 0.5-semitone (quarter-tone) steps. There is no cents field, so 0.5 semitone equals 50 cents — that is the finest available step.
Will transposing ruin the sound quality?
It is a resampling transpose, so large intervals colour the timbre and lossy formats re-encode once per pass. Small transpositions in WAV/FLAC stay clean; big moves are audibly coloured by nature.
Does it detect the key of my track?
No. You provide the semitone interval. For tempo, use bpm-finder; for spectral content, spectrum-analyzer — but key detection is not part of these tools.
Is my music uploaded?
No. FFmpeg 8.1 runs in your browser via WebAssembly, so backing tracks, stems, and unreleased songs are processed locally and never sent to a server.
What output format do I get?
The same as the input. The transpose tool does not offer a separate output-format selector, so the container is preserved.
How do I fit a song to a singer's range?
Transpose the backing track down a couple of semitones (try -2 to -4) so the melody sits lower. The duration is unchanged, so the arrangement stays intact.
Can I transpose several stems together?
Process each stem with the same Semitones value. Because every output keeps the original length, all stems stay time-aligned. Batch size depends on tier (10 on Pro).
What tier do I need?
Pro or higher. Free tier cannot transpose. Pro handles 200 MB / 120 min per file; Pro-media and Developer remove the duration cap.
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.