ComfyUI Node

AI Audio Effects

Pitch, Speed, Reverb, Echo — a Classic DSP Toolkit With a Misleading Name

By ShmuelRonen·Created about a year ago·Updated about a year ago· 64
AI Audio Effects
  • audio
  • audio
pitch_shift0.0
speed_factor1.00
sox_pathsox
gain_db0.0
use_limitertrue
normalize_audiofalse
add_reverbfalse
reverb_amount50
reverb_room_scale50
add_echofalse
echo_delay0.5
echo_decay0.5

Let's get the elephant in the room out of the way: AI Audio Effects is not AI. There's no model, no GPU, no weights. Under the hood it's a friendly wrapper around SoX, the 30-year-old command-line audio swiss-army knife. That's not a knock - it means pitch shifting, time stretching, gain, reverb, echo, and normalization all run in a few milliseconds and need zero VRAM. The "AI" in the name is just the pack's branding.

You reach for this node when your generated audio is technically correct but needs reshaping. A chipmunk voice out of your TTS? pitch_shift at +4. Deep, ominous narration? −4 and a touch of reverb. The README's presets - "Phone Call," "Radio Announcer," "Stadium Announcement" - are all just combos of the effect groups this node exposes.

It takes any AUDIO (TTS output, ACE-Step music, a LoadAudio node) and returns a single processed audio output, ready for PreviewAudio or the pack's other node, AI Audio Enhancer Pro. Chain them as the author intends: source → Enhancer (quality) → Effects (creative) → preview.

How it works

The node writes your audio to a temp WAV, builds a SoX effect chain, runs it as a subprocess, and reads the result back. Fun detail: the temp files are named orpheus_sox_…, a hint this started life bolted onto a TTS model before the author generalized it. The effects run in a fixed order - normalize → gain → pitch → speed → reverb → echo - and everything is off or neutral by default. If you change nothing, it returns the input untouched.

Two mechanism notes that surprise people:

  • Speed isn't what you think. speed_factor maps to SoX's tempo -s, which time-stretches while preserving pitch. At 2.0 you get a faster clip that doesn't chipmunk up.
  • Pitch is in cents internally. pitch_shift (in semitones, −12 to +12) is converted to cents for SoX's pitch effect. The 0.5 slider step is why half-steps work fine.

The inputs that matter

audio, pitch_shift, and speed_factor are required; the rest are optional and off by default. The ones you'll actually touch:

  • pitch_shift - −12 to +12 semitones. 0 is natural. ±2–4 is the character-voice sweet spot.
  • speed_factor - 0.5× to 2.0× playback speed, pitch preserved.
  • gain_db - −20 to +20 dB. Positive gain with use_limiter on (default) uses SoX's limited gain so it won't clip; negative gain just ducks the level.
  • add_reverb / reverb_amount / reverb_room_scale - the reverb is SoX's classic, with room scale mapping to room size. README recipe: small room (20/25), medium (40/50), large hall (70/80), cathedral (90/95).
  • add_echo / echo_delay / echo_decay - delay in seconds (0.1–2.0), decay how fast repeats fade. Subtle: 0.3/0.3. Canyon: 1.0/0.7.
  • normalize_audio - applies a gain -n normalization first in the chain, before everything else. Handy for TTS clips that come out quiet.

The one output, audio, is the same AUDIO dict you put in - same type, ready to chain.

Installing it - the SoX catch

The Python side installs like any pack: ComfyUI Manager search "ComfyUI-Audio_Quality_Enhancer," or

cd ComfyUI/custom_nodes
git clone https://github.com/ShmuelRonen/ComfyUI-Audio_Quality_Enhancer
cd ComfyUI-Audio_Quality_Enhancer
pip install -r requirements.txt

But the actual dependency is SoX the binary, and it's not installed by pip. This is where people get burned:

  • Windows: download the installer from the SoX SourceForge page (sox-14.4.2-win32.exe). The node auto-detects it in C:\Program Files (x86)\sox-14-4-2\sox.exe - no PATH editing needed, and the sox_path input lets you point at a custom location.
  • Linux/WSL: sudo apt-get install sox.
  • macOS: brew install sox.

One quirk worth knowing: the whole pack's requirements.txt (torch, librosa, soundfile…) installs even though this node only needs soundfile, torch, and the SoX binary. The Enhancer sibling pulls in the heavy stuff, and pip shares one Python environment - you can't install just the light half.

Troubleshooting

  • "Nothing happened" but the node returned audio. That's the signature failure: if SoX can't be found, the node prints SoX executable not found to the console and returns your original audio unchanged. Check the terminal, not the graph - the graph looks successful either way.
  • Effects are on but you hear nothing. Reverb and echo are opt-in booleans. add_reverb and add_echo must be flipped to true; their amount/delay sliders do nothing on their own.
  • Clipping on positive gain. If you turn use_limiter off and push gain_db high, you'll get distortion. The limiter exists precisely so you don't have to baby the gain.

It's a small, no-frills node with exactly two jobs - instant DSP effects and a clean AUDIO passthrough - and it does both without touching your GPU. For the price of installing SoX, it's the fastest pitch-and-reverb pipeline in ComfyUI.

Categoryaudio/effects

Inputs (13)

NameTypeDefaultDescription
audioAUDIO
pitch_shiftFLOAT0.0-12–12
speed_factorFLOAT1.000.5–2
sox_pathoptSTRINGsox
gain_dboptFLOAT0.0-20–20
use_limiteroptBOOLEANtrue
normalize_audiooptBOOLEANfalse
add_reverboptBOOLEANfalse
reverb_amountoptFLOAT500–100
reverb_room_scaleoptFLOAT500–100
add_echooptBOOLEANfalse
echo_delayoptFLOAT0.50.1–2
echo_decayoptFLOAT0.50.1–0.9

Outputs (1)

NameTypeDescription
audioAUDIO