How to change audio duration — make it longer or shorter
- Step 1Note the original duration — Find the source length in seconds. JAD shows it after you drop the file; or read it from your player/editor. Call it
original. - Step 2Write down the target duration — Your slot or target length in seconds —
target. Be exact: 30.0, 15.0, 3600.0, etc. - Step 3Compute the factor — factor = original ÷ target. If target > original you'll get a factor below 1 (lengthen); if target < original you'll get a factor above 1 (shorten). Round to the nearest 0.05 step.
- Step 4Enter the factor — Type it into the Factor input (range 0.25–4, step 0.05). There is no target-duration field, so this computed factor is how you express the target.
- Step 5Render and measure — FFmpeg applies
atempo=<factor>and re-encodes in your format. Then check the output's actual duration — rounding to the 0.05 step can leave you a fraction of a second off. - Step 6Trim to land it exactly — Aim the factor so the output is a hair LONGER than target, then cut the last fraction with audio-trimmer for a frame-accurate finish.
Factor for common slot lengths (factor = original ÷ target)
Worked examples. Round the computed factor to the nearest 0.05 the UI accepts, then verify the output and trim if needed. Stay within ~0.8×–1.25× for fully transparent results.
| Original | Target | Factor (orig ÷ target) | Enter (nearest step) |
|---|---|---|---|
| 33 s | 30 s | 1.10 | 1.10 |
| 28 s | 30 s | 0.933 | 0.95 (then trim) / 0.90 |
| 17 s | 15 s | 1.133 | 1.15 (then trim) |
| 13 s | 15 s | 0.867 | 0.85 (then trim) |
| 62 min | 60 min | 1.033 | 1.05 (then trim) |
| 6.5 s | 8 s | 0.8125 | 0.80 |
Factor → speed → duration
Direct factor → duration mapping, useful as a sanity check after you compute factor = original ÷ target.
| Factor | Playback speed | Output duration | atempo stages |
|---|---|---|---|
| 0.25 | Quarter speed (slowest) | 4× longer | Two (0.5 × 0.5) |
| 0.5 | Half speed | 2× longer | One |
| 0.75 | 75% speed | 1.33× longer | One |
| 1.0 | Unchanged (default) | Same length | One (no-op) |
| 1.25 | 125% speed | 0.8× (20% shorter) | One |
| 1.5 | 150% speed | 0.667× (33% shorter) | One |
| 2.0 | Double speed | Half length | One |
| 4.0 | Quadruple speed (fastest) | Quarter length | One |
Tier limits for the time-stretcher
Audio-family limits read from the code (lib/tier-limits.ts). The per-file DURATION cap is separate from the file-size cap — a 35-minute voice memo well under 50 MB still exceeds the Free 30-minute limit. The time-stretcher is a Pro-tier tool (minTier: pro).
| Tier | Max file size | Max duration per file | Files per batch |
|---|---|---|---|
| Free | 50 MB | 30 min | 1 (time-stretcher itself starts at Pro) |
| Pro | 200 MB | 120 min | 10 |
| Pro-media | 100 GB (streaming) | Unlimited | 100 |
| Developer | 100 GB | Unlimited | Unlimited |
Cookbook
Fit-to-duration jobs worked from the formula. Compute factor = original ÷ target, round to 0.05, verify, trim the remainder.
Fit a 33-second read into a 30-second ad slot
The read is 3 seconds over. Speed it up just enough to fit — pitch stays put so the voice is unchanged.
original = 33 s, target = 30 s factor = 33 / 30 = 1.10 -> enter 1.10 output = 33 / 1.10 = 30.0 s (lands exactly)
Lengthen a 28-second bed to a 30-second slot
A music bed is 2 seconds short. A small slow-down fills the slot without an audible loop.
original = 28 s, target = 30 s factor = 28 / 30 = 0.933 -> enter 0.90 (slightly long) output = 28 / 0.90 = 31.1 s -> trim 1.1 s to 30.0
Bring a 62-minute episode under 60 minutes
A podcast episode is 2 minutes over a hosting/ad-slot limit. A ~3% speed-up keeps the hosts natural-sounding.
original = 3720 s (62 min), target = 3600 s (60 min) factor = 3720 / 3600 = 1.033 -> enter 1.05 output = 3720 / 1.05 = 3543 s (59.05 min) -> within limit (Pro tier: 120 min cap covers this file.)
Stretch a 6.5-second clip to an 8-second story
A social story slot is 8 s; the clip is 6.5 s. Slow it to 0.80× to fill the full duration with motion still in sync.
original = 6.5 s, target = 8 s factor = 6.5 / 8 = 0.8125 -> enter 0.80 output = 6.5 / 0.80 = 8.13 s -> trim 0.13 s to 8.0
Hit an exact length with the stretch-then-trim pattern
Rounding to 0.05 rarely lands dead-on. Aim a touch long, then trim — the reliable way to get a frame-accurate duration.
Target 15.000 s, original 17.0 s factor 17/15 = 1.133 -> enter 1.10 (under, output 15.45 s) Then audio-trimmer: cut to 15.000 s exactly. Going 1.10 (slightly long) beats 1.15 (slightly short) because you can only trim, not add.
Edge cases and what actually happens
There's no 'target duration' field
By designThe tool exposes a speed factor only. Convert your target with factor = original ÷ target. The earlier spoke's claim that JAD 'calculates the factor for you' is not how the current UI works — you do the one division yourself.
Output is a fraction of a second off target
ExpectedThe factor steps in 0.05, so a target that needs factor 1.033 gets rounded. Aim slightly long and trim with audio-trimmer for an exact landing — you can cut but not add.
Target is more than 4× shorter than the source
Above UI maximumShortening to under a quarter of the original needs a factor above 4, which the input won't accept. Trim content first, or run the 4× output through the tool again. Note speech is unintelligible far above ~1.5× anyway.
Target is more than 4× longer than the source
Below UI minimumLengthening past 4× needs a factor below 0.25 (the minimum). Re-run the 0.25× output a second time, but expect heavy artefacts; large lengthening rarely sounds natural.
Target is far from the source (e.g. 2× change)
Quality warningHitting a target that needs a factor below ~0.8 or above ~1.25 is achievable but audible — atempo smears as you push it. For broadcast-grade results, re-record or re-edit content to closer to target, then stretch the small remainder.
Source already exceeds the tier duration cap
RejectedIf the original is longer than your tier's cap (Free 30 min, Pro 120 min), it's rejected before any stretch. Shortening can't help because the SOURCE is checked. Use Pro-media for unlimited duration.
MP3 in, MP3 out for the final master
Re-encode generationStretching re-encodes the audio, adding a lossy generation to an MP3 source. For a master, stretch a WAV/FLAC and convert to MP3 last with wav-to-mp3.
You set factor 1.0 to 'keep the length'
No-op (with re-encode)Factor 1 leaves duration unchanged but still re-decodes/re-encodes. If you don't need a length change, you don't need this tool — use a converter or leave the file as-is.
Frequently asked questions
How do I make audio a specific length?
Compute factor = original_duration ÷ target_duration and enter that in the Factor field. There's no target-time box; the factor is how you express the target. Output length comes out as original ÷ factor.
Does the tool calculate the factor for me from a target?
No — the current UI only takes a speed factor. You do the single division (original ÷ target). The cookbook above has worked examples for 15 s, 30 s, and 60 min targets.
Why won't the output hit my target exactly?
The factor steps in 0.05, so most targets round slightly. Aim a touch long and trim the remainder with audio-trimmer — you can cut audio but not add it.
Should I round the factor up or down?
Round so the output is slightly LONGER than your target (a smaller factor when lengthening, or the lower of two options when shortening), then trim to exact. That guarantees you can reach the precise length.
Will the pitch change when I fit to a slot?
No. atempo changes tempo while keeping pitch constant, so fitting a voiceover or music bed to a slot never detunes it. Large changes add time-stretch artefacts, but the key is preserved.
How much can I shorten or lengthen?
The factor ranges 0.25–4, so you can make audio up to 4× longer (factor 0.25) or up to 4× shorter (factor 4). Beyond that, edit content or re-run the output through the tool.
Can I fit a whole episode to under an hour?
Yes, with a small speed-up (e.g. factor 1.03 for a 62→60 min trim). Time-stretcher is a Pro feature; Pro's 120-minute cap covers full episodes. Pro-media removes the cap.
Does the output stay in the same format?
Yes — there's no format option. The output keeps the input extension and is re-encoded with that format's encoder. Convert separately if you need a different format.
Is my unreleased audio uploaded?
No. The stretch runs in your browser via FFmpeg WebAssembly. Embargoed ads and unreleased episodes are processed locally and never sent to a server.
Big change vs small change — does it matter for quality?
Small changes (roughly 0.8×–1.25×) are transparent. Bigger changes are audible because atempo smears as you push it. For large duration changes, prefer re-editing content over an extreme stretch.
What if my source is already too long for my tier?
The source duration is checked before processing, so a file over your tier's cap (Free 30 min / Pro 120 min) is rejected — shortening it via stretch can't help. Upgrade to Pro-media for unlimited duration.
Is tempo-changer better for this?
tempo-changer takes a percentage instead of a multiplier (110% = factor 1.10). If you prefer thinking in percent, use it — the underlying pitch-preserving math is the same.
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.