Nodes/IAMCCS-nodes/IAMCCS Timeline Audio Mixer
ComfyUI Node

IAMCCS Timeline Audio Mixer

Place dialogue lines on the shotboard timeline and mix in foley

By IAMCCS·Created 11 months ago·Updated 7 days ago· 113
IAMCCS Timeline Audio Mixer
  • cine_linx
  • line_1_audio
  • line_2_audio
  • line_3_audio
  • line_4_audio
  • foley_audio
  • final_audio
  • dialogue_only
  • report
target_sample_rate48000
dialogue_gain_db0.0
foley_gain_db-9.0
normalize_peaktrue

Generating a scene that sounds right usually means generating dialogue, foley, and ambience separately and then gluing them together in an editor. Timeline Audio Mixer pulls part of that into the graph: it takes up to four dialogue line audios, places them on the shotboard timeline at their scheduled times, and mixes them with a foley track into one final audio output. The docstring: "Place up to four dialogue line audios on the BoardMaker timeline and mix foley." It's the audio side of the shotboard family, and it plays nice with the pack's dialogue-planning nodes.

How it works. It reads the cine_linx plan to know where each dialogue line sits on the timeline, then places line_1_audio through line_4_audio accordingly. foley_audio is the ambience/sound-effects bed under it all. Everything is resampled to target_sample_rate (48 kHz default), gain-adjusted per bus, optionally peak-normalized, and mixed down.

The inputs that matter:

  • cine_linx - the plan that carries the line placement and timing.
  • target_sample_rate - 48000 Hz default (range 8000–192000). Feed it what your video/audio pipeline expects so nothing gets resampled downstream in a surprising way.
  • dialogue_gain_db (default 0, −60 to +24) - the dialogue bus level.
  • foley_gain_db (default −9) - note the author's default: foley sits 9 dB under the dialogue. That's a sane starting point for "dialogue is the star, ambience is the bed."
  • normalize_peak (default on) - push the final mix up to full scale so you're not clipping or wasting headroom.

The outputs. final_audio (the full mix), dialogue_only (just the dialogue bus, genuinely handy if you want to check the lines in isolation or feed a separate processing chain), and report (JSON describing what was placed and mixed). Wire final_audio into your save/video-combine or back into an LTX audio path.

Where it fits. After your audio-generation nodes (LTX-2.3 speech, TTS, or foley generators) and before the final video/audio combine. The audio inputs are optional - a node with only line_1_audio connected still works, and it's fine to start with just foley.

Install. Pack-wide: ComfyUI Manager (search "IAMCCS"), or git clone https://github.com/IAMCCS/IAMCCS-nodes into custom_nodes, restart. The audio DSP runs on numpy/torch - no extra pip packages, but if you're feeding it audio from elsewhere, that elsewhere needs to produce AUDIO tensors.

Gotchas. The cine_linx drives the placement, so if the plan's line timing is wrong, the mix inherits the error - fix the timeline, not the mixer. And mind the sample-rate default: if your source clips are 44.1 kHz and you leave the target at 48 kHz, you get resampling (fine), but if your downstream expects 44.1, the mismatch will surface as pitch/timing drift in the final file. Also, the dialogue_only output is before normalization in some paths - don't be surprised if it's quieter than the mix; that's expected when foley is the only thing subtracted.

CategoryIAMCCS/Cine/Audio

Inputs (10)

NameTypeDefaultDescription
cine_linxIAMCCS_SUPERNODE_LINX
target_sample_rateINT480008000–192000
dialogue_gain_dbFLOAT0.0-60–24
foley_gain_dbFLOAT-9.0-60–24
normalize_peakBOOLEANtrue
line_1_audiooptAUDIO
line_2_audiooptAUDIO
line_3_audiooptAUDIO
line_4_audiooptAUDIO
foley_audiooptAUDIO

Outputs (3)

NameTypeDescription
final_audioAUDIO
dialogue_onlyAUDIO
reportSTRING