Cutting and Joining Audio Without a Click at the Join
Published 7/9/2026 · 18 min read · File tools
Daniel Okonkwo — Front-end developer and tech writer at OneKitly
Web performance · File formats
Checked against 5 sources
A click at an edit point is not a defect, it is arithmetic. Audio is a list of numbers; at 44.1 kHz there are 44 100 of them every second and each one lasts 22.68 microseconds. Cut in the middle of a waveform and the last number before the cut may be near full scale while the first number after it is zero, so the speaker cone is asked to travel the entire distance in a single sample. A jump that fast is not a pitch, it is a step — and a step carries energy at every frequency at once, which is precisely what a click is. Measured on a 440 Hz tone at 44.1 kHz, a cut placed at the top of the wave leaves broadband energy above 5 kHz sitting about 29 dB below the tone itself; the same cut moved onto a zero crossing drops that to about 54 dB down, and a five-millisecond linear fade into the cut drops it to about 76 dB down — some 47 dB, a factor of more than two hundred in amplitude, quieter than the hard cut. Five milliseconds is 220 or 221 samples at 44.1 kHz and exactly 240 at 48 kHz: far too short for anyone to hear the level move, far more than enough to erase the step. OneKitly's Trim Audio cuts at exact sample boundaries and applies no fade of its own, from the floor of start × rate to the ceiling of end × rate, so the boundary you choose is the boundary you get. Choose it in a gap between words and there is nothing left to step away from. Choose it mid-syllable and you will hear it.
That tick at the edit point is not a flaw in the software. It is a step in the waveform, and a step is broadband energy — which is the definition of a click. Here is the arithmetic, measured, and the two places you can put a cut so it never happens.
A click is a step, and a step is every frequency at once
A digital audio file is not a wave. It is a list of numbers, each one describing where the loudspeaker cone should be at one instant. At 44.1 kHz — the rate of a CD, and of most of what comes off a phone or out of a recorder — there are 44 100 of those instants every second, so each number governs 22.68 microseconds of the world. A file at 48 kHz, which is what video and most modern hardware use, gives each number 20.83 microseconds.
Cutting is deleting numbers. If you delete everything after a certain point, whatever number happened to be sitting at that point becomes the last thing the speaker is told to do, and then it is told to sit at rest. Should that last number be near the top of the wave, the cone is being asked to travel from one extreme to the middle in 22.68 microseconds. Nothing in the recording moved that fast; nothing in nature does. The ear does not hear it as a note, because a note is periodic and this is a single event. It hears a tick.
The reason a tick is broadband rather than high-pitched is worth a sentence, because it explains why no filter fixes it cleanly. A perfectly smooth tone occupies one frequency. A step occupies all of them: the sharper the corner, the wider the spread. That is not a metaphor, it is measurable. Take a 440 Hz tone at 44.1 kHz, cut it at the crest of the wave, and the energy above 5 kHz — where a 440 Hz tone has essentially nothing to say — arrives at about 29 dB below the tone. Cut the identical tone where it crosses zero instead and that same band drops to roughly 54 dB down. Nothing else changed. The only difference is the size of the step.
The two places a cut can be clean
The first is silence, and it is by far the more useful of the two. If the sample either side of the cut is already close to zero, there is no step to make. This is why speech edits are easy and music edits are hard: speech is mostly gaps. Between two words there are typically tens of milliseconds where the signal is only room tone, and any sample in that stretch will do. Trim Audio gives you a plain time field rather than a waveform, so the practical technique is to listen, note the second, and then nudge in hundredths — a hundredth of a second at 44.1 kHz contains 441 candidate positions, which is more than enough to find a quiet one.
The second is a zero crossing — the instant the waveform passes through the middle on its way from positive to negative or back. Cut there and the step is by definition zero, which is why editors offer a snap-to-zero-crossing command at all. The measurement above says it is worth about 25 dB, a factor of roughly eighteen in amplitude. That is a large improvement and it is not a cure. What a zero crossing removes is the jump in position; what it leaves behind is the jump in slope, because the wave was travelling in some direction at speed and after the cut it is not travelling at all. The ear hears the residue as a softer thump rather than a sharp tick.
There is also a limit that nobody mentions until it bites: a stereo file has two waveforms, and they almost never cross zero at the same sample. Audacity's own manual states it plainly — in stereo tracks the zero crossing points may occur at different places in the left and right channels, so there may still be a click in one channel. A zero crossing is a property of one channel, not of a moment in time. Silence, by contrast, is a property of the moment, which is the second reason to prefer it.
What this tool actually does at the boundary
Nothing. That is the honest answer and it is worth being explicit about, because most of the software people compare this to does apply a short fade without saying so. Trim Audio takes your start time, multiplies it by the sample rate and rounds down; takes your end time, multiplies and rounds up; and copies the numbers between those two indices straight into a new file. There is no fade, no crossfade, no zero-crossing search and no silence detection anywhere in it. The boundary you name is the boundary you get, to the sample.
This is a defensible design for a browser tool with no waveform display: a fade you cannot see is a fade you cannot control, and a tool that quietly softened the first five milliseconds of every clip would ruin the one job people most often want it for, which is grabbing a precise musical phrase. But it does mean the responsibility for the boundary is yours, and it means the reason your last clip ticked is knowable rather than mysterious. It ticked because there was a number there.
One consequence worth knowing in advance: the clip may not come back at the sample rate you put in. Decoding happens through the browser's Web Audio engine, and the specification says the decoder resamples the audio to the rate of the audio context if the two differ. The context takes the rate of your output device, which on most current hardware is 48 kHz. So a 44.1 kHz podcast episode trimmed on such a machine comes out as a 48 kHz WAV, resampled by the browser. The audio is intact; the number in the file header simply is not the one you started with.
Joining: two files that were never meant to meet
Joining raises a problem cutting does not. Two recordings can disagree about the sample rate and about the number of channels, and neither disagreement can survive into a single file — a WAV header holds one rate and one channel count for the whole thing. Merge Audio resolves this by taking the highest rate among the files and the highest channel count, then converting everything that does not already match through an offline render, which is the browser's own high-quality resampler and up-mixer. A mono voice memo joined to a stereo recording is therefore up-mixed to two channels; a 22.05 kHz phone clip joined to a 48 kHz interview is resampled up.
Resampling upward invents no detail — a 22.05 kHz recording contains nothing above 11 kHz and will not after conversion — but it does make the files compatible, which is the point. Up-mixing mono to stereo copies the one channel into both, so the result is stereo-shaped without being stereo-sounding: the voice sits dead centre while the material either side of it has width. That contrast at the seam is often mistaken for a click, and it is not one. It is a change of image, and no fade will hide it.
The seam itself is a butt join: the last sample of one file is followed immediately by the first sample of the next, with nothing inserted and nothing overlapped. Everything said above about a single cut applies to it twice over, because now there are two arbitrary numbers meeting. The practical consequence is that the work belongs upstream. Trim each piece so it already begins and ends in silence, and the join is silent by construction. Feed the merger two clips that were cut anywhere at all, and you will hear the place where they meet.
Lossy files get decoded, edited and re-encoded — and that moves the seam
An MP3 is not a list of samples. It is a list of frames, each one describing a block of 1 152 samples in the frequency domain — 26.12 milliseconds at 44.1 kHz, 24.00 at 48 kHz. Nothing in the format lets you cut inside a frame, so any editor that works on samples has to decode the whole thing first, and any editor that hands you an MP3 back has to encode it again. That second encoding is a second generation of loss, applied to material that has already been through one.
There is a subtler consequence, and it is the reason gapless playback took a decade to work. Encoders add silence at the start of the stream because the transform they use needs a run-up, and the amount is not recorded anywhere the standard defines. Hydrogenaudio's reference table puts the LAME delay at 576 samples — 13.06 milliseconds at 44.1 kHz — and notes that MP3 provides no standard way to record delay or padding for later removal. So an MP3 you cut and re-encode does not line up with the original by a fraction of a frame; it lines up with it offset by a delay that different encoders choose differently.
This site's audio tools sidestep the whole question by giving you back a WAV. There is no re-encoding, so there is no generation loss and no encoder delay to reason about — the samples that came out of the decoder are the samples in your file. It costs size, and that trade is discussed below, but for editing it is the right way round: keep the intermediate uncompressed, compress once at the end, and never compress something twice if you can help it.
Why the clip is a WAV, and what that costs
The file you get back is 16-bit linear PCM with a 44-byte header. At 44.1 kHz in stereo that is 176 400 bytes every second, or 1 411 kbit/s — a minute weighs 10.09 MiB and three minutes weigh 30.3 MiB. Against a 128 kbit/s MP3 the WAV is about eleven times larger; against 320 kbit/s, about four and a half times. Mono halves all of it: 88 200 bytes a second, 706 kbit/s, 5.05 MiB a minute, which is why a voice memo trimmed here is far smaller than people expect from the word uncompressed.
If you need the clip small, the right order is trim first and convert last. Convert the WAV to MP3, M4A or OGG once, at the end, with the Audio Converter — that way the compression happens exactly once, on the material you actually intend to keep, rather than once on the source and again on the edit. The clip is also, for what it is worth, ready to drop into a video editor or a sampler without either of them having to decode anything, which is why WAV survives as an interchange format despite the size.
| How the cut is made | Energy above 5 kHz | Against a hard cut mid-waveform |
|---|---|---|
| No cut at all (reference) | −166 dB (the numerical floor) | — |
| Hard cut at the crest of the wave | −29 dB | The reference case |
| Hard cut on a zero crossing | −54 dB | 25 dB quieter — about 18× in amplitude |
| 1 ms fade into the cut (44 samples) | −60 dB | 31 dB quieter |
| 3 ms fade into the cut (132 samples) | −71 dB | 42 dB quieter |
| 5 ms fade into the cut (220–221 samples) | −76 dB | 47 dB quieter — over 200× in amplitude |
| 10 ms fade into the cut (441 samples) | −79 dB | 50 dB quieter — only 3 dB better than 5 ms |
Frequently asked questions
- I cut during a silence and I can still hear a click. What went wrong?
- The silence was not silent. What sounds like nothing between two words is usually room tone — the air conditioning, the street, the hiss of the preamp — and it can sit at a few percent of full scale, which is more than enough to make an audible step. Worse, some recordings carry a DC offset: the whole waveform is shifted away from zero, so even the quietest passage has a constant non-zero value, and cutting anywhere produces a step the size of the offset. If the click survives several attempts at moving the boundary, suspect an offset rather than bad luck, and look for a high-pass or a remove-DC-offset function in whatever editor you have. Two other culprits are worth ruling out: the click may be in the source already, in which case trimming just moved your attention to it, and some players insert their own gap between the end of a file and silence, which sounds identical and has nothing to do with your edit.
- So is cutting at a zero crossing enough, or do I need a fade?
- A zero crossing is worth about 25 dB and a five-millisecond fade is worth about 47 dB, both measured against the same hard cut. For speech, a zero crossing in a quiet moment is usually inaudible and entirely sufficient. For a sustained loud note, a bass line or anything with a strong low-frequency component, it often is not: at low frequencies the waveform is moving fast through zero even though it is at zero, and that jump in slope is what you go on hearing. The fade wins because it does not care where in the cycle you are. It also has a floor: beyond five milliseconds you buy very little — ten gains only 3 dB more — while you start losing the attack of whatever follows. Five milliseconds is the value most editors default to for exactly this reason.
- Why is my clip a WAV that is ten times bigger than the MP3 I put in?
- Because handing you an MP3 back would mean encoding it a second time. Editing samples requires decoding first, and re-encoding the result compresses material that has already been compressed once — a second generation of loss on top of the first, applied every time you touch the file. Writing an uncompressed WAV instead means the samples in your clip are exactly the samples the decoder produced, and nothing you do afterwards inherits a mistake made here. The size is the honest price: 1 411 kbit/s for 44.1 kHz stereo against 128 to 320 for a typical MP3. The fix is to compress once, at the very end, with the Audio Converter — not to compress at every step.
- My source is 44.1 kHz but the clip came out at 48 kHz. Is something broken?
- Nothing is broken. Decoding runs through the browser's Web Audio engine, and the Web Audio specification states that the decoder resamples the audio to the sample rate of the audio context whenever the two differ. The context adopts the rate of your sound output, which on most current machines is 48 kHz, so a 44.1 kHz source is converted on the way in and the WAV is written at the rate that came out. The conversion is done by the browser's own resampler and is transparent for any normal listening purpose. If you specifically need to preserve 44.1 kHz — for a CD master, or to avoid an extra conversion in a chain you do not control — do the trim on a machine or an output device running at 44.1 kHz, or convert the clip back afterwards and accept that you have then resampled twice.
- Can I join a mono voice memo to a stereo recording?
- Yes, and the merger handles it without asking: it takes the highest channel count among your files and converts the others up, so a mono file becomes two identical channels and the output is stereo throughout. The audio is not damaged. What changes is the stereo image — the mono section sits precisely in the centre with no width at all, while the stereo material around it spreads across the field, and the transition between the two is audible as a sudden narrowing. If that bothers you, the fix is not in the merger. Either convert the whole assembly to mono so everything matches, or re-record the missing section, or accept it, which for a podcast or a set of voice notes is what most people sensibly do. Do the same check on sample rates: joining a 22.05 kHz phone recording to a 48 kHz interview works, but the phone section will still sound like a phone, because upsampling adds no detail that was never captured.
Articles you may find interesting
All guides →Related tools
Behaviour described here for this site's own tools was read out of their source on 13 August 2026 and measured against the libraries they ship. Spreadsheet behaviour depends on the version, the build and the regional settings of the machine in front of you — Microsoft has changed several of these defaults, so check yours rather than trusting any article, including this one.
Sources
- W3C — Web Audio API — decodeAudioData resamples the decoded audio to the sample rate of the BaseAudioContext when the two differ
- MDN Web Docs — BaseAudioContext.decodeAudioData() — decoding an audio file to an AudioBuffer in the browser
- Audacity Manual — Select: At Zero Crossings — matching heights avoids clicks, and zero crossings differ between the left and right channels of a stereo track
- Hydrogenaudio Knowledgebase — Gapless playback — encoder delay and padding, the 576-sample LAME delay, and MP3's lack of a standard way to record them
- MDN Web Docs — OfflineAudioContext — the offline render used to match sample rates and channel counts before joining
Spotted a mistake in this article?