Audio Stereo Width
Widen (or collapse) your stereo image with one mid/side knob
- audio
- audio
- output_path
- duration_sec
- summary
The difference between a song that sounds "big" and one that sounds "thin" is mostly stereo width - how much the left and right channels differ. MKRAudioStereoWidth is a single knob that scales exactly that: push it past 1.0 to make a stereo track feel wider and bigger, pull it toward 0 to collapse it toward mono. It's the fastest way to make an AI-generated soundtrack feel more produced, and it's also the tool to reach for when you're about to deliver a clip that needs to be mono-compatible.
It's an FX node in the MKRShift_Nodes audio set, and it pairs naturally with MKRAudioChannelRouter - that node's mid/side encode is effectively the manual version of what this one does automatically.
How it works
The magic is mid/side processing. Any stereo signal can be split into a mid channel (the part that's identical in both speakers - (L+R)/2) and a side channel (the part that differs - (L−R)/2). Stereo width is just how much you amplify the side channel relative to the mid.
At width = 1.0 the signal is unchanged. At width = 0, the side channel is silenced entirely and you get pure mono (the standard "mono-compatibility check"). Above 1.0, up to 2.5, the side gets boosted - wider, bigger, more dramatic - at the cost of potential phase issues and louder peaks. The node scales the side channel by width, recombines mid + side into L/R, and optionally normalizes the peak so the widened result doesn't clip.
One honest caveat: widening can't invent stereo where there is none. Feed it a mono file and it just warns you and passes through - there's no signal difference to amplify.
Inputs that matter
audio-MKR_AUDIOpayload, waveform tensor, or file path.width- 0.0 to 2.5, default 1.0. 1.0 = unchanged, 0 = mono, 1.5–2.0 = noticeably wide.normalize_peak- off by default. Turn it on when widening past ~1.5, because boosting the side channel pushes peaks up.- Standard save block:
output_format,filename_prefix,subfolder,overwrite, optionalfilename_label.
Outputs: audio (MKR_AUDIO), output_path, duration_sec, summary.
Install
ComfyUI Manager (search "MKRShift Nodes"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes
Restart. Pure numpy; ffmpeg only for compressed output formats. No models.
Common issues
The trap is over-widening. Past about 1.8, most tracks start to sound hollow in the middle - the vocals lose their anchor - and on headphones vs speakers the balance shifts badly. If the mid drops out of your mix, that's the side-channel boost eating your center. Second, super-wide audio can become out of phase in parts, and the moment it's summed to mono (phone speakers, some podcasts), those parts vanish. If mono-compatibility matters, test at width = 0 - whatever survives is what mono listeners hear. And remember: mono input does nothing, so widen before the signal is summed to mono, not after.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | * | — | |
| width | FLOAT | 1.000–2.5 | — |
| normalize_peak | BOOLEAN | false | — |
| output_format | COMBO | auto | 5 options: auto, wav, mp3, flac, ogg |
| filename_prefix | STRING | MKR_audio_stereo_width | — |
| subfolder | STRING | — | |
| overwrite | BOOLEAN | false | — |
| filename_labelopt | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| audio | MKR_AUDIO | — |
| output_path | STRING | — |
| duration_sec | FLOAT | — |
| summary | STRING | — |