Nodes/DJZ-Pedalboard/DJZ_Pedalboard
ComfyUI Node

DJZ_Pedalboard

Strapping a Guitar Pedalboard to Your ComfyUI Workflow

By MushroomFleet·Created 2 years ago·Updated 5 months ago· 3
DJZ_Pedalboard
  • audio
  • audio
effect_presets

Most ComfyUI audio packs are about generating sound - TTS, voice cloning, music models. DJZ_Pedalboard goes the other way: it's a single node that processes whatever audio you already have through real guitar-pedal effects - reverb, delay, chorus, distortion, phaser, pitch shift - and hands it back to the graph as the same AUDIO type it ate. No models to download, no API key, nothing but math on a waveform. If you've ever wanted to run a voice or a music sample through a "pedalboard" before it hits your video or your sound-to-video model, this is the node for it.

How it actually works

Under the hood it's a thin wrapper around Spotify's open-source pedalboard library, the same DSP code Spotify uses internally for podcast and music processing. The chain isn't built in the node UI - it's defined in plain-text .pdl preset files that ship in the pack's pedalboard/ folder. You pick a preset from a dropdown, and the node:

  1. Converts the incoming waveform to numpy, juggling 1D/2D/3D shapes and transposing (channels, samples) to (samples, channels) so the DSP library gets what it expects.
  2. Reads your chosen .pdl, regex-pulls the effect chain out of the [...] block, and evaluates it in a restricted namespace - no builtins, just an allowlist of 11 effect classes: Chorus, Compressor, Delay, Distortion, HighpassFilter, LowpassFilter, Phaser, Reverb, PitchShift, Limiter, and LadderFilter.
  3. Runs the whole chain through Pedalboard(effects), peak-normalizes if anything clipped past 1.0, and converts the result back to the standard (1, channels, samples) tensor ComfyUI audio nodes expect.

A preset looks like this:

# Combined Effects
[Compressor(threshold_db=-20, ratio=3), Chorus(rate_hz=1.0, depth=0.25, mix=0.3), Delay(delay_seconds=0.25, feedback=0.3)],
"combined_effects.wav"

So the "pedalboard" part isn't a gimmick - you're literally building a signal chain in the same style as pedalboards, just in a text file.

The two inputs and one output

  • audio (AUDIO) - feed it the output of any node that emits AUDIO: a Load Audio node, a TTS node, or a video-to-audio extractor. The node validates that it's a real dict with a non-None waveform and errors loudly if not.
  • effect_presets (enum) - the dropdown of 16 shipped .pdl files, from reverb_large.pdl and chorus_subtle.pdl to the eyebrow-raising test.pdl. This is your whole "interface."
  • audio (AUDIO) - the processed result, ready to wire into whatever consumes audio next.

That's it. There are no knobs in the node itself; all parameter tuning happens inside the preset files.

Installing it

Easiest route: ComfyUI Manager → search "DJZ-Pedalboard" → install → restart. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/MushroomFleet/DJZ-Pedalboard

Then install the one real dependency - the pedalboard pip package. Windows portable users get install-portable.bat in the repo, which pip-installs into the embedded Python automatically; everyone else:

pip install -r ComfyUI/custom_nodes/DJZ-Pedalboard/requirements.txt

No model files, no weights, no heavy torch extras - just that one pip package.

Where people get burned

  • The dropdown is frozen at startup. The preset list is built by globbing pedalboard/*.pdl when ComfyUI launches. Add or rename a preset and you must restart ComfyUI before it shows up in the enum.
  • The "output.wav" at the end of each preset is decorative. The node only cares about the [...] chain; it returns AUDIO to the graph and never actually writes that file. Don't go hunting for a generated wav.
  • A typo in a .pdl is a hard error, not a silent skip - the restricted eval rejects anything not in the effect allowlist, and a malformed chain raises a ValueError. The node keeps a djz_pedalboard.log next to its own source file; when something fails, that's where the real detail lives.

It's a niche node for a real gap - audio processing inside ComfyUI is still mostly DIY, and this is one of the few approaches that ships working presets and doesn't drag in a stack of model weights. Tweak a preset or two and it earns its place.

Categorysd

Inputs (2)

NameTypeDefaultDescription
audioAUDIO
effect_presetsCOMBO16 options: reverb_large.pdl, chorus_subtle.pdl, pitch_shift_up.pdl, distortion_mild.pdl, test.pdl, reverb_small.pdl, +10

Outputs (1)

NameTypeDescription
audioAUDIO