Audio Echo
From a mountain canyon to a robot voice — presets that get you there in one click
- audio
- video
- audio
Delay is the most fun audio effect and the easiest one to make sound terrible. Audio Echo is ComfyTV's take on it, and the smart part is the presets: mountains, mountains2, doubled, robot, and a feedback mode that does something the simple filter can't. Instead of dialing delay time and feedback from scratch and hoping, you pick the vibe and tweak from there.
The four named presets map directly to FFmpeg's aecho filter with tuned in/out gains, delay, and decay:
- mountains - 1000ms delay, 0.3 decay. Big, canyon-y slap that sounds like you're shouting across a valley.
- mountains2 - dual taps at 1000ms and 1800ms, like a canyon with an echo of an echo.
- doubled - 60ms delay. That's slapback territory, the "made it sound bigger" trick, not an echo at all really.
- robot - 6ms delay with high feedback, which is how you get that metallic robotic edge from a cheap delay.
- feedback - not an
aechoat all; the source shows it routes to a custom feedback-delay DSP (echo_feedback) that regenerates and saturates the tail. For endless, self-oscillating delays.
How it works
The preset combo picks the behavior. When it's custom (or anything not in the preset list), your four knobs take over: in_gain (0–1, how much signal enters the delay), out_gain (0–1, how loud the wet output is), delay_ms (1–90000), and decay (0.01–1, how much each repeat loses - lower decays die faster, higher ones ring forever). The source strings confirm the mapping: in_gain:out_gain:delay_ms:decay is exactly what goes into the aecho filter.
Feed audio (COMFYTV_AUDIO) or video (its soundtrack). Output is audio. Internal inputs (force_run_token, project_id, parent_output_id) are frontend plumbing - leave them.
Installing ComfyTV
cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV
Full backend restart, then ComfyTV → AudioFX; ComfyUI Manager finds "ComfyTV". Zero extra Python deps - presets run through FFmpeg's aecho via PyAV; the feedback mode uses numpy DSP. Both already ship with ComfyUI. No models.
The pack-wide install trap: on macOS / ComfyUI Desktop / multi-install machines, cd ComfyUI/custom_nodes can clone into the wrong instance - clone succeeds, stages never appear. Find the running instance's path in the startup log, clone into that instance's custom_nodes by absolute path (quote paths with spaces/parentheses), confirm ComfyTV/__init__.py is top-level, restart the backend fully.
Common issues
- Robot sounds wrong on voice. 6ms delay is tuned for a specific effect; if it's too metallic, drop
decaytoward 0.2 or nudgedelay_msup. On music it can sound like a broken speaker - usedoubledfor a "bigger" sound instead. - Feedback mode never stops. That's the point - feedback delays self-oscillate. If it's out of control, you can't tame it from this node; it's a performance feature. Use a short
delay_msand modest decay, or switch back to a preset. - Echo is barely audible.
out_gaindefaults low (0.3) relative toin_gain(0.6). Raiseout_gaintoward 0.5–0.7 for a stronger wet signal. - The tail is too short or too long.
decayis the only thing controlling repeat length. 0.5 is a middle ground; 0.9+ turns a voice into a canyon.
The presets do 80% of the work. Start there, then fight over decay like the rest of us.
Inputs (10)
| 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. |
| preset | COMBO | mountains | 6 options: custom, feedback, doubled, robot, mountains, mountains2 |
| in_gain | FLOAT | 0.600–1 | — |
| out_gain | FLOAT | 0.300–1 | — |
| delay_ms | FLOAT | 10001–90000 | — |
| decay | FLOAT | 0.500.01–1 | — |
| audioopt | COMFYTV_AUDIO | — | |
| videoopt | COMFYTV_VIDEO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | COMFYTV_AUDIO | — |