Skip to content

Instantly share code, notes, and snippets.

@celesteh
Created April 6, 2016 16:37
Show Gist options
  • Save celesteh/96389ef8cac87306dcbcb60038ea9dd4 to your computer and use it in GitHub Desktop.
Save celesteh/96389ef8cac87306dcbcb60038ea9dd4 to your computer and use it in GitHub Desktop.
(
var syn, flag = true;
var doPMonoArtic = {arg dur = 60, release=2, pan=0.5;
var lffreqs, sinfreqs, durs;
lffreqs = Array.fill(16,{[1.0.sum3rand.abs, (1-1.0.sum3rand.abs)].choose * 200});
sinfreqs = Array.fill(16,{[1.0.sum3rand.abs, (1-1.0.sum3rand.abs)].choose * 200});
durs = Array.fill(16,{1.rrand(9) * 0.125});
PmonoArtic(\stoch,
\dur, Pwhite(0.5, 2),
\lffreq, Pseq(lffreqs.pyramid(1.rrand(11)),4),
\sinfreq, Pseq(sinfreqs.pyramid(1.rrand(11)),4),
\pan, Pwhite(pan.neg, pan),
\db, Pwhite(-2.0, -6.0),
\legato, Pwhite(0.7, 3),
\stretch, Pwhite(0.9, 1.1),
\strum, Pwhite(0.0, 1.0),
\wet, Penv([0,0, 1, 1],[1, dur-1, 1]),
\addAction, \addToHead,
\release, Pn(release),
\flag, Pfunc({flag})
)
};
s.waitForBoot({
SynthDef(\stoch, {arg pan=0, amp=0.2, out=0, lffreq=200, sinfreq=200, gate=1, wet=0, release=2;
var sig, panner, env, dry;
wet = Lag.kr(wet);
dry = 1-wet;
sig=Gendy4.ar(6,6,
LFPulse.kr(
Lag.kr(lffreq, Rand(0.05, 0.2)), 0, 0.4, 1.0),
SinOsc.kr(
Lag.kr(DelayL.kr(sinfreq), Rand(0.05, 0.2)), 0, 0.5),mul:0.2);
env = EnvGen.kr(Env.asr(releaseTime:release), gate, doneAction:2);
panner = (dry * Pan2.ar(sig, Lag.kr(pan))) + (wet * GVerb.ar(sig, Rand(8.0,12.0)));
panner = panner * env * Lag.kr(amp, Rand(0.05, 0.2));
Out.ar(out, panner.tanh);
}).add;
SynthDef(\limiter, {|in=0, out=0|
var input;
input = In.ar([in, in+1]);
input = LeakDC.ar(input.tanh);
ReplaceOut.ar(out, input)
}).add;
s.sync;
flag = true;
s.record;
s.sync;
syn = Synth(\limiter, addAction:'addToTail');
s.sync;
{60.wait; flag = nil; "end".postln}.fork;
Pseq([
Ptpar([
0, doPMonoArtic.value(),
10, doPMonoArtic.(55),
20, doPMonoArtic.(50),
30, doPMonoArtic.(45),
40, doPMonoArtic.value(),
], 1),
Ptpar([
0, Pbind(
\freq, Prout({
flag = true;
\rest.yield;
flag = nil
})
),
0.125, doPMonoArtic.value(1.1, 4, 0.1)
], 1),
Pbind(
\dur, 5,
\freq, Prout({
\rest.yield;
syn.free;
s.stopRecording
})
)
], 1).play
})
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment