Skip to content

Instantly share code, notes, and snippets.

@scztt
Created April 13, 2020 18:44
Show Gist options
  • Select an option

  • Save scztt/5775878f035de8a7cc0977137809ddb2 to your computer and use it in GitHub Desktop.

Select an option

Save scztt/5775878f035de8a7cc0977137809ddb2 to your computer and use it in GitHub Desktop.
(
///////////////////////////////////
// "Forked" event stream trick
Ndef(\sound, { DC.ar([0,0]) }).play;
// A base pattern.....
Pdef(\basePattern, Pbind(
// Point to my ndef
\group, Ndef(\sound).group,
\out, Ndef(\sound).bus,
\instrument, {
var sig = WhiteNoise.ar([1,1])
* Env.perc(0.01, \amp.kr * 0.2).kr(gate:\gate.kr(1), doneAction:2)
* \amp.kr;
Out.ar(\out.kr, sig);
},
\dur, 1/3,
\amp, Pfunc({ rrand(0.2, 0.7) }),
\octave, 3,
// \scale, Scale.chromatic,
\degree, Pseq([0, 2, 4, 7], inf),
\legato, 0.3,
\bumpDelay, Prand([true] ++ (false ! 20), inf)
));
// A pattern for modifying my post-processing Ndef
Pdef(\bumpDelay, Pbind(
\type, \set,
\id, Pfunc({ Ndef(\postProcess).group }),
\args, [\bumpDelay, \freq],
\bumpDelay, Prand([0.3, 0.5, 1], inf),
\degree, Pseq([0, 2, 4, 2], inf),
\octave, 4
));
// A player
Pdef(\player,
Ppar([ // two parallel streams...
// just forward the \basePattern event along
Pfunc({ |e| e }),
// second stream only plays when \bumpDelay, else it's just silent
Pif(
Pfunc({ |e| e.bumpDelay }), // if our condition is true....
Pdef(\bumpDelay), // then use this pattern
Pfunc({ |e| Event.silent(e.dur) }) // else, don't do anything
)
])
<> Pdef(\basePattern)
).play;
// A static post-process stage.
Ndef(\postProcess, {
var sig, delay, delayAmt;
sig = Ndef(\sound).ar(2);
delayAmt = Decay.kr(\bumpDelay.tr(0), 0.5);
delay = sig * delayAmt;
delay = LPF.ar(delay, 3000);
delay = CombC.ar(delay, 1, \freq.kr(100).reciprocal, 5);
sig = LPF.ar(sig, 2000) + delay;
}).play;
)
@salkin-mada

salkin-mada commented Apr 13, 2020

Copy link
Copy Markdown

thanks! really really nice trick.

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