Nodes/ComfyTV/Audio Modulation
ComfyUI Node

Audio Modulation

Phaser, flanger, chorus, and friends — Audio Modulation is the guitar pedal rack

By jtydhr88·Created 3 months ago·Updated about 16 hours ago· 725
Audio Modulation
  • audio
  • video
  • audio
  • fx_spec
force_run_token0
project_id
parent_output_id0
modephaser
ph_delay3.00
ph_decay0.40
ph_speed0.50
ph_typetriangular
fl_delay0.00
fl_depth2.00
fl_regen0
fl_width71
fl_speed0.50
fl_shapesinusoidal
fl_phase25
chorus_presetsingle
lfo_f5.00
lfo_d0.50
pu_hz2.00
pu_amount1.00
pu_width1.00
pu_modesine

Want your generated music to stop sounding like a dry export and start sounding processed? Audio Modulation is the stage you grab. It's a one-node guitar-pedal rack with six effects - phaser, flanger, chorus, vibrato, tremolo, and pulsator - selected via the mode combo. There's no AI anywhere in here; it's real DSP running on an FFmpeg filter graph, so it's instant, deterministic, and you can stack a whole pedalboard of them without worrying about VRAM.

The honest read: it's not six separate effects, it's six dial sets sharing one node, and only the dials for your chosen mode apply. The ph_ params drive the phaser (delay 0–5ms, decay, LFO speed, triangular vs sinusoidal sweep), the fl_ params drive the flanger (delay, depth, regeneration, width, speed, phase), and chorus_preset swaps between single, double, and triple chorus thickness. Vibrato and tremolo just take an LFO frequency and depth (lfo_f, lfo_d), and pulsator is the trance-gate rhythm effect with rate (pu_hz), pu_amount, pu_width, and an LFO waveform (pu_mode). Set the mode, touch the dials for that mode, leave the rest alone - they're inert when not selected.

Mechanically, each mode maps to a stock FFmpeg filter: aphaser, flanger, chorus, vibrato, tremolo, apulsator. The node builds the filter spec from your widgets and runs it through PyAV. That's why it's fast and why it has no model files. A nice side effect: the stage also emits an fx_spec output alongside audio - that's the metadata ComfyTV's FX Chain uses to stack this effect with others and render them in a single pass. If you're chaining five modulation stages, wire their fx_specs together instead of running five separate renders.

Like every AudioFX stage, the input is audio or video - drop a clip in and it processes the clip's audio track. The three hidden inputs (force_run_token, project_id, parent_output_id) are ComfyTV's per-node Run plumbing; don't touch them.

Where people get burned: the flanger's fl_regen goes negative-to-positive (−95 to +95) and positive values push into self-oscillation territory, which can blow past 0 dB and clip hard. If your output suddenly sounds like a howling modem, check your peak levels after a flanger with high regen, and don't forget that this node outputs raw processed audio - there's no limiter riding shotgun. Keep the phase, start subtle.

Install is the pack-wide story - ComfyUI Manager search "ComfyTV", or git clone https://github.com/jtydhr88/ComfyTV into custom_nodes/, then a full backend restart. On Desktop/macOS with multiple ComfyUI installs, clone into the running instance's absolute path. No dependencies beyond what ComfyUI already ships, no models, no GPU needed.

CategoryComfyTV/AudioFX

Inputs (24)

NameTypeDefaultDescription
force_run_tokenINT00–2147483647Internal — bumped on Run to invalidate ComfyUI's input cache.
project_idSTRINGInternal — populated by the projectStore on the frontend.
parent_output_idINT00–2147483647Internal — lineage parent set by spawn handlers on the frontend.
modeCOMBOphaser6 options: phaser, flanger, chorus, vibrato, tremolo, pulsator
ph_delayFLOAT3.000–5
ph_decayFLOAT0.400–0.99
ph_speedFLOAT0.500.1–2
ph_typeCOMBOtriangular2 options: triangular, sinusoidal
fl_delayFLOAT0.000–30
fl_depthFLOAT2.000–10
fl_regenFLOAT0-95–95
fl_widthFLOAT710–100
fl_speedFLOAT0.500.1–10
fl_shapeCOMBOsinusoidal2 options: sinusoidal, triangular
fl_phaseFLOAT250–100
chorus_presetCOMBOsingle3 options: single, double, triple
lfo_fFLOAT5.000.1–20000
lfo_dFLOAT0.500–1
pu_hzFLOAT2.000.01–100
pu_amountFLOAT1.000–1
pu_widthFLOAT1.000–2
pu_modeCOMBOsine5 options: sine, triangle, square, sawup, sawdown
audiooptCOMFYTV_AUDIO
videooptCOMFYTV_VIDEO

Outputs (2)

NameTypeDescription
audioCOMFYTV_AUDIO
fx_specCOMFYTV_FXSPEC