home/ atoms/ sc-mix-splay

Mix folds a multichannel array to mono; Splay spreads it evenly across a stereo field

When multichannel expansion produces more channels than available outputs, fold them back down. Mix(signal) sums all channels to mono. Splay.ar(signal) distributes channels evenly from left to right across stereo — a 5-channel array pans at -1, -0.5, 0, 0.5, +1. Mix.fill(n, func) combines array filling and mixing in one step: evaluates the function n times, collects results, and mixes down. This is the idiomatic way to build additive or granular textures needing stereo output.

Examples

b = {Mix(SinOsc.ar([100,300,500,700,900],mul:0.1))}.play;
c = {Splay.ar(SinOsc.ar([100,300,500,700,900],mul:0.1))}.play;
n = {Mix.fill(12,{|i| SinOsc.ar((i+1)*440,mul:1/(i+1).squared)*0.1})}.play;

Assessment

Write a 7-partial additive synth using Mix.fill and Splay.ar. Explain why you need Mix or Splay at all — what would happen without them?

“mixitalldowntomonoorstereowithMixorSplay: 1// 5 channels output (watch Meter window)”
corpus · a-gentle-introduction-to-supercollider-bruno-ruviaro · chunk 13