Score

fx(...) --- Shared Effects

fx() makes a bus: one reverb, one delay, one filter that several sounds go through together — three voices in one room rather than three rooms. Any sound can be sent to it: synths, audio files, speech.

Syntax

fx(room, reverb:{mix:0.5, time:4}) a bus called room, with a reverb fx(room, [a1, a2, a3]) these sounds go through it fx(room, a1, a2, delay:{time:0.375, fb:0.4, mix:0.2}) synth(uid:pad, wave:saw, freq:110, bus:room) ... or a sound says so itself audio(uid:rain, src:rain, bus:room) fx(room, reverb:{mix:follow(beat.phase, 0.2, 0.8)}) fx(room, filter:{type:lp, freq:follow(bass.low, 300, 6000)}, amp:0.8) level(room, 0, 8) the whole bus faded over 8 beats synth(uid:pad, bus:none) pad its own way again fx(room, reverb:{mix:0.4}) run again without its delay: the delay comes out fx(room, delay:off) ... or one taken out by name fx(room, off) the bus gone; its sounds go their own way

Parameters

param description
(first name) The bus: any name. Made the first time it is named — by fx() or by a sound's bus: — with no effects until they are given.
(more names, or a list) Sounds to send through it, by their uid.
reverb {mix, time, damp, pre} — the same room as a synth's reverb. mix can follow().
delay {time, fb, mix, tone, sat} — an echo; fb up to 1.5, past 1 running away into a held squeal (feedback). mix and fb can follow().
filter {type, freq, q} — type lp, hp, bp or notch; freq and q can follow().
sub An octave pedal's sub, as a synth's sub: -- {level, octave, tone}. First in the bus.
drive A soft clip, 0..1, as a synth's drive:. After the sub.
fuzz A fuzz pedal, as a synth's fuzz: -- {starve, gain, bias, tone}, and level (0.25): how loud it comes out (a fuzz comes out as loud whatever goes in). After the drive, before the filter.
fold, clip, ring, comb, crush As a synth's grit: a wavefolder, hard clipping, ring modulation, a comb fed back, a bitcrusher. After the fuzz; each value can follow().
amp The bus's own gain (1, at most 2). Can follow().
delay:off Takes that effect out (reverb:off, filter:off too).
off fx(room, off) takes the bus away.

On a sound — synth(), audio(), say() — bus:room sends it through room, and bus:none takes it out again.

How it works

Example — one fuzz for a whole bass

fx(dirt, sub:{level:1.2}, fuzz:{starve:0.2, gain:40, tone:6000}, filter:{type:lp, freq:2200}, reverb:{mix:0.3}) synth(uid:s1, wave:square, degree:Prand(0, 2, 3, 5, inf), stack:[0, 7], poly:4, root:A2, dur:1.5, bus:dirt)

Example — three sounds in one room

fx(room, reverb:{mix:0.5, time:4, damp:2500}) synth(uid:a1, wave:sine, freq:Prand(220, 330, 440, inf), dur:2, amp:0.06, pan:-0.7, bus:room) synth(uid:a2, wave:triangle, freq:Prand(165, 247, inf), dur:3, amp:0.05, pan:0.7, bus:room) synth(uid:a3, wave:saw, freq:55, amp:0.04, filter:{type:lp, freq:600}, bus:room) fx(room, reverb:{mix:0.9, time:8}) later: the room opens out under all three

Tip: use ← → or ↑ ↓ to navigate the docs