Converts one tempo into another for time-stretching: the tempo factor for atempo and rubberband, the new length of a file in time and samples, beat and bar lengths, and the pitch shift that a speed change without time-stretching (varispeed) would bring. The ffmpeg commands follow the measurement in the article on time-stretching.
Target tempo, percentage and semitones are linked: the field edited last sets the target tempo. Length as seconds, m:ss or h:mm:ss.
| What | Original tempo | Target tempo | Samples at target tempo |
|---|
The tempo factor is the target tempo divided by the original tempo: 120 to 132 BPM is tempo 1.1, 128 to 124 BPM is 0.96875. The file becomes longer by the inverse factor. The commands pass the factor as an exact fraction such as 124/128; ffmpeg evaluates it as an expression. atempo accepts 0.5 to 100, but above 2 it skips samples according to the documentation, so the tool splits larger and smaller factors into a chain.
The choice of method follows the measurement at tempo 0.9 to 1.1: with channels=together, rubberband kept every hit within 0.48 ms of its place and the stereo image at a correlation of 0.92, at the price of a ramp before every hit and dips on steady tones. transients=smooth left pure tones almost unchanged but made the mix 2.6 to 3.0 dB quieter. atempo kept sound and level best, but shifted single hits by up to 10.84 ms and damaged a 55 Hz tone.
Tested with ffmpeg 7.1.5 on a 10 s test signal at factors from 0.4 to 2.5: both rubberband commands hit the calculated length to the sample in all seven cases, varispeed to within one sample and the calculated pitch to within 0.01 semitones. atempo deviated by −30.4 to +8.0 ms, within the measured range of 0.9 to 1.1 by no more than 4.6 ms; at 128 to 124 BPM, 4.58 ms were missing.
The ISRC Handbook (4th edition 2021, A.10.2) distinguishes: if a recording changes its length only through speed or fade-out, a new ISRC is due from a difference of 10 seconds; below that it keeps its code.
How atempo and rubberband handle timing, transients, pure and harmonic tones and the stereo image at ±5 and ±10 % is measured in the article “Time-Stretching by 10 Percent With atempo and rubberband”.
When a new version needs its own ISRC, including the 10-second rule for tempo changes, is shown in the tutorial “Release Metadata 2026”.
How the DAWs of 2026 stretch audio to the project tempo, with Ableton Live’s warping as the benchmark, is compared in the article “Top 5 DAWs in 2026”.
Sources: ffmpeg Filters Documentation (atempo, rubberband, asetrate) · Rubber Band Library · ISRC Handbook, 4th Edition 2021, A.10.2 (IFPI)
The calculation assumes a constant tempo; tempo changes within a file and swing are not covered. asetrate only takes whole hertz, so varispeed deviates from the exact rate by no more than 0.5 Hz, which is no more than 0.02 cents. Which method sounds better was not decided by a listening test.