ComfyUI Node

(SP) Stereo Width

Mono to wide stereo, done properly

By c0ffymachyne·Created 2 years ago·Updated about a year ago· 22
(SP) Stereo Width
  • audio_input
  • widened_audio
mode
width6.0

The fastest way to make a generated voice or a mono pad sound "produced" is to give it width. (SP) Stereo Width does that in two very different ways, and the difference between them is the whole article.

The interesting one is decorrelation. A lot of cheap width effects just pan the same signal to both sides or flip phase - which falls apart in mono and sounds hollow. This node instead implements the decorrelation approach from Orchisama Das's DAFx 2024 paper "Open Source Stereo Widening Plugin" (the code is lifted from the author's open-source StereoWidener project, under CC0). It splits the signal into a filterbank and uses velvet-noise-based decorrelation to make the left and right channels genuinely different, so you get convincing width without the mono-cancellation trap. That's the mode worth using.

The simple mode is the classic mid/side trick: derive mid and side components, boost the sides relative to the mid, rebuild. Fast, predictable, and it does widen - but it's the same trick a hundred free VSTs do, and it'll sound thinner if you push it.

The inputs

  • mode - decorrelation (the good one) or simple. The dropdown defaults to decorrelation, which is where you should keep it.
  • audio_input - mono or stereo. Mono in gets properly decorrelated into stereo, which is the best reason to use this node.
  • width - optional, 1.0–8.0, default 6.0. Higher = wider. Quirky detail: in decorrelation mode the code clamps width above 1.0 down to 1.0 and uses it to sweep the decorrelation curve, so the raw number matters less than you'd think; in simple mode it directly scales the side channel. Either way, treat it as "how much."

One widened_audio output. And as always with this pack, the output is re-normalized to the input's LUFS, so widening won't pump your volume.

Where people get burned

  • Mono compatibility: simple mode is the classic mid/side widening and will partially cancel if someone listens in mono. decorrelation survives mono much better - one more reason to use it.
  • Don't stack it. Two widening passes in a row turn a voice into a smeared, phasey mess. One pass, then move on.
  • If the pack fails to load at all, it's almost certainly the pinned cupy-cuda11x dependency (the Limiter imports CuPy kernels at startup) - the fix is a CUDA/cupy version that matches your setup, and once it's fixed, every node in the pack appears together.

Installing it

ComfyUI Manager → "Install Custom Nodes" → search ComfyUI Signal Processing, or:

cd ComfyUI/custom_nodes
git clone https://github.com/c0ffymachyne/ComfyUI_SignalProcessing

then restart ComfyUI. Dependencies from requirements.txt (scipy, pyfar, torchaudio, pyloudnorm, cupy-cuda11x, ...). A natural finishing move: Load Audio → Stereo Width (decorrelation) → Filter → Convolution Reverb, and your mono source comes out sounding like a real stereo recording.

CategorySignal Processing

Inputs (3)

NameTypeDefaultDescription
modeCOMBO2 options: decorrelation, simple
audio_inputAUDIO
widthoptFLOAT6.01–8

Outputs (1)

NameTypeDescription
widened_audioAUDIO