Stereo Width

RoutingstereowidthLight CPU

Mid/Side width control — collapse a stereo pair to mono, or push it wider.

What it does

Widens or narrows an existing stereo pair by scaling its mid/side difference.

Classic mid/side, four multiply-adds and no DaisySP class. Mid is 0.5 * (L + R) — everything the two channels agree on. Side is 0.5 * (L - R) — everything they disagree on, which is what the ear reads as width. Side is multiplied by the Width control and the pair is decoded back as M + width*S and M - width*S. At Width 1 that algebra is the exact identity, so the tile passes the signal through untouched; at 0 the Side term vanishes and both outputs are the mono sum.

Parameters

  • Width

    width
    Default 1Range 0 … 4

    How much of the stereo difference survives. 0 discards it entirely and both outputs carry the same mono sum. 1 is exact passthrough — the tile is transparent, not approximately so. Above 1 the difference is exaggerated and the image opens past the speakers; 2 is already a strong effect. This is the value used when the Width port is unwired. ⚠ Negative values are allowed and invert the image, swapping which side each difference lands on.

Splits the pair into Mid (what both channels share) and Side (what differs), scales Side by Width, and recombines. Nothing is limited on the way out — widening past 1 can exceed ±1.0, so put a Limiter after it if you push hard.

Ports

In

  • Left In in_l
  • Right In in_r
  • Width width

Out

  • Left Out left
  • Right Out right

Audio Control

Inputs

Left In
Left channel of the pair. Unwired reads 0.0.
Right In
Right channel of the pair. Unwired reads 0.0.
Width
0 = mono, 1 = untouched, above 1 = wider. Unwired, the Inspector value is used.

Outputs

Left Out
Mid plus the scaled Side.
Right Out
Mid minus the scaled Side.

Rules and gotchas

  • ⚠ This widens a pair that is already stereo — it cannot invent width. Feed it the same signal on both inputs and the Side term is zero at every Width, so the control does nothing at all. That is correct behaviour, not a fault: use Panner to place a mono source, or two different sources, then widen.
  • ⚠ Nothing is limited on the way out. Width above 1 can push past ±1.0 and the codec hard-clips there. That matches Mixer, Scale / Offset and Math — Limiter or Compressor is the tile for the ceiling. A soft clip was deliberately NOT built in: DaisySP's SoftClip is a nonlinearity everywhere, not just near the rails, and would colour a Width-1 patch by about a fifth to guard a case most patches never reach.
  • Width 1 is exactly transparent, not nearly — the mid/side round trip is an identity. If a patch sounds different at Width 1, the change is somewhere else.
  • Negative Width inverts the stereo image rather than muting it, because the Side term simply changes sign. Occasionally useful, surprising if unexpected.
  • Collapsing to mono at Width 0 sums the channels rather than picking one, so anything out of phase between them cancels. That is what makes Width 0 a mono-compatibility check: if the sound thins out there, it will thin out on a mono speaker too.