How to add smooth fades to audio — browser tool, no upload
- Step 1Drop the file into the browser tool — Open the fade-in-out tool and drag your file in. Decoding happens locally; you'll see duration, sample rate and channels read straight off the file — confirmation that nothing was uploaded to learn them.
- Step 2Decide what shape you want — Picture the outro: do you want it to hold then drop (Exponential), drop then linger (Logarithmic), or fall steadily (Linear)? The same logic applies to the intro. Pick the curve that matches the feel you're after.
- Step 3Set Fade in (s) — Type the ramp-up length. Default
2, step0.5, max = file length. For music intros 1–3 s is typical; for ambient beds, longer. - Step 4Set Fade out (s) — Type the ramp-down length. Default
2. The fade-out is auto-positioned atduration − fadeOutS, so you only choose its length, not where it begins. - Step 5Choose the Curve — Select Linear, Exponential, or Logarithmic. This single choice applies to both fades. There is no per-fade curve — if you need different shapes on each end, run the tool twice (in-only, then out-only).
- Step 6Process and audition — Run it; the tool builds
afade=t=in:st=0:d=<in>:curve=<curve>+afade=t=out:st=<dur−out>:d=<out>:curve=<curve>, re-encodes once, and hands you a-fadedfile. Audition the ends. If the shape isn't right, swap the curve and re-run — it's non-destructive on the source.
Curve character reference
How each afade curve behaves perceptually. The same curve is applied to both the fade-in and the fade-out.
| Curve (UI) | FFmpeg value | Shape | Sounds like | Good for |
|---|---|---|---|---|
| Linear | tri | Straight line, constant rate | Even, predictable; can feel mechanical on long fades | Speech, short fades, declicks, general use |
| Exponential | exp | Holds high, then drops away | Stays loud longer then disappears | Music outros where you want the energy to hold before vanishing |
| Logarithmic | log | Drops fast, then lingers near silence | Quick initial drop, long quiet tail | Ambient tails, dramatic dissolves, long fade-outs |
Where processing happens
Every step is local. Nothing in this list involves a network round-trip with your audio.
| Step | Runs where | What it touches |
|---|---|---|
| Decode input | Browser (WASM FFmpeg) | Your file's bytes, in tab memory |
| Apply afade chain | Browser (WASM FFmpeg) | The decoded samples, on your CPU |
| Re-encode output | Browser (WASM FFmpeg) | Same-format encoder (e.g. libmp3lame, flac) |
| Download result | Browser | A local blob — no server stored it |
| Usage counter | Server (count only) | One number for dashboard stats; no audio content |
Cookbook
Curve-focused recipes. Each shows the setting and the resulting afade chain so you can see the curve name go straight into FFmpeg.
Exponential outro that holds then drops
A pop track where you want the chorus to stay strong then disappear quickly rather than fade evenly.
Input: single.mp3 (3 min 50 s) Settings: Fade in 1 · Fade out 5 · Curve Exponential FFmpeg: afade=t=in:st=0:d=1:curve=exp, afade=t=out:st=225:d=5:curve=exp Result: outro holds full level then drops away in the last ~2 s
Logarithmic dissolve for an ambient tail
A pad or drone where you want an immediate softening then a long quiet linger into silence.
Input: pad.flac (4 min 00 s) Settings: Fade in 6 · Fade out 12 · Curve Logarithmic FFmpeg: afade=t=in:st=0:d=6:curve=log, afade=t=out:st=228:d=12:curve=log Result: quick initial drop, long fade tail, lossless FLAC
Linear fade for spoken word
Voice clips rarely benefit from fancy curves; linear is transparent and avoids drawing attention to the fade.
Input: voice-note.wav (45.0 s) Settings: Fade in 0.5 · Fade out 0.5 · Curve Linear FFmpeg: afade=t=in:st=0:d=0.5:curve=tri, afade=t=out:st=44.5:d=0.5:curve=tri Result: clean spoken-word top and tail, no audible curve character
Two-pass mixed curves (exp in, log out)
Because the tool uses one curve per pass, mix shapes by running twice.
Pass 1 (in only): Settings: Fade in 2 · Fade out 0 · Curve Exponential -> song-faded.mp3 Pass 2 (out only, on the result): Settings: Fade in 0 · Fade out 4 · Curve Logarithmic -> song-faded-faded.mp3 Result: exponential intro + logarithmic outro
Subtle linear declick on a loop point
Tiny linear ramps remove the click where a loop wraps, without audibly shortening it.
Input: loop.wav (2.0 s) Settings: Fade in 0.02 · Fade out 0.02 · Curve Linear FFmpeg: afade=t=in:st=0:d=0.02:curve=tri, afade=t=out:st=1.98:d=0.02:curve=tri Result: click removed, loop still ~2 s
Edge cases and what actually happens
Curve barely audible on a very short fade
ExpectedOver 0.05 s the difference between tri, exp and log is imperceptible — there isn't enough time for the shapes to diverge. Curve choice only matters on fades of roughly a second or more. For declicks, any curve works.
One curve for both fades
Single curveThe Curve control sets both the in and the out. To use a different shape on each end, run the tool twice: in-only on the first pass, out-only on the second. There is no per-fade curve in a single pass.
Overlapping fades dip the middle
Overlapping fadesIf fade-in + fade-out exceeds the file length the envelopes overlap and multiply, so the centre never reaches full level — you get a tent shape. Intentional for very short clips; for longer files, keep the sum below the duration to preserve a flat middle.
Lossy source re-encoded in full
One generation lossApplying any curve re-encodes the whole file. For MP3/M4A/OGG/Opus that's one extra generation of loss across the entire track, not just the faded seconds. Fade a lossless master where possible.
FLAC keeps depth, WAV drops to 16-bit
Bit-depth noteFLAC output preserves the source bit depth; WAV output is encoded with pcm_s16le (16-bit). For a 24-bit source you want to keep at depth, route through FLAC rather than WAV.
Nothing happens with both durations at 0
By designIf both Fade in and Fade out are 0, no afade filter is added; the file is just re-encoded once. For lossy formats that's a no-op apart from one codec generation. Don't run the tool if you want the file untouched.
Browser without cross-origin isolation runs single-threaded
Slower, still worksMulti-threaded FFmpeg needs a cross-origin-isolated context. Without it the WASM build falls back to single-threaded — slower on long files but the result is identical. The capability strip on the page shows whether MT FFmpeg is active.
Very large file on Free tier
Tier limitFree caps at 50 MB / 30 min per file. A long lossless track can hit 50 MB first. Convert with wav-to-mp3 or move to Pro (200 MB / 120 min).
Fade doesn't change perceived loudness of the body
ExpectedCurves only shape the ramp regions; the steady section keeps its level. If the body is too quiet or too loud, level it with volume-normalizer before fading.
Frequently asked questions
What does the curve actually change?
The shape of the gain ramp. Linear (tri) is a straight line. Exponential (exp) holds near full level then drops away. Logarithmic (log) drops quickly then lingers near silence. The same curve is applied to both the fade-in and the fade-out.
Which curve sounds smoothest?
It depends on the material. For music outros, exponential often feels smoothest because the energy holds before vanishing. For ambient tails, logarithmic gives a long graceful linger. For speech, linear is the most transparent. Audition both ends and switch if it feels off.
Is the processing really done in my browser?
Yes. FFmpeg 8.1 is compiled to WebAssembly and runs in your tab. Decode, fade and re-encode all happen on your CPU. The only thing the server sees is an anonymous usage counter — never your audio.
Can I set different curves for the in and out fades?
Not in one pass — there's a single Curve control. Run the tool twice to mix: fade-in only with one curve, then fade-out only with another on the result.
Does the output format change?
No. The fade panel has no format picker; output matches input. FLAC stays FLAC, MP3 stays MP3, and so on.
Why does a tiny fade sound the same on every curve?
On fades under about 0.05 s there isn't enough time for the curve shapes to diverge, so all three sound identical. Curve choice only matters on fades around a second or longer.
Will an exponential fade clip or distort?
No. All three curves only reduce gain over time — they never boost above the source level, so they can't introduce clipping. They simply scale existing samples down along the chosen shape.
How is the fade-out positioned?
Automatically. The tool computes the start as the decoded file length minus your fade-out seconds, so the ramp always ends on the last sample regardless of the curve. You set only the length.
Does the multi-threaded note affect the sound?
No. Single-threaded fallback (in browsers without cross-origin isolation) is slower but produces a bit-identical result. The capability strip on the page tells you which mode you're in.
Can I preview before downloading?
The tool processes then returns a downloadable result you can play locally. There's no live scrub preview of the curve, so if the shape isn't right, change the curve and re-run — it's quick and non-destructive.
What if I want a crossfade between two tracks?
That's a different operation. This tool fades one file's start and end; a crossfade blends two files. Use audio-merger, which has a crossfade-duration control for two-file joins.
Is there a size limit?
Free tier allows 50 MB / 30 min per file. Pro raises it to 200 MB / 120 min, Pro-media to 100 GB with unlimited duration. The fade itself is single-file regardless of tier.
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.