Muse Reverb (FDN)
Algorithmic reverb with all the knobs a hall deserves
- audio
- video
- audio
Dry audio sits "right in your face." Reverb puts it in a room. Muse Reverb is ComfyTV's algorithmic answer - a feedback delay network (FDN) reverb, the same family of algorithm MuseScore uses, which means it synthesizes a dense, natural-sounding tail without needing an impulse response file. You don't download anything, you don't capture your closet, you just turn knobs. (If you want real spaces, the pack also ships Audio Convolve + a room-capture toolchain; this node is the "I need ambience now" option.)
It takes a COMFYTV_AUDIO snapshot - or a COMFYTV_VIDEO, whose audio track it uses - and outputs processed COMFYTV_AUDIO. In the music chain it's the last stop before finished audio: Score → Score Performer → Score Synth → Muse Reverb → done.
The knobs that actually matter
The full schema is intimidating (sixteen reverb parameters), so here's the short version. Reverb physically has three layers - direct sound, early reflections (your instinct for room size), and late reverb (the "how wet" tail) - and this node splits the levels accordingly:
reverb_time_ms- RT60, how long the tail takes to decay 60 dB. Default 2200. Small room 400–800, concert hall 1500–2500, cathedral 4000+.late_db- the main wetness knob. Default -14; up = wetter.room_scale- room size (default 0.8). Bigger = farther, emptier.predelay_ms- gap between dry and first reflection. 30–80 keeps a soloist "up front" while still giving space.dry_db/er_db- direct and early-reflection levels.dry_dbusually stays at 0;er_dbup = a more defined room.time_low/time_high- frequency-dependent decay.time_highbelow 100 (default 60) is the "highs die first" realism knob;time_lowabove 100 warms the low tail but can get muddy.feedback_top- high-frequency damping cutoff in the feedback loop. Lower = darker, more vintage.mod_freq/mod_amp- delay-line modulation. A touch (amp ≈ 0.2) kills metallic ringing; more gives a chorus-like shimmer.stereo_spread- width; 0 = mono reverb. Default 100.quality- number of FDN delay lines, 8 or 16. 16 is denser and smoother; 8 is cheaper.
Three starting points from the pack's own docs: Room (700ms, 0.7 scale, -18 late) for pop backing, Concert hall (2200ms, 1.2, -14) for solo piano, Cathedral (4500ms, 2.5, -10) for choir/ambient. Start there and adjust late_db; don't touch all sixteen on day one.
Install
Pack-wide one-liner:
cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV
Restart ComfyUI - on Desktop/macOS that means cloning into the running instance's custom_nodes by absolute path and verifying __init__.py at the top level; a browser refresh isn't a restart. ComfyUI Manager finds it as "ComfyTV". Zero extra Python dependencies.
The gotcha to remember is ComfyTV's snapshot model: the audio output is a project snapshot, not a native ComfyUI AUDIO tensor. To feed native audio nodes you insert a Bridge. And if you wire in a video, you get its audio track - that's a feature, not a bug, for scoring a clip without demuxing first. One source is required; the node won't reverb nothing.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| force_run_token | INT | 00–2147483647 | Internal — bumped on Run to invalidate ComfyUI's input cache. |
| project_id | STRING | Internal — populated by the projectStore on the frontend. | |
| parent_output_id | INT | 00–2147483647 | Internal — lineage parent set by spawn handlers on the frontend. |
| reverb_time_ms | FLOAT | 2200100–10000 | — |
| room_scale | FLOAT | 0.800.5–4 | — |
| predelay_ms | FLOAT | 100–500 | — |
| dry_db | FLOAT | 0.0-60–6 | — |
| late_db | FLOAT | -14.0-60–6 | — |
| er_db | FLOAT | -14.0-60–6 | — |
| time_low | FLOAT | 10050–200 | — |
| time_high | FLOAT | 6050–200 | — |
| xover_low_mid | FLOAT | 40050–500 | — |
| xover_mid_high | FLOAT | 40001000–10000 | — |
| feedback_top | FLOAT | 8000500–20000 | — |
| mod_freq | FLOAT | 1.000–10 | — |
| mod_amp | FLOAT | 0.200–1 | — |
| stereo_spread | FLOAT | 1000–150 | — |
| quality | COMBO | 16 | 2 options: 8, 16 |
| audioopt | COMFYTV_AUDIO | — | |
| videoopt | COMFYTV_VIDEO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | COMFYTV_AUDIO | — |