Mix collapses an array of signals to mono; Splay spreads them across stereo
When you have an arbitrarily large array of audio channels (e.g., from iteration over 8 UGens), two UGens help manage them: Mix.ar(array) sums all channels into a single mono signal — you typically scale down afterward to avoid clipping. Splay.ar(array) spreads the channels equally across a stereo field, creating spatial width without any downmix. Mix is appropriate when you want a dense, blended single-channel output; Splay when you want perceived spatial separation on stereo speakers.
Examples
sig = SinOsc.ar([300,500,700,900]); sig = Mix(sig) * 0.25; — four sines summed to mono.
sig = Splay.ar(sig) * 0.25; — four sines spread across stereo.
Assessment
You have 12 oscillators summed with Mix but the sound is clipping. Suggest two fixes. Then describe what Splay would give you instead, and when you’d prefer it.