Skip to content

Instantly share code, notes, and snippets.

@shiryel
Created August 7, 2024 05:25
Show Gist options
  • Save shiryel/4c9fd164fe25c2b6204e35a3138448c2 to your computer and use it in GitHub Desktop.
Save shiryel/4c9fd164fe25c2b6204e35a3138448c2 to your computer and use it in GitHub Desktop.

Where:

  • r = reference
  • n = number
  • i = integer
  • c = compound_notes, note can be midi number, rest _, or compound note such as _60
  • s = symbol

Signals

imp frequency:n - impulse signal, it can be used as a trigger to a sampler or sawsynth
constsig n
noise seed:n
points ws?

Sequencers

seq events:c - output a sequence of notes
arrange r n (r n)* - to control "seq", eg:

~t1: speed 2.0 >> seq 60 62 64 65
~t2: speed 8.0 >> seq 48 72
out: arrange ~t1 3 ~t2 1 >> sawsynth 0.01 0.1

choose i (i)*
speed n - eg:

o: speed 1.0 >> seq 60 >> bd 0.1

Oscillators

sin frequency:nr - sine wave
saw frequency:nr - saw wave
squ frequency:nr - square wave
tri frequency:nr - triangle wave

Operators

add nr - add value to signal
mul nr - multiply value, should typically be between 0.0 to 1.0, eg:

sin 1.2 >> mul 0.3 >> add 0.5

Compounds

requires input values (eg: imp 1 >> sawsynth 0.03 0.1) sawsynth attack:n decay:n - saw wave synth squsynth attack:n decay:n - square wave synth trisynth attack:n decay:n - triangle wave synt

Synthesized Nodes

bd decay:n - bass drum, synthesized with:

out: sin ~pitch >> mul ~envb >> mul 0.9
~envb: ~triggerb >> envperc 0.01 0.4;
~env_pitch: ~triggerb >> envperc 0.01 0.1;
~pitch: ~env_pitch >> mul 50 >> add 60;
~triggerb: speed 4.0 >> seq 60

sn decay:n - synthesized with:

output: noiz 42 >> mul ~env >> hpf 15000 1.0 >> mul 0.8;
~env: ~trigger >> envperc 0.001 #decay;
~trigger: ~input;

hh decay:n - synthesized with:

output: sin ~snpitch >> add ~no >> mul ~snenv >> hpf 5000 1.0;
~no: noiz 42 >> mul 0.3;
~snenv: ~sntriggee >> envperc 0.001 #decay;
~snpitch: ~sntriggee >> envperc 0.001 0.1 >> mul 60 >> add 60;
~sntriggee: ~input;

Envelopes

envperc attack:n decay:n - envelop signal with an attack and a decay (in seconds), eg:

imp 1.0 >> envperc 0.001 0.1

adsr attack:n decay:n sustain:n release:n

Delays

delayms nr - delay signal in ms
delayn nr

Effects

balance r r
pan pan_position:nr - pan position (-1.0 to 1.0)
plate n
reverb dampening:n room_size:n width:n wet:n dry:n

Filters

apfmsgain nr gain:n - all pass filter gain
onepole nr
hpf cutoff:nr q:n - high pass filter
lpf cutoff:nr|pattern|event q:n - low pass filter, eg: o: noise 42 >> lpf 100.0 1.0

Samplings

sampler s - eg:

o: speed 4.0 >> seq 60 >> sampler \808bd

psampler pattern|event

Synths

msgsynth s attack:n decay:n
pattern_synth code period_in_cycle:n

Dynamic code

eval ws?
expr code
meta code

???

mix r (r)* - mix of references, eg:

~t1: speed 4.0 >> seq 60 >> bd 0.1 >> mul 0.5
~t2: seq 33_33_ _33 33__33 _33
>> squsynth 0.01 0.3
>> lpf 1000.0 5.0
>> mul 0.1
o: mix ~t.. >> plate 0.1

get r - get a reference and play it, eg:

~bd: speed 4.0 >> seq 60 >> bd 0.03
o: get ~bd

sendpass r (r)*
adc n

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment