CoProducer Measure a mix
A glowing cyan waveform on black marble split in two with magenta sparks at the cut, one end trailing into a smooth gold curve, a razor blade and a loop of tape beside it

Editing · 21 October 2026 · 7 min

Clicks at your edit points come from cutting mid-wave. Fade every cut

NoDAW Labs · Lacquer Vol. 06

An edit clicks when the waveform jumps instantly from one value to another, which happens whenever you cut or splice in the middle of a cycle instead of at silence. That jump is a burst of high-frequency energy. A short fade on every cut, or a crossfade on every splice, around 5 ms, smooths the jump out and the click disappears.

You comp the best vocal take out of six, chop a sample into a new pattern, or trim the tail off an 808, and it all looks fine on the screen. Then on headphones there’s a tiny tick right where the edit is. Sometimes you only hear it after mastering, when the limiter and a brighter top end pull it forward.

It isn’t the plugin and it isn’t your interface. It’s the edit.

Why a cut clicks

Audio is a wave moving up and down around zero. If you stop it when it’s at zero, nothing happens. If you stop it at the top of a cycle, the next sample is zero and the speaker cone has to snap back instantly. That instant jump isn’t a low note anymore, it’s a broadband spike, and your ears hear it as a click.

Splices do the same thing. Two takes of the same note are almost never at the same point in their cycle at the edit, so the waveform jumps from where take one was to where take two is. Low, sustained sounds give it away first: 808s, bass, pads, held vowels. Drums usually hide it, because a hit is already a jump.

We made four edits and measured them

A synthetic 48 kHz file: one long 55 Hz note at −6 dBFS, about where a sustained 808 or bass would sit. We stopped it mid-wave once with no fade and once with a 5 ms fade-out, and spliced it to a second take a quarter-cycle off once with no fade and once with a 5 ms crossfade. A clean 55 Hz note has almost nothing above 2 kHz, so anything up there near an edit is the click:

EditLoudest content above 2 kHz near the edit
Stop mid-wave, no fade−13.3 dBFS
Same stop, 5 ms fade-out−82.9 dBFS
Splice to the other take, no fade−8.9 dBFS
Same splice, 5 ms crossfade−78.4 dBFS

The unfaded edits throw a burst only a few dB under the note itself, in a range where the note has nothing. Five milliseconds of fade drops that by about 70 dB, which puts it well below anything you’ll hear. Five milliseconds is also short enough that nobody notices the fade.

Fade lengths that work

Snapping to zero crossings helps, and most DAWs can do it, but it isn’t enough on its own. A zero crossing on one side of a splice can still meet the other take going in the opposite direction, and in stereo the left and right channels rarely cross zero at the same moment. A fade fixes both.

Find the ones you missed

After a long comp it’s easy to lose track of an edit. This scans a bounce for sudden changes in the waveform’s slope that stand far above the audio around them, which is what an unfaded edit looks like:

#!/usr/bin/env python3
"""Flag edit clicks: sudden jumps in the waveform's slope that a fade would have smoothed.
usage: python3 find_clicks.py file.wav [threshold_dB]      (pip install numpy soundfile)"""
import sys
import numpy as np, soundfile as sf
x, sr = sf.read(sys.argv[1], always_2d=True)
x = x.mean(axis=1)
thr = float(sys.argv[2]) if len(sys.argv) > 2 else 20.0
d2 = np.abs(np.diff(x, 2))                                  # second difference: ~0 on smooth audio, a spike at a discontinuity
win = int(0.05 * sr)
local = np.sqrt(np.convolve(d2**2, np.ones(win) / win, mode="same")) + 1e-12
ratio = 20 * np.log10(d2 / local + 1e-12)
hits, last = [], -sr
for i in np.flatnonzero(ratio > thr):
    if i - last > int(0.02 * sr):                           # one report per 20 ms
        hits.append(i); last = i
print(f"{sys.argv[1]}: {len(hits)} likely click(s) above {thr:g} dB")
for i in hits:
    print(f"  {i / sr:8.3f} s   spike {ratio[i]:4.1f} dB above the surrounding audio")
$ python3 find_clicks.py comp.wav
comp.wav: 2 likely click(s) above 20 dB
     1.512 s   spike 30.8 dB above the surrounding audio
     3.507 s   spike 30.8 dB above the surrounding audio

It found the two raw edits and ignored both faded ones. It’s a rough tool, not a mastering-grade declicker: sharp drum hits and some synths can trip it too, so treat every hit as a place to listen, and raise the threshold if a busy track flags too much. On a vocal, bass or pad stem it’s quick and honest.

Where edit clicks hide

  1. Vocal comps. Every take boundary is a splice. Crossfade all of them, then solo the vocal and listen at the edits.
  2. Trimmed tails. Cutting the end of an 808 or a reverb tail without a fade-out leaves a click on the last sample.
  3. Loops and chops. A loop that doesn’t start and end at the same point in the cycle clicks every time it repeats.
  4. Bounce starts and ends. A file that starts mid-note or gets cut before the tail finishes clicks at the very edge. Leave a short fade on both ends of the master.
  5. Stems you split yourself. When you chop a vocal or a bass line out of a separated stem, the chops need the same fades as anything else. If you pull stems with StemSplit, cut on the stem, fade, then sample.

Why mastering makes them louder

A click is mostly high-frequency energy, and mastering usually adds some top end and brings everything up toward the limiter. Both pull a tick that was barely there in the mix right to the front. Clicks also sit in the same band as harsh esses after mastering, for the same reason. Fix them in the edit, before the bounce, where it takes two seconds.

Why do my audio edits click?
The cut or splice lands in the middle of a waveform cycle, so the signal jumps instantly between two values. That jump is a burst of high-frequency energy you hear as a click or pop.
How long should a crossfade be to remove clicks?
Around 5 ms works for most cuts. Use 1 to 2 ms on drum hits so the transient survives, around 10 ms on low notes, and 10 to 30 ms inside a sustained vowel when comping vocals.
Is cutting at zero crossings enough?
Not always. A splice can meet the other take moving in the opposite direction, and stereo channels rarely cross zero together. A short fade fixes both cases.
How much does a 5 ms fade help?
In our test on a −6 dBFS 55 Hz note, the content above 2 kHz at an unfaded stop peaked at −13.3 dBFS. With a 5 ms fade-out it dropped to −82.9 dBFS, roughly 70 dB lower.

A free one-pager

The checklist we run before every release.

Loudness, true peak, mono, tails, export settings and the metadata basics, on one page. Leave your email and it opens straight away, or read it here first. No email needed for that.