Shaping a sound live
Four cues, one question each:
| question | cue | in a line |
|---|---|---|
| how loud is it? | level(s, …) |
a fader on the whole sound, its reverb included |
| is it playing? | gate(s, 0/1) |
a key: let go (the room rings on), press again (it comes back) |
| is it finished with? | hush(s) |
stop it and free the machine |
| is the pattern moving? | hold(s, 1/0) |
freeze its patterns where they are |
xfade(a, b, 8) is two level()s at once: a down, b up, at equal
power so the middle does not dip.
level(pad, 0.4, 6, exp3) down to 0.4 over 6 beats, along a curve
gate(pad, 0, 4) let go: it fades over 4 beats, its reverb rings on
gate(pad, 1) press again: back as it was
hold(pad) the notes stop changing; the rhythm goes on
hold(pad, 0) ... and change again
hush(pad, 6) fade it out over 6 beats and stop it
Pause and stop
gate(s, 0, 4) and hush(s, 4) sound the same: both fade the sound and
let its reverb and delay ring on. The difference is what is left
afterwards.
gateis pause. The sound runs on, silent -- its pattern, its modulators,hold(), everything where it was -- andgate(s, 1)brings back exactly that.hushis stop. The sound is gone and the machine freed; to hear it again, run its line.
A paused sound still costs. In the console its lines dim, tagged paused
(a held one is tagged held, one a bang(s, 4) metro is banging active,
with the bang line), and resources() counts
them -- so nothing is left running forgotten.
The tail
| the sound | its reverb / delay | |
|---|---|---|
hush(s) |
stops | rings on |
gate(s, 0) |
fades out | rings on |
seq(s, 0) |
its note ends, the sequence waits | rings on |
level(s, 0) |
fades out | goes too |
level is the fader after everything, the room included. To stop playing
into the room and let it ring, gate or hush. To stop a sequence without
cutting its note, and start it again later where it was, seq(s, 0) /
seq(s, 1) (more).
Fading in
Write the line, and a level() after it:
synth(uid:noise, wave:pink, amp:1)
level(noise, 1, 12, exp3)
A level going up on a sound not yet heard fades it in from silence -- in
either order: before the sound, level() waits for it to start; just after
(the same run), it takes the fader to 0 and brings it up from there. On a
sound that has been playing, it moves the fader from where it is.
fadeIn: on the line does the same, and is for written scores, where a
line has to carry everything itself. A closed gate opened slowly works too;
level() is the one to reach for.
Poly sounds
With poly:3, Ctrl+Enter on the line adds a voice -- up to three,
the oldest making way -- so change a value, Ctrl+Enter, change it again,
Ctrl+Enter, and the voices pile up each with its own. Ctrl+Alt+Enter
gives the line to every voice sounding instead. A chord (held voices)
is replaced: each voice releases on its r: as as many new ones come in on
the line's a: -- a crossfade, each new voice rolling its own rand(), so
a chord built up with Ctrl+Enter comes back a new chord of as many notes.
Stepping voices (patterns) take the line in place, each on its own step --
a whole part transposed:
synth(uid:bass, wave:saw, poly:4, freq:Pwhite(40, 100), dur:0.1)
synth(uid:bass, wave:saw, poly:4, freq:Pwhite(80, 200), dur:0.1) Ctrl+Alt+Enter: all four up an octave
Loudness, pausing and holding go with the cues below, not by running the
line with amp:0:
synth(uid:s, wave:saw, poly:3, freq:Prand(220, 330, 440, inf), dur:0.25,
reverb:{mix:0.5, time:4})
level(s, 0.5, 4) every voice
gate(s, 0) every voice -- and any started while closed
hold(s) every voice -- and any started while held; a dur: waits too
bang(s) its line again, every voice re-rolling its rand()s
bang(s, Pwhite(1, 5, inf)) ... again and again, the beats between drawn each time
hush(s) stops them all, lets their tails ring, and opens their gate and
releases their hold for the next time.
Run with Ctrl+Enter, a hold(s, 1) line becomes hold(s, 0) and a
gate(s, 0) line gate(s, 1) -- the line shows what the next press does
(the tag beside the sound's line, held or paused, what it is now).
Ctrl+Z puts the line back.
Tip: use ← → or ↑ ↓ to navigate the docs