Nodes/TTS Audio Suite/๐Ÿฅช Merge Audio
ComfyUI Node

๐Ÿฅช Merge Audio

Layer voice over music and combine up to four tracks

By diodiogodยทCreated 12 months agoยทUpdated 17 days agoยท 1,098
๐Ÿฅช Merge Audio
  • audio1
  • audio2
  • audio3
  • audio4
  • merged_audio
  • merge_info
โ—„merge_algorithmmeanโ–บ
โ—„sample_rateautoโ–บ
โ—„normalizetrueโ–บ
โ—„crossfade_duration0.10โ–บ
โ—„volume_balance0.50โ–บ
โ—„vocal_pitch_shift0.0โ–บ
โ—„instrumental_pitch_shift0.0โ–บ
โ—„enable_pitch_controlfalseโ–บ

You generated a narration, you generated some ambience, and now you need them in one track. Merge Audio is the little mixing-desk node that does it - combine up to four audio sources into one, with a choice of how they blend. Layer a TTS voice over background music, stack a sound effect under dialogue, or crossfade between two clips. It's not a full DAW, but for finishing a ComfyUI audio graph without exporting to something else, it's exactly enough.

It handles the annoying plumbing too: mismatched sample rates get reconciled automatically, and it normalizes the result so you don't blow past 0 dB and clip.

How it works

You feed it audio and pick a merge_algorithm - the math it uses to combine the sources. The two you'll reach for most are overlay (natural layering - voice on top of music, both audible) and crossfade (smooth transition from one clip into the next). The others (mean, median, max, min, sum, weighted) are for specific jobs: mean for a balanced average, median to knock down outlier noise, weighted when you want to control the balance yourself. For most "voice + music" work, overlay is the answer.

The inputs and outputs that matter

  • audio1 and audio2 - required, the two sources. audio3 and audio4 are optional for stacking more.
  • merge_algorithm - the blend mode. overlay for layering, crossfade for transitions, weighted for a manual mix. This is the main decision.
  • volume_balance (default 0.5) - the balance between sources. Slide it toward one input to make it louder in the mix - the lever for "voice too quiet under the music."
  • normalize (on) - keeps the merged output from clipping. Leave it on unless you have a reason not to.

For transitions, crossfade_duration sets how long the blend lasts. There's also an optional pitch section - enable_pitch_control plus vocal_pitch_shift / instrumental_pitch_shift - for shifting a source up or down in semitones, and sample_rate (default auto) to force an output rate if you need a specific one.

Two outputs: merged_audio (AUDIO) โ†’ your Save/Preview Audio node, and merge_info (text) describing what it did.

Installing it

Comes with the pack. ComfyUI Manager โ†’ search "TTS Audio Suite" โ†’ install โ†’ restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/diodiogod/TTS-Audio-Suite.git
cd TTS-Audio-Suite
python install.py

No model download - it's plain audio DSP, so it's instant once the pack is installed.

Common issues & troubleshooting

The voice is buried under the music. That's volume_balance. Slide it toward the voice input so it sits on top. And make sure you're on overlay, not an averaging mode like mean that pulls everything toward a middle level.

The result sounds crushed or pumping. Normalization is preventing clipping, but if two loud sources sum hot, the normalize pass can squash things. Balance the inputs first (with volume_balance or by trimming a source upstream) rather than relying on normalize to fix a too-hot mix.

A hard cut where I wanted a smooth blend. Use crossfade as the algorithm and give crossfade_duration enough time (it defaults short) so the transition actually fades rather than jumping.

Sample-rate weirdness. It auto-reconciles rates by default, which is usually right. Only set sample_rate manually if a downstream node demands a specific rate - otherwise leave it on auto and let it match.

CategoryTTS Audio Suite/๐ŸŽต Audio Processing

Inputs (12)

NameTypeDefaultDescription
audio1*Primary audio input. Accepts AUDIO format.
audio2*Secondary audio input. Accepts AUDIO format.
merge_algorithmCOMBOmean๐ŸŽš๏ธ AUDIO MERGING ALGORITHMS Choose how to combine multiple audio sources: ๐Ÿ“Š MATHEMATICAL ALGORITHMS: โ€ข MEAN: โญ Average all inputs - smooth, balanced mix (recommended) โ€ข MEDIAN: Reduces outliers and noise - cleaner output, less distortion โ€ข MAX: Takes loudest signal at each point - preserves peaks, can be harsh โ€ข MIN: Takes quietest signal at each point - gentle, subdued mix โ€ข SUM: Simple addition - louder but may clip without normalization ๐ŸŽต CREATIVE ALGORITHMS: โ€ข OVERLAY: Professional layering with gain compensation - natural mixing โ€ข WEIGHTED: Custom balance using volume_balance slider - precise control โ€ข CROSSFADE: Smooth transitions between sources - cinematic blending ๐Ÿ’ก USE CASES: ๐ŸŽค Voice + Music: MEAN or OVERLAY ๐ŸŽผ Multiple instruments: MEDIAN (reduces conflicts) ๐Ÿ”Š Emphasize loudest: MAX ๐ŸŽ›๏ธ Custom balance: WEIGHTED ๐ŸŽฌ Smooth transitions: CROSSFADE ๐Ÿ”ง Precise control: SUM + normalization
audio3opt*Optional third audio input
audio4opt*Optional fourth audio input
sample_rateoptCOMBOautoOutput sample rate - Auto=use highest input rate, Higher=better quality but larger files
normalizeoptBOOLEANtrueNormalize output volume - ON=prevents distortion/clipping, OFF=preserves original levels
crossfade_durationoptFLOAT0.100โ€“2Crossfade blend duration in seconds (for crossfade algorithm) - Low=quick transitions, High=smooth gradual blending
volume_balanceoptFLOAT0.500โ€“1Volume balance between audio1 (0.0) and audio2 (1.0) - ONLY used by 'weighted' algorithm
vocal_pitch_shiftoptFLOAT0.0-24โ€“24Change vocal pitch - Negative=deeper voice (like man), Positive=higher voice (like child), 12=twice as high
instrumental_pitch_shiftoptFLOAT0.0-24โ€“24Change music pitch - Negative=deeper/slower sound, Positive=higher/faster sound, 12=twice as high
enable_pitch_controloptBOOLEANfalseEnable pitch shifting - ON=allows separate pitch control for vocal/instrumental, OFF=no pitch changes

Outputs (2)

NameTypeDescription
merged_audioAUDIOโ€”
merge_infoSTRINGโ€”