# 2022-01-26

#jamuary jam number 15. I tried a slightly different SuperCollider technique today. I moved the “sequencing” into the SynthDef instead of using the pattern sequencer (`Pdef`) approach that I’ve used for most of my other SC jams this month.

The SynthDef looks like

``````(
SynthDef(\boop, {|
out=0,
freq=440,
atk=0.01,
rel=1,
rate=0.2,
amp = 0.25,
pos = 0,
dly=0|

var env = EnvGen.kr(Env.perc(atk, rel), gate: Impulse.kr(rate));
var snd = Mix.new([
LFTri.ar(freq),
LFTri.ar(freq*0.5*1.005, mul: 0.3),
PinkNoise.ar(0.1),
]);
var trem = FSinOsc.kr(0.05, mul: 0.2, add: 0.5);
snd = snd * env * amp * trem;
snd = snd + CombL.ar(snd, 0.5, 0.5, 4, mul: dly);
Out.ar(out, Pan2.ar(snd, pos));
)
``````

where the interesting change is the `EnvGen` definition which uses a series of impulses to trigger the env, so the envelope loops continuously open and closed at the rate given to `Impulse`. I then create 4 of these to play a chord

``````(
Synth(\boop, [\freq, 48.midicps, \atk, 5, \rel, 5, \rate, 0.04, \pos, -0.3]);
Synth(\boop, [\freq, 64.midicps, \atk, 5, \rel, 5, \rate, 0.08, \pos, 0.3]);
Synth(\boop, [\freq, 55.midicps, \atk, 6, \rel, 1, \rate, 0.1]);
Synth(\boop, [\freq, 71.midicps, \atk, 7, \rel, 3, \rate, 0.06]);
)

``````

each note has a different envelope shape, and rate. For some variation there’s a little “melody” which has some added delay

``````a = Synth(\boop, [\freq, 74.midicps, \rate, 0.8, \dly, 0.5]);
``````

Some ValhallaVintageVerb (1970s plate) was added in Reaper. I like how this one turned out, and I think it’d be possible to create endless variations and performances by MIDI-mapping the parameters.