Fade in and out with five curve shapes: linear, exponential, logarithmic, S-curve and equal power. The graph, the preview and the exported file all come from the same function.
Initializing in your browser…
Join clips end to end or stack them on one timeline, with an equal-power crossfade that holds the level through the join, BS.1770 loudness matching between files, and the merged result measured before you download it.
Turn audio into a waveform image in five styles, exported as PNG or real vector SVG. Reads every channel, shows true level in dBFS, and redraws correctly at any size.
Cut a region out of any audio file, exact to the sample and measured at zero milliseconds of error. Waveform handles, real keyboard shortcuts, click-free cut fades, and WAV or MP3 output that matches its extension.
A song clip starts and ends abruptly and needs smooth fades that match the shape you picked.
Input
flat-1000.wav - fade in 2 s - exponential - WAV out
Output
Envelope measured at 0.063, 0.250, 0.563 across the fade: exactly x squared
The graph, the preview and the exported file are all driven by one function, so the shape on screen is the shape the samples follow. Before this pass the curve setting never reached the encoder: all four options exported the same linear ramp, reading 0.237, 0.475, 0.712 whatever was chosen, a spread of 0.0000 between them.
Fade a clip in, out, or both, choosing the shape of each. The curve drawn on screen, the audio you preview and the file you download all come from one function, so what the graph shows is what the samples do: measured on a constant tone, every curve matches its definition exactly at a quarter, half and three quarters of the fade.
Set Fade Out Only with a 6 second logarithmic fade: the level holds for most of the fade and then drops away, which reads as an ending rather than as someone turning a knob.
A half-second exponential fade in hides the fact that the clip starts mid-waveform, without being audible as a fade.
Fade one clip out and the next one in with Equal power over the same length, and the pair holds a constant loudness across the join instead of dipping in the middle.
Fade out one track and in the next for seamless playlist listening.
Gently bring background music in and out under a speaker without jarring cuts.
Bring a theme up under a voice and take it away again without either arriving abruptly.
A short fade at each end hides the click that cutting mid-waveform leaves behind.
Five shapes are available. Linear raises the gain at a constant rate, which sounds like it fades quickly at first because hearing is not linear. Exponential starts slowly and accelerates, the usual choice for something that should creep in. Logarithmic rises quickly then eases off, which suits a fade out that should hold its level before disappearing. S-curve is slow at both ends and quick through the middle, and is hard to fault on anything. Equal power follows a quarter sine and holds constant power rather than constant amplitude, which is the correct shape when the fade is one half of a crossfade. A fade out is the fade in played backwards, so choosing the same shape at both ends gives a symmetric envelope.
Until this pass the curve setting was decorative. It was never passed to the encoder, and ffmpeg's afade filter defaults to a linear ramp, so all four options produced byte-identical audio. Measured on a constant tone, the exported envelope read 0.237, 0.475 and 0.712 at a quarter, half and three quarters of the fade no matter what was selected, a spread of exactly 0.0000 between the settings. Against the shape drawn on screen, exponential was out by 0.225 and logarithmic by 0.275. The live preview was a third behaviour again, approximating two of the four shapes with Web Audio ramps, so the graph, the preview and the download could disagree three ways at once.
The fade is now applied to the decoded buffer in the browser using the same function that draws the graph, and the preview plays that rendered buffer. Measured through the browser and back out of the exported file, every curve matches its definition to the resolution of the measurement, and the spread between the settings is 0.4999 where it used to be zero. Doing the work on audio the page has already decoded also removes the multi-megabyte WebAssembly download that used to be needed, so the export is immediate. Output is a 16-bit WAV or a 192 kbps MP3.
Fade durations run from 0.1 seconds up to half the length of the clip, capped at 30 seconds, and both ends are set independently. The graph shows the whole envelope across the file with the two fade regions shaded, so a fade that is longer than the material it has to work with is obvious before you export it.
S-curve if you are unsure: slow at both ends, quick through the middle, and unobtrusive on almost anything. Equal power if the fade is one half of a crossfade. Exponential for something that should creep in, logarithmic for an ending that holds its level before disappearing.
Yes, exactly. The line is drawn by the same function that multiplies the samples, and the preview plays the rendered result. Measured on a constant tone, every curve matches its definition at a quarter, half and three quarters of the fade. This was not true before: the curve setting never reached the encoder, so every option exported the same linear ramp.
Yes. Fade Type selects in only, out only, or both, and each end has its own duration and shape.
Half the length of the clip, capped at 30 seconds, so the two fades can never overlap.
Audio is decoded and processed locally with the Web Audio API. Your files are never uploaded to a server.