Last active
July 11, 2021 00:24
-
-
Save ryanlaws/5df2118a5fcd99ad68cfcc388044e2fd to your computer and use it in GitHub Desktop.
FC2 working set
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//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