(SP) Stereo Width
Mono to wide stereo, done properly
- audio_input
- widened_audio
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) orsimple. The dropdown defaults todecorrelation, 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-cuda11xdependency (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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | 2 options: decorrelation, simple | |
| audio_input | AUDIO | — | |
| widthopt | FLOAT | 6.01–8 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| widened_audio | AUDIO | — |