Nodes/Comfy Audio Nodes/Merge Audio Channels
ComfyUI Node

Merge Audio Channels

Turn two mono stems into a real stereo track (before you start looking for this node, read the warning)

By dnnagy·Created 3 months ago·Updated 3 months ago· 0
Merge Audio Channels
  • left
  • right
  • audio

MergeAudioChannels takes two mono AUDIO signals and welds them into one stereo track - left channel from one input, right channel from the other. It's the smallest possible version of a job you'll need the moment your workflow goes beyond "one mono clip." And here's the thing nobody warns you about: this pack is abandoned. The README points you to the author's newer comfy-random-toolpack, where the same node lives as CRTP_MergeAudioChannels. The old one still works fine - it's a few lines of tensor math, nothing that can rot - but know you're using the legacy namespace.

The mechanism is genuinely simple, and it's worth understanding because the edge cases are where people get burned. Each ComfyUI AUDIO value is a dict holding a waveform tensor shaped [batch, channels, samples] and a sample_rate. Merge reads both inputs, takes only the first channel of each, pads the shorter one with zeros out to the length of the longer, and concatenates them along the channel axis. Done: [batch, 2, samples], sample rate preserved.

The inputs that matter:

  • left (AUDIO, required) - becomes channel 1 of the output.
  • right (AUDIO, required) - becomes channel 2.
  • audio (AUDIO, output) - the stereo result, ready to feed a VHS encode, an LTX-2 audio path, or whatever's downstream.

Where this shows up in real workflows: audio-to-video stacks like the LTX-2 native audio chain or MMAudio sidecars almost always hand you mono. If you're mixing a TTS voice on the left with a music bed on the right, or building a stereo field from two separately generated mono takes, this is the node. It's also the inverse of the pack's own SplitAudioChannels, so split → process → merge is a tidy loop.

Two failure modes, both grounded in the actual code. First, sample rates must match - the node raises a hard ValueError if left's rate differs from right's. There's no resampling, no sympathy, so check with an AudioProperties node first or resample upstream. Second, length mismatch is handled by silence, not stretching: the shorter clip just gets zero-padded at the tail, which means your merged track is exactly as long as the longer input and the short one fades to digital black. If that's not what you want, trim or loop before merging. And remember that first-channel slice - feed it a stereo file on the "left" jack and its right channel silently vanishes.

Installing: ComfyUI Manager, search "Comfy Audio Nodes," install, restart. Or the manual route:

cd ComfyUI/custom_nodes
git clone https://github.com/dnnagy/comfy-audio-nodes.git

Restart ComfyUI and the node appears under the audio category. No requirements, no model downloads, no torchaudio dependency - it operates on raw tensors, which is why it's so lightweight. For new projects, though, grab comfy-random-toolpack instead; it's the maintained home of this exact code under the CRTP_ names.

Categoryaudio

Inputs (2)

NameTypeDefaultDescription
leftAUDIO
rightAUDIO

Outputs (1)

NameTypeDescription
audioAUDIO