How to adjust audio bpm without uploading — browser tool
- Step 1Find the track's current BPM — If you do not already know it, run the track through bpm-finder. It detects tempo via energy-onset detection and autocorrelation in the 60–180 BPM range and reports a BPM plus a confidence score and candidates. Note the number — call it the current BPM.
- Step 2Compute the tempo percentage — Use
(target BPM / current BPM) × 100. Example: to take a 120 BPM track to 128 BPM, that is(128 / 120) × 100 = 106.67, so enter 107 (the control's step is 1). To go from 174 to 140 (drum & bass to a slower edit),(140 / 174) × 100 ≈ 80.5, enter 81. - Step 3Drop the track into the tempo changer — Drag your
MP3,WAV,FLAC,M4A,OGG, orOpusfile onto the dropzone. It loads into the browser's FFmpeg core; the audio is never uploaded. - Step 4Enter the computed Tempo (%) — Type your calculated percentage into the single Tempo (%) field (range 25–400, step 1). There is no BPM box here — the percent is the input. The tool applies
atempo = percent / 100. - Step 5Run and download — Process the track. FFmpeg applies the atempo chain and re-encodes once into your source format. Download the retimed file (suffixed
-tempo). - Step 6Verify the new BPM — Run the output back through bpm-finder to confirm it landed on your target. Because of the step-1 rounding on the percent control, the result may be within a fraction of a BPM rather than exact — re-nudge by ±1% if you need it tighter.
BPM change → Tempo (%) to enter
The percent to type for common DJ/producer BPM moves. Formula: Tempo (%) = (target BPM / current BPM) × 100, rounded to the nearest 1 (the control's step). Pitch stays fixed.
| Current BPM | Target BPM | Exact percent | Enter (rounded) | Direction |
|---|---|---|---|---|
| 120 | 124 | 103.33 | 103 | Speed up |
| 120 | 128 | 106.67 | 107 | Speed up |
| 128 | 120 | 93.75 | 94 | Slow down |
| 100 | 120 | 120.00 | 120 | Speed up |
| 174 | 140 | 80.46 | 80 | Slow down |
| 90 | 180 | 200.00 | 200 | Double-time |
| 140 | 70 | 50.00 | 50 | Half-time |
Why a calculator is not in the UI
What this tool does and does not have, so you set expectations correctly. The BPM workflow is two tools, not one auto-calculating box.
| You might expect | Reality in this tool | How to get it |
|---|---|---|
| Current-BPM + target-BPM input boxes | Not present — only a single Tempo (%) field | Compute the percent yourself with the formula |
| Auto-detect the current BPM here | Not in the tempo changer | Run bpm-finder first |
| Pitch knob alongside BPM | No pitch control — atempo locks pitch | Use pitch-shifter for key changes |
| Snap-to-nearest-BPM | Percent has step 1, so results land within a fraction of a BPM | Verify with bpm-finder and nudge ±1% |
Tier limits
Tempo changer is Pro-tier. Limits below are the audio-family platform ceilings.
| Tier | Max file size | Max duration / file | Access |
|---|---|---|---|
| Free | 50 MB | 30 min | Locked (needs Pro) |
| Pro | 200 MB | 120 min | Unlocked |
| Pro + Media | 100 GB | Unlimited | Unlocked |
| Developer | 100 GB | Unlimited | Unlocked |
Cookbook
Worked BPM conversions. Each shows the current and target BPM, the percent to enter, and the verification step. Find current BPM with bpm-finder first.
Nudge a 120 BPM house track to 128 BPM
Classic peak-time bump. (128 / 120) × 100 = 106.67, so enter 107. Pitch stays locked, so the track stays in key for harmonic mixing.
Current BPM: 120 (from bpm-finder) Target BPM: 128 Percent: (128/120)*100 = 106.67 -> enter 107 Output: track-tempo.wav ~128 BPM, same key Verify: re-run bpm-finder -> ~128
Slow a 174 BPM DnB tune to a 140 BPM edit
(140 / 174) × 100 ≈ 80.46, enter 80. The slower edit keeps its original pitch so basslines stay in tune.
Current BPM: 174 Target BPM: 140 Percent: (140/174)*100 = 80.46 -> enter 80 Output: tune-tempo.flac ~140 BPM, same key
Make a half-time edit (140 → 70 BPM)
Exactly 50%. Half-time edits are common for breakdowns and remixes. atempo handles 0.5 in one stage.
Current BPM: 140 Target BPM: 70 Percent: (70/140)*100 = 50 -> enter 50 Output: edit-tempo.wav 70 BPM, double length
Double-time a 90 BPM loop to 180 BPM
Exactly 200%. Useful for turning a slow loop into a fast one for a different genre while keeping the sample's pitch.
Current BPM: 90 Target BPM: 180 Percent: (180/90)*100 = 200 -> enter 200 Output: loop-tempo.wav 180 BPM, half length
Beatmatch two tracks for a mashup
Pick a common BPM (say 124) and retime both tracks to it. Run each through bpm-finder, compute its percent, and apply. Both end at 124 BPM, both in their original keys.
Track A: 120 BPM -> (124/120)*100 = 103.33 -> enter 103 Track B: 128 BPM -> (124/128)*100 = 96.88 -> enter 97 Both outputs land at ~124 BPM, pitch unchanged
Edge cases and what actually happens
Looking for current-BPM / target-BPM boxes
Not a featureThis tool has a single Tempo (%) field — there is no auto-calculating BPM pair. Compute the percent yourself with (target / current) × 100. The earlier description suggesting JAD calculates the factor for you was inaccurate; the real workflow is bpm-finder to read the tempo, then this tool to apply the percent.
Result is off by a fraction of a BPM
RoundingThe Tempo (%) control has step 1, so a target like 106.67% rounds to 107%, landing slightly off the exact BPM. For most mixing this is inaudible; if you need it tighter, verify with bpm-finder and adjust by ±1%.
bpm-finder reports double or half the real BPM
Check the candidateAutocorrelation can lock onto a harmonic — reporting 174 for an 87 BPM track, or vice versa. bpm-finder returns candidates with scores; if the headline number looks off, use the candidate that matches the genre. Feed the correct current BPM into the percent formula.
Free account tries to retime a track
Requires ProThe tempo changer is minTier: pro. A free account cannot run it — the attempt is blocked as a tier limit. Upgrade to Pro to retime tracks.
You expected the key to change with the BPM
By designatempo locks pitch, so changing BPM never changes key. That is what you want for harmonic mixing. If you also need to shift the key, run pitch-shifter as a separate step.
Big BPM jump introduces artifacts
ExpectedLarge factors (e.g. 200%+ or below 50%) stretch the audio enough that atempo's time-domain artifacts become audible, especially on transients like hi-hats. Ordinary ±10 BPM nudges are clean; extreme half/double-time edits will show some artifacting.
Track has a rubato or live-drummer tempo
Limited detectionbpm-finder works best on steady rhythmic music in 60–180 BPM. A track that speeds up and slows down has no single BPM, so the percent you compute applies uniformly and will not keep it locked to a grid. Tempo change is a global scale, not a beat-by-beat warp.
MP3 stem degrades after retiming
One re-encodeRetiming re-encodes once. For lossy MP3 stems that is one generation of loss. Work from WAV/FLAC stems so the BPM change stays lossless, then bounce to MP3 at the end if needed.
Target percent exceeds 400
ClampedIf your formula yields more than 400% (e.g. a 4x+ tempo jump), the control clamps to 400. Such extreme moves rarely sound musical anyway; reconsider whether a half/double-time relationship is what you actually want.
Long DJ set or album file rejected
Tier capA 2-hour set on Pro (120 min cap) is rejected. Split it with audio-splitter and retime parts, or upgrade to Pro + Media for unlimited duration.
Frequently asked questions
Can I just type the BPM I want?
No — the tool has a single Tempo (%) control, not a BPM box. Convert your BPM goal to a percentage with (target BPM / current BPM) × 100 and enter that. For example, 120→128 BPM is (128/120)×100 = 106.67, so you enter 107.
How do I find my track's current BPM?
Run it through the sibling bpm-finder, which detects tempo with energy-onset detection and autocorrelation (best for steady music in 60–180 BPM) and returns a BPM plus confidence and candidate values. Use that number as the 'current BPM' in the formula.
Does changing BPM change the key?
No. atempo retimes without resampling, so the key (pitch) is unchanged. That makes it ideal for harmonic mixing. To change key, use pitch-shifter separately.
Why is my result a fraction of a BPM off target?
The Tempo (%) control has a step of 1, so a target percent like 106.67 rounds to 107. The result lands within a fraction of a BPM — fine for most mixing. Verify with bpm-finder and nudge ±1% if you need it exact.
What is the formula again?
Tempo (%) = (target BPM ÷ current BPM) × 100. Above 100 means speeding up to a higher BPM; below 100 means slowing to a lower BPM. Half-time is 50%, double-time is 200%.
Is the track uploaded anywhere?
No. FFmpeg runs as WebAssembly in your browser and the file stays in memory. Unreleased or licensed tracks never touch a server, which matters for label and client work. Only an anonymous usage counter is logged if you are signed in.
Can I beatmatch two tracks to the same BPM?
Yes. Read each track's BPM with bpm-finder, compute each one's percent toward a shared target BPM, and apply. Both land at the common BPM in their original keys. See the mashup example in the cookbook.
What output format do I get?
The same as your input — WAV stays lossless WAV, MP3 stays MP3, and so on. For stem work, start from WAV/FLAC so the retime stays lossless, then convert with a tool like wav-to-mp3 at the end.
What is the maximum BPM change?
The control allows 25%–400%, which covers everything from a quarter-speed half-time-of-half-time edit up to a 4x double-time. Extreme moves produce audible artifacts, so musical use usually stays well within that range.
Do I need a paid plan?
Yes. The tempo changer is a Pro-tier tool; free accounts cannot run it. bpm-finder availability depends on its own tier — check it on its page. Pro unlocks the tempo changer with the size/duration limits shown above.
Will it keep a track perfectly on a beat grid?
Tempo change applies one uniform scale to the whole file. For a track recorded to a click that is steady, the new BPM is uniform and grid-locked. For a live or rubato performance with drifting tempo, no single percentage keeps it on a grid — that needs beat-by-beat warping, which this tool does not do.
Can I automate BPM conversions?
Yes. Pair an @jadapps/runner and POST the file plus { percent } to http://127.0.0.1:9789/v1/tools/tempo-changer/run. JAD's API never accepts uploads — the runner executes locally on your machine. Compute the percent from BPM in your own script.
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.