ComfyUI Node

Join Audio

Splice a whole list of clips, silence gaps included

By lebrosoft·Created about a year ago·Updated about a year ago· 2
Join Audio
  • audios
  • audio
silent_interval0.000

JoinAudio is ConcatAudio's bigger sibling. Where ConcatAudio stitches exactly two clips together, this one takes a whole list of AUDIO tracks and joins them all into a single track, with an optional silence gap inserted between each pair. It's the node you reach for when you're assembling something from many parts - a batch of generated sound effects, several narration takes, a chain of dialogue clips - and you want one file at the end. It lives in lebrosoft/ComfyUI-VideoChatWrapper, a small pack whose audio utilities are a genuinely useful general-purpose toolkit grafted onto a video-chat project.

How it works

The key thing to understand is that the audios input is a list input. In ComfyUI terms, the node is declared with INPUT_IS_LIST = True, so it accepts multiple AUDIO tracks wired in as a batch. Under the hood it takes whatever list arrives, checks it's not empty, and concatenates every waveform along the time axis.

The silent_interval input (in seconds, float) inserts a gap of silence between every consecutive pair - and only between them. The code appends a gap after each clip and then pops the trailing one, so there's no accidental silence tacked onto the end. If you set it to 0.5, you get a clean half-second breather between every segment.

The inputs that matter

  • audios - the list of AUDIO tracks to join, in playback order.
  • silent_interval - seconds of silence between each track. Default 0, which gives you a butt-splice with no gap.

Output is a single audio track.

Where people get burned

Same two walls as ConcatAudio, just harder to dodge because you've got more inputs to keep consistent:

  • Mismatched sample rates. The node refuses with sample_rate must be the same. You cannot join a 44.1 kHz clip and a 48 kHz clip until you resample - that's what the pack's ResampleAudio node is for.
  • Mixed channel layouts. It insists all tracks are stereo or all mono, else: All audio must be either stereo or monaural. ConvertAudioChannels sorts that out.

So the workflow shape is familiar to anyone who's used this pack: normalize everything first (resample + channel convert), then join. Do it once, wire up a clean template, and the batch assembling becomes trivial.

Installing it

Via ComfyUI Manager, search for ComfyUI-VideoChatWrapper, or by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/lebrosoft/ComfyUI-VideoChatWrapper

Restart ComfyUI and you're done. The audio nodes need torchaudio (included with the portable install; pip install torchaudio if your environment lacks it), and the pack's requirements.txt only lists qwen_vl_utils, which is for the video-chat side - you won't be pulling down any model weights to splice audio.

A straight talk note: this is a low-profile pack with essentially no community footprint, so don't expect tutorials or issue threads to hold your hand. But the code is small, readable, and stable. For batch-joining audio in a graph, it's one of the simplest options that exists.

Categoryjida/audio

Inputs (2)

NameTypeDefaultDescription
audiosAUDIO
silent_intervalFLOAT0.000

Outputs (1)

NameTypeDescription
audioAUDIO