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));
}).add();
)

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.