Skip to content

Instantly share code, notes, and snippets.

@ryanlaws
Last active July 11, 2021 00:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ryanlaws/5df2118a5fcd99ad68cfcc388044e2fd to your computer and use it in GitHub Desktop.
Save ryanlaws/5df2118a5fcd99ad68cfcc388044e2fd to your computer and use it in GitHub Desktop.
FC2 working set

//JUNK s.quit; s.boot; (~stopwatch = Routine { var ct = 0; loop { ct.postln; 1.wait; ct = ct + 1 } }.play;) ~stopwatch.stop; Ndef.clear s.options.recHeaderFormat = 'wav' s.prepareForRecord s.record; s.stopRecording;

~buf = Buffer.alloc(s, 12 * 48000, 4);

// SOURCE / START (Ndef(\micAndTrig).fadeTime = 2; Ndef(\micAndTrig, {|thresh=0.01, dec=0.5| var in = SoundIn.ar([0, 1]); var trig = Mix.ar((in - thresh)).max(0).sign.lagud(0, 0.01).sign; var env = (Slope.ar(trig) > 0).lagud(0, dec); in = (in * 10).tanh * env; [in[0], in[1], trig, env]; }).play) (Ndef(\mic, { Ndef.ar(\micAndTrig)[[0,1]] }); Ndef(\trig, { Ndef.ar(\micAndTrig)[2] }); Ndef(\env, { Ndef.ar(\micAndTrig)[3] });

Ndef(\mouse8, { MouseX.kr(0, 8).poll(2) }); Ndef(\mouse12, { MouseX.kr(0, 8).poll(2) }); )

Ndef(\micAndTrig).set(\thresh, 0.01);

// DELAY (Ndef(\delay).fadeTime = 5; Ndef(\delay, {|speed=0.2, center=0.5, radius=0.001, decay=5, base=5, width=19000| var in = \in.ar(0!2) + \in2.ar(0!2) + \in3.ar(0!2); LPF.ar( HPF.ar( CombL.ar(in, 5, SinOsc.kr(speed, [0, 0.2], radius, center), decay, 0.3), base), width); }).play) (Ndef(\delay) <<>.in Ndef(\mic); Ndef(\delay).lag(\center, 5); Ndef(\delay).lag(\radius, 2); Ndef(\delay).lag(\base, 3); Ndef(\delay).lag(\width, 3);)

Ndef(\delay).set(\center, 1/4) Ndef(\delay).set(\center, 0.2167) Ndef(\delay).set(\radius, 0.001) Ndef(\delay).set(\speed, 60.5) Ndef(\delay).set(\base, 3000) Ndef(\delay).set(\width, 5000) Ndef(\delay).set(\decay, 10)

// RECORDER (~bufWr = { var start = 0, end = 12, length = end - start; var env = EnvGen.kr(Env.perc(0, length), doneAction: 2); var phasor = Phasor.ar(0, 1, start * SampleRate.ir, end * SampleRate.ir); BufWr.ar(Ndef.ar(\delay), ~buf, phasor); Silence.ar; }.play) the quick brown fox jumps over the lazy dog the quick brown fox jumps

~buf.plot;

// CORE CLOCK (Ndef(\phasor, {|len=64, rate=1| Phasor.ar(0, SampleRate.ir.reciprocal * rate, 0, len); })) (Ndef(\phasor).lag(\rate, 20); Ndef(\phasor).lag(\len, 8);)

Ndef(\phasor).set(\rate, 0.000) Ndef(\phasor).set(\len, 64)

// PLAYER ~id = \p1; (Ndef(~id).fadeTime = 2; Ndef(~id, { |mod=1, mod2=9001, offset=2, offset0=0 pre=3, post=0.3, speed=1 hp=20, lpbase=18000, lpenv=0, envpow=1| var phasor, trigp, osc, trigo, env, lp; phasor = Ndef.ar(\phasor) % mod + offset0 % mod2 * speed; osc = BufRd.ar(4, ~buf, phasor + offset * 48000, 0, 1); env = osc[0][3] ** envpow; osc = osc[0][[0, 1]];

lp = (env * lpenv + lpbase).max(5).min(20000);
LPF.ar(HPF.ar(osc, hp), lp, pre).tanh * post;

}).play; ) (Ndef(~id).lag(\mod, 0); Ndef(~id).lag(\mod2, 0); Ndef(~id).lag(\offset, 2); Ndef(~id).lag(\offset, 2); Ndef(~id).lag(\pre, 1); Ndef(~id).lag(\post, 8); Ndef(~id).lag(\speed, 5);)

~id = \p3; Ndef(~id) <<>.offset Ndef(\mouse8); Ndef(~id).set(\offset, 1.8)

~id = \p3; Ndef(~id).set(\post,0.5); Ndef(~id).set(\pre,20);

Ndef(~id).set(\hp,20, \lpbase,500, \lpenv,9000, \envpow,10); Ndef(~id).set(\hp,4000, \lpbase,18000);

Ndef(~id).set(\mod,2) Ndef(~id).set(\mod2,9999) Ndef(~id).set(\offset,3.76) ~id = \p2 Ndef(~id).set(\speed,1)

// THREE... (Ndef(\p1) <<>.offset Ndef(\mouse8); Ndef(\p2) <<>.offset Ndef(\mouse8); Ndef(\p3) <<>.offset Ndef(\mouse8);) // TWO... (Ndef(\p1).lag(\offset, 12); Ndef(\p2).lag(\offset, 12); Ndef(\p3).lag(\offset, 12);) // ONE... (Ndef(\p1).lag(\mod, 12); Ndef(\p2).lag(\mod, 12); Ndef(\p3).lag(\mod, 12); Ndef(\p1).set(\mod, 1/60); Ndef(\p2).set(\mod, 1/76); Ndef(\p3).set(\mod, 1/107);) // ZERO (Ndef(\delay) <<>.in Ndef(\p1); Ndef(\delay) <<>.in2 Ndef(\p2); Ndef(\delay) <<>.in3 Ndef(\p3);)

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