Aratu a language for musical performance and algorithmic composition

19. Mixing

▶ Open in Aratu to hear and change the examples

Each part has volume (0 to 1) and pan (-1, hard left, to 1, hard right), like the faders and pan knobs of a mixing desk: drums.volume = 0.5, guitar.pan = -0.6. Each part's reverb.mix says how much of it goes to the mix's shared room.

A part that only exists inside sections or patterns is mixed the same way, from outside them: the number holds wherever it plays, and so does a change at bar or a number that moves.

section groove { alfaia = O -o o_oo o; snare = Ssss Ssss Ssss Ssss }
form: groove x4
alfaia.volume = 1
at bar 3: alfaia.volume = 0.6

For the whole piece. A number written with no part is for all of them: reverb.mix = 0.5 puts every part in the mix's reverb. A chain written for all puts its effects on every part, after each part's own. And the mix's own bus, the master, has numbers of its own:

all: chorus -> delay
reverb.mix = 0.5
master.reverb.decay = 3 s
master.glue.on = 1
master.limiter.ceiling = -1
Master What it is
master.reverb.decay, .size, .damping, .level the shared reverb: length (s), size, damping, level (dB)
master.glue.on, .threshold, .ratio, .makeup the glue compressor: 1 turns it on; threshold (dB), ratio, make-up (dB)
master.gain the level into the limiter, in dB
master.limiter.ceiling the limiter's ceiling, -12 to -0.3 dB

Ducking. pad: duck by kick makes room for the kick: at each of its hits the pad's volume drops by 70% and comes back over a beat, the pumping a sidechain gives in the studio. pad: duck by kick 50% over 1 eighth says how much and how fast. After by comes a part (drums), a line (bd), or a drum by its name (kick, snare, clap, hat) from whatever line plays it; all: duck by kick ducks every other part. It moves the part's volume from the value written for it, and works with at bar, from bar … to … and every.

drums { bd = b b b b }
pad = | a3+c4+e4 _ _ _ |
pad: duck by kick 60% over 3 sixteenths