CoProducer Measure a mix
Two identical brass condenser microphones facing each other on gold-veined black marble, a single gold vocal waveform of light stretched between them, studio monitors glowing cyan and magenta behind.

Vocals · 30 October 2026 · 7 min

Copy-pasted vocal double sounds mono? Sing a real second take

NoDAW Labs · Lacquer Vol. 06

If you duplicate a vocal, pan the copies hard left and right, and it still sounds like one voice in the middle, that’s because it is one voice. An identical copy has a stereo correlation of 1.00, which is mono, just 6 dB louder. Nudging the copy a couple of milliseconds doesn’t fix it. It makes a comb filter that hollows the tone and partly cancels in mono. A double sounds wide because it’s a different performance, so the real fix is to sing it again.

It’s one of the first tricks everybody tries. The hook needs to be bigger, so you duplicate the vocal track, pan one left and one right, and wait for it to open up. It doesn’t. It just gets louder, and somehow it’s still sitting dead center.

Then you try the next trick: slide the copy a little late. Now it sounds wider in headphones, but kind of phasey, like the vocal is coming through a tube. Collapse the mix to mono and it goes thin.

Neither of those is you doing it wrong. That’s what copies do.

What makes a double sound like two people

When you hear a real double, your ears are picking up the small differences between two performances. The timing drifts a few milliseconds back and forth, the pitch wobbles a little differently, the vibrato doesn’t line up, the breaths land in slightly different places. Those differences are what your brain reads as width. A copy has none of them. Panning two identical signals to opposite sides puts exactly the same thing in both ears, and that’s just a centered sound.

To put numbers on it, we wrote double_check.py. It builds a six-second synthetic sung line, a harmonic tone with vibrato, a simple melody and a bit of breath noise. Then it makes a second part five different ways and pans the pair hard left and right. For each one it reports three things. Correlation runs from 1 (the two sides are identical, so it’s mono) down to 0 (unrelated). Mono sum is how much louder the pair gets when you fold it to mono, compared with one part alone. Band spread is the gap between the most boosted and most cut 1/3-octave band in the mono sum, which is how you spot comb filtering.

#!/usr/bin/env python3
"""Why a copy-pasted vocal double doesn't sound like a double.
  python3 double_check.py
Builds a 6 s synthetic sung line (a 220 Hz harmonic tone with vibrato, a slow melody and breath noise), then
makes a second part five ways and pans the two hard left and right. Reports stereo correlation (1 = mono,
0 = unrelated), how much louder the pair gets when summed to mono versus one part alone, and the
spread of the mono sum across 1/3-octave bands 200 Hz-8 kHz compared with one part (comb-filter damage)."""
import numpy as np

SR = 48000; N = SR * 6; t = np.arange(N) / SR
def sing(seed, drift_ms=0.0, cents=0.0):
    rng = np.random.default_rng(seed)
    wander = np.cumsum(rng.standard_normal(N)); wander = wander / np.abs(wander).max()
    shift = drift_ms / 1000 * wander if drift_ms else 0          # timing that wanders like a real retake
    tt = t + shift
    vib = (rng.uniform(4.8, 5.8) if seed else 5.3)
    f0 = 220 * 2 ** ((cents + 25 * np.sin(2 * np.pi * vib * tt + seed) + 200 * (np.floor(tt / 1.5) % 2)) / 1200)
    ph = 2 * np.pi * np.cumsum(f0) / SR
    x = sum(np.sin(k * ph) / k ** 1.2 for k in range(1, 30))
    return x + 0.05 * rng.standard_normal(N)

def bands(x):
    X = np.abs(np.fft.rfft(x)) ** 2; f = np.fft.rfftfreq(len(x), 1 / SR)
    edges = 200 * 2 ** (np.arange(0, 16) / 3)
    return np.array([X[(f >= a) & (f < b)].sum() for a, b in zip(edges[:-1], edges[1:])])

def row(name, a, b):
    corr = np.corrcoef(a, b)[0, 1]; m = a + b
    gain = 10 * np.log10(np.mean(m ** 2) / np.mean(a ** 2))
    diff = 10 * np.log10(bands(m) / bands(a)); spread = diff.max() - diff.min()
    print(f"{name:<36}{corr:>7.2f}{gain:>11.1f} dB{spread:>13.1f} dB")

lead = sing(0)
shift = lambda x, ms: np.concatenate([np.zeros(int(SR * ms / 1000)), x])[:N]
print(f"{'second part, panned opposite the lead':<36}{'corr':>7}{'mono sum':>14}{'band spread':>16}")
row("identical copy", lead, lead.copy())
row("copy nudged 2 ms", lead, shift(lead, 2))
row("copy nudged 12 ms", lead, shift(lead, 12))
row("copy +8 cents, nudged 12 ms", lead, shift(sing(0, cents=8), 12))
row("new take (own timing, vibrato)", lead, sing(3, drift_ms=25, cents=4))
$ python3 double_check.py
second part, panned opposite the lead   corr      mono sum     band spread
identical copy                         1.00        6.0 dB          0.0 dB
copy nudged 2 ms                      -0.61       -1.0 dB         32.9 dB
copy nudged 12 ms                      0.20        3.8 dB          3.6 dB
copy +8 cents, nudged 12 ms            0.03        3.1 dB          1.0 dB
new take (own timing, vibrato)        -0.02        2.9 dB          0.9 dB

Reading the table

The identical copy has a correlation of 1.00 and sums 6.0 dB louder in mono with no change to the tone. That’s two copies of the same thing adding up perfectly. In stereo it sounds exactly like turning one centered vocal up 6 dB. Same thing in why panned parts change level, just with the panning cancelled out.

The 2 ms nudge is the one that fools people. Correlation goes to −0.61, so a correlation meter tells you it’s very wide. But the mono sum is 1.0 dB quieter than one part on its own, and the band spread is 32.9 dB. Some frequencies add up and others cancel almost completely. That’s the tube sound. On a phone or a club system that sums to mono, the hook gets smaller instead of bigger. If you’ve seen this before, it’s the same thing that goes wrong in wide mixes that fail in mono.

The 12 ms nudge is better, because the comb teeth are packed closer together and spread out across the spectrum. Correlation is 0.20 and the spread is down to 3.6 dB. It still sounds like an echo more than a second singer, because the timing gap never changes.

A copy detuned 8 cents and nudged 12 ms gets close: correlation 0.03, spread 1.0 dB. This is roughly what doubler plugins and the old tape ADT trick do. It’s a fair fake for a background part.

The new take, with its own timing drift and vibrato, lands at −0.02 correlation, sums 2.9 dB louder in mono and has a 0.9 dB spread. That 2.9 dB is about what two unrelated sounds add up to, close to 3 dB, and the tone barely moves. It’s wide in stereo and holds up in mono.

These are synthetic voices, so take the exact numbers as a model, not a measurement of your song. The pattern holds on real vocals, though. You can check your own with a correlation meter and the mono button, which phase correlation is a mono audition walks through.

How to get a real double

  1. Sing it again. Same part, same mic, same distance. Don’t try to copy the first take exactly. Small differences are the point. If it’s your own song, two or three passes of the hook usually take ten minutes.
  2. Tighten the edges, not the middle. Line up the starts of phrases and the hard consonants, especially T’s, K’s and S’s, so the double doesn’t flam. Leave the vowels and vibrato alone.
  3. Tuck it under. Doubles usually sit a few dB below the lead, or the pair sits under a center lead for a hook. How loud the vocal should sit covers measuring that against the beat.
  4. Can’t re-record? Fake it properly. Detune a few cents and delay 10 to 20 ms, or use a doubler that varies the delay over time. Keep it under 5 ms and you’re back in comb-filter land.
  5. Check mono before you bounce. If the hook gets smaller or hollow in mono, the double is too close to a copy.

Watch out for latency too. A plugin on one copy that delays it a few milliseconds turns a perfect copy into the 2 ms row without you touching anything. That’s the same problem as parallel compression sounding thin.

Hear how the records do it

A good way to learn how loud and how wide doubles should be is to listen to them on their own in a song you like. Split the track with something like NoDAW StemSplit and solo the vocal stem. You’ll usually hear the lead, the doubles and the ad-libs all at once, and you can tell how far back the doubles sit and how loose the timing really is. It’s almost always looser than people expect. If you end up sampling from those stems, chop around the bleed first.

Why does my duplicated vocal still sound mono when panned?
Because an identical copy panned left and right puts the same signal in both ears, which is a centered sound. In our test the correlation was 1.00 and the pair was just 6.0 dB louder.
Can I delay a copy to make a fake double?
A short delay of a few ms makes a comb filter. In our test a 2 ms nudge cut some frequencies almost completely (32.9 dB spread) and made the pair 1.0 dB quieter in mono. Detuning a few cents and delaying 10 to 20 ms works much better.
How loud should a vocal double be?
Usually a few dB under the lead. Line up the starts and consonants and leave the rest loose.
How do I check if my vocal double works in mono?
Hit the mono button or watch a correlation meter. A good double sums about 3 dB louder in mono with no change in tone. If the hook gets quieter or hollow, it’s too close to a copy.

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.