|
- (
- /*
-
- __ ___ _ __ ___ __ _ ___ ___ ___ _ _ __
- / /\ | |_) | |_/ / / | | \ __ / /\ | |\/| / / \ | |_) | |_) | |_| | | / /`
- /_/--\ |_| \ |_| \ /_/ |_|_/ /_/) /_/--\ |_| | \_\_/ |_| \ |_| |_| | |_| \_\_,
-
- by Luka Prinčič. https://lukaprincic.si
-
-
- LICENCE? Oh whatever, just take what you need from it, learn,
- create, publish. A lot of what's in here has been taken and
- learned from others and reworked in one way or another.
-
- For the sake of ___, it's
- copyright Luka Prinčič,
- released under GNU GPL licence and/or Peer Production Licence
-
- To run this album, you need SuperCollider (3.11 at the time of
- writing) and SC3-plugins:
-
- https://supercollider.github.io/
- https://supercollider.github.io/sc3-plugins/
-
- Once installed, open this file (it needs to have .scd extension
- not .txt) in SCIDE - SuperCollider code editor (development
- environment) and choose 'Evaluate file' from 'Language' menu.
-
- Thank you for listening!
-
- Recording of this album is available via Kamizdat record label
- under conditions of Creative Commons BY-SA licence.
-
- */
-
-
- // -----------------------------------------------------------------------------------
-
- // before boot, raise memory?
- #[\internal, \local].do { |s|
- s = Server.perform(s);
- s.options.memSize = 2097152; // 2 gigs
- };
-
- Server.default.waitForBoot {
- fork {
- ">>> THIS IS THE START, MY FRIEND".postln;
-
- 0.1.wait;
-
- // prep buses and FX
- "--- prepping bussess ...".postln;
-
- ~mainOut.free;
- ~mainOut = Bus.audio(s,2);
-
- ~reverBus.free;
- ~reverBus = Bus.audio(s, 2);
-
- ~wranglerBus.free;
- ~wranglerBus = Bus.audio(s,2);
-
- 0.1.wait;
-
- // FX synthdefs
- "--- loading synthdefs for FX...".postln;
-
- SynthDef(\GreyholeVerb, {
- arg inBus, outBus, revWet=1, feedback = 0.5, lag = 10, dtime = 3, size = 4, diff = 8 ;
- var snd = In.ar(inBus, 2);
- var reverb = Greyhole.ar(snd, dtime, size: size, diff: diff, feedback: feedback);
- revWet = Lag.kr(revWet, lag);
- snd = snd + (reverb * revWet) * 0.5;
-
- Out.ar(outBus, snd);
- }).add;
-
- SynthDef(\dlywrangler, {
- arg out=0, in, wet=0.1, wet2=0.4;
- var snd, dly2;
-
- snd = In.ar(in,2);
-
- dly2 = CombN.ar(HPF.ar(snd,300),
- 1,
- [3/8,5/8] * LFNoise1.kr(0.4).range(0.98,1.02),
- 6,
- mul: LFNoise1.kr(0.1).range(0.4,0.1) * 2 * wet2);
-
- snd = CombN.ar(snd,
- 1,
- Lag.ar(LFNoise0.ar(1).range(0.01,0.1),0.1),
- 3,
- mul:wet) + snd;
-
- snd = Limiter.ar(snd, 0.8);
- snd = snd + dly2;
-
- Out.ar(out, snd);
- }).add;
-
- SynthDef(\mainOutFx, {
- arg inBus, amp=1, lag=0.5, thresh=0.8, outBus;
- var input, snd;
- input = In.ar(inBus, 2);
- snd = Limiter.ar(input, thresh);
- amp = VarLag.kr(amp+0.000001, lag, 0, \cub) - 0.000001;
- snd = snd * amp;
- snd = snd.softclip;
- Out.ar(outBus, snd);
- }).add;
-
- 0.1.wait;
-
- // effects
- "--- running effects ...".postln;
-
- //~greyholeVerb.free;
- ~greyholeVerb = Synth(\GreyholeVerb, [\inBus, ~reverBus, \outBus, ~mainOut,
- \revWet, 1], addAction:\addToTail);
-
- //~dlywrang1.free;
- ~dlywrang1 = Synth("dlywrangler",
- [\out, ~mainOut, \in, ~wranglerBus], addAction:\addToTail);
-
- //~mainOutFx.free;
- ~mainOutFx = Synth(\mainOutFx,
- [\inBus, ~mainOut, \outBus, 0], addAction:\addToTail);
-
- // ---------------------------------------------------------------------------------
- "*** setup done. onto the timeline! ...".postln;
-
- 1.wait;
-
- //~greyholeVerb.set(\revWet, 0.4);
- ~greyholeVerb.set(*[revWet:0.2, feedback:0.7, lag:10, dtime:0.1, size:5, diff:0.707 ]);
-
- // darksaw
- "--- dark saw synthdef...".postln;
- SynthDef(\softSaw, {
- arg out = 0, freq = 40, oscdetune = 0.1, amp = 1, pan = 0,
- gate = 1, attackTime = 0.1, susLevel = 1.0, releaseTime = 1.0, gainBus;
- var env, snd;
- oscdetune = oscdetune * 0.1;
- amp = amp * 0.4;
-
- env = Linen.kr(gate, attackTime, susLevel, releaseTime, doneAction:2);
-
- snd = VarSaw.ar(
- freq: [freq, freq * (1.003 + oscdetune)],
- width: SinOsc.kr(0.01,0.2).range(0.05,0.095));
- snd = snd + VarSaw.ar(
- freq: [(freq*2 * (1.001 - oscdetune)),(freq*2 * (1 + oscdetune))],
- width: SinOsc.kr(0.06,0.8).range(0.2,0.8));
- snd = Balance2.ar(snd.at(0), snd.at(1), pos: pan);
- snd = snd * amp * env * In.kr(gainBus,1);
-
- OffsetOut.ar(out, snd);
- }).add;
-
- ~softSawAmpBus.free;
- ~softSawAmpBus = Bus.control(s,1);
- ~softSawAmpBus.set(1);
- ~softSawAmpBusLiner = SynthDef(\linexamp0, { |outBus, lag, val|
- Out.kr(outBus, VarLag.kr(val+0.0001, lag, 0, \cub) - 0.0001)
- }).play(s, [outBus: ~softSawAmpBus, lag: 10, val:0]);
-
- wait(0.5);
-
- "--- be back lighter...".postln;
-
- // -----------------------------------------------
- // be back lighter
-
- // synthdef
- SynthDef(\param, { arg freq = 100, sustain, amp, out=0;
- var sig;
- sig = LFPar.ar(freq: [freq, freq*2.02]);
- sig = sig * [1,0.2];
- sig = (sig * 4).softclip * 0.8;
- //sig = LPF.ar(HPF.ar(sig, 150), 3000);
- sig = LPF.ar(sig, (freq * 3).min(20000));
- sig = sig * EnvGen.kr(Env.perc(0, sustain, 0.5), doneAction:2) * amp;
- sig = Splay.ar(sig, Rand(0,0.5), 1, Rand(-0.5,0.5));
- Out.ar(out, sig);
- }).add;
-
- 0.2.wait;
-
- //set main out gain to 0
- ~mainOutFx.set(\lag, 0, \amp, 0);
- 0.2.wait;
-
- // start playing starting pattern
- Pbindef(\prand,
- \instrument, \param,
- \midinote, Prout({
- var tone0, tone1, tone2, interval, freq0, delta;
- loop {
- tone0 = 0; //rrand(0,11);
- interval = 2;
- tone1 = Scale.minor(\pythagorean).at(tone0) + [0,12].choose + 0.1;
- tone2 = Scale.minor(\pythagorean).at(tone0 + interval) + [0,12].choose;
- freq0 = [tone1,tone2] + 52;
- freq0.yield;
- }
- }),
- \dur, Prand([1,2,4,8,12,16,4,6,8], inf) / 20,
- \amp, 1.2,
- \sustain, 0.2,
- \out, ~reverBus
- ).play; " . 1.0".postln;
-
-
- // fade in:
- ~mainOutFx.set(\lag, 10, \amp, 1);
-
- 30.wait;
-
- ~greyholeVerb.set(*[revWet:0.4, feedback:0.7, lag:10, dtime:0.1, size:5, diff:0.707 ]);
-
- Pbindef(\prand,
- \midinote, Prout({
- var tone0, tone1, tone2, interval, freq0, delta;
- loop {
- tone0 = 0; //rrand(0,11);
- interval = rrand(2,4);
- tone1 = Scale.minor(\pythagorean).at(tone0) + [0,12].choose + 0.1;
- tone2 = Scale.minor(\pythagorean).at(tone0 + interval) + [0,12].choose;
- freq0 = [tone1,tone2] + 52;
- freq0.yield;
- }
- }), // - Pstutter(4, Prand([0,1] * 12,inf)),
- \sustain, Prand((2..4)/10,inf),
- ); " . 1.1 - interval rrand 2-4".postln;
-
- 30.wait;
-
- // --
-
- Pbindef(\prand,
- \midinote, Prout({
- var tone0, tone1, tone2, interval, freq0, delta;
- loop {
- tone0 = [0,2,4,6].choose; //rrand(0,11);
- interval = rrand(2,4);
- tone1 = Scale.minor(\pythagorean).at(tone0) + [0,12,24].choose + 0.1;
- tone2 = Scale.minor(\pythagorean).at(tone0 + interval) + [0,12,24].choose;
- freq0 = [tone1,tone2] + 52;
- freq0.yield;
- }
- }) - Pstutter(4, Prand([0,1] * 12,inf)),
- \sustain, Prand((4..6)/10,inf),
- ); " . 1.2 [0,2,4,6].choose".postln;
-
- 1.wait;
-
- "--- softdarksaw pattern...".postln;
- Pbindef(\sawp0,
- \instrument, \softSaw,
- \dur, 10,
- \attackTime, 5,
- \releaseTime,5,
- \legato,1,
- \degree, Pseq([ [-2,3,11,20], [-2,5,7,21] ],inf),
- \octave, 3,
- \amp, [1,0.5,0.2,0.1] * 0.7,
- \out, ~reverBus,
- \gainBus, ~softSawAmpBus
- ).play;
-
- wait(1);
-
- ~softSawAmpBusLiner.set(\lag, 0, \val, 0);
- wait(0.5);
- ~softSawAmpBusLiner.set(\lag, 20, \val, 1);
- wait(0.5);
-
- // --
-
- 30.wait;
-
- Pbindef(\prand,
- \midinote, Prout({
- var tone0, tone1, tone2, interval, freq0, delta;
- loop {
- tone0 = rrand(0,11);
- interval = rrand(2,4);
- tone1 = Scale.minor(\pythagorean).at(tone0) + [0,12,24].choose + 0.1;
- tone2 = Scale.minor(\pythagorean).at(tone0 + interval) + [0,12,24].choose;
- freq0 = [tone1,tone2] + 52;
- freq0.yield;
- }
- }) - Pstutter(4, Prand([0,1] * 12,inf)),
- \sustain, Prand((9..10)/10,inf),
- ); " . 1.3 rrand(0,11), sustain".postln;
-
- 30.wait;
-
- Pbindef(\prand,
- \midinote, Prout({
- var tone0, tone1, tone2, interval, freq0, delta;
- loop {
- tone0 = 0; //rrand(0,2);
- interval = rrand(2,4);
- tone1 = Scale.minor(\pythagorean).at(tone0) + [0,12,24].choose + 0.1;
- tone2 = Scale.minor(\pythagorean).at(tone0 + interval) + [0,12,24].choose;
- freq0 = [tone1,tone2] + 52;
- freq0.yield;
- }
- }) - Pstutter(4, Prand([0,1] * 12,inf)),
- \sustain, Prand((3..6)/10,inf),
- ); " . 1.4 back to 0".postln;
-
- ~greyholeVerb.set(*[revWet:0.7, feedback:0.7, lag:10, dtime:0.1, size:5, diff:0.707 ]);
-
- ~softSawAmpBusLiner.set(\lag, 20, \val, 0.7);
-
- 30.wait;
-
- Pbindef(\prand,
- \midinote, Prout({
- var tone0, tone1, tone2, interval, freq0, delta;
- loop {
- tone0 = 0; //rrand(0,2);
- interval = 4; //rrand(2,4);
- tone1 = Scale.minor(\pythagorean).at(tone0) + [0,12,24].choose + 0.1;
- tone2 = Scale.minor(\pythagorean).at(tone0 + interval) + [0,12].choose;
- freq0 = [tone1,tone2] + 52;
- freq0.yield;
- }
- }), // - Pstutter(4, Prand([0,1] * 12,inf)),
- \sustain, Prand((5..9)/10,inf),
- ); " . 1.5 interval 4".postln;
-
- ~greyholeVerb.set(*[revWet:0.5, feedback:0.7, lag:10, dtime:0.1, size:5, diff:0.707 ]);
-
- ~softSawAmpBusLiner.set(\lag, 20, \val, 1.5);
-
- 21.wait;
-
- Pbindef(\prand,
- \midinote, Prout({
- var tone0, tone1, tone2, interval, freq0, delta;
- loop {
- tone0 = rrand(0,11);
- interval = rrand(2,4);
- tone1 = Scale.minor(\pythagorean).at(tone0) + [0,12,24].choose + 0.1;
- tone2 = Scale.minor(\pythagorean).at(tone0 + interval) + [0,12,24].choose;
- freq0 = [tone1,tone2] + 52;
- freq0.yield;
- }
- }) - Pstutter(4, Prand([0,1] * 12,inf)),
- \sustain, Prand((9..10)/10,inf),
- ); " . 1.6 rrand0-11".postln;
-
- 30.wait;
-
- ~greyholeVerb.set(*[revWet:0.3, feedback:0.7, lag:10, dtime:0.1, size:5, diff:0.707 ]);
-
- Pbindef(\prand,
- \midinote, Prout({
- var tone0, tone1, tone2, interval, freq0, delta;
- loop {
- tone0 = 0; //rrand(0,11);
- interval = 2;
- tone1 = Scale.minor(\pythagorean).at(tone0) + [0,12].choose + 0.1;
- tone2 = Scale.minor(\pythagorean).at(tone0 + interval) + [0,12, 24].choose;
- freq0 = [tone1,tone2] + 52;
- freq0.yield;
- }
- }),
- \sustain, Prand((4..9)/10,inf),
- ).play; " . 1.7 tone0:0".postln;
-
- ~softSawAmpBusLiner.set(\lag, 20, \val, 0.5);
-
- 10.wait;
-
- ~greyholeVerb.set(*[revWet:0.6, feedback:0.7, lag:10, dtime:0.1, size:5, diff:0.707 ]);
-
- Pbindef(\prand,
- \midinote, Prout({
- var tone0, tone1, tone2, interval, freq0, delta;
- loop {
- tone0 = 0; //rrand(0,11);
- interval = 2;
- tone1 = Scale.minor(\pythagorean).at(tone0) + [0,12, 24].choose + 0.1;
- tone2 = Scale.minor(\pythagorean).at(tone0 + interval) + [0,12].choose;
- freq0 = [tone1,tone2] + 52;
- freq0.yield;
- }
- }),
- \sustain, Prand((4..9)/10,inf),
- ).play; " . 1.8 24".postln;
-
- 10.wait;
-
- Pbindef(\prand,
- \midinote, Prout({
- var tone0, tone1, tone2, interval, freq0, delta;
- loop {
- tone0 = 0; //rrand(0,11);
- interval = 2;
- tone1 = Scale.minor(\pythagorean).at(tone0) + [0,12, 24].choose + 0.1;
- tone2 = Scale.minor(\pythagorean).at(tone0 + interval) + [0,12, 24].choose;
- freq0 = [tone1,tone2] + 52;
- freq0.yield;
- }
- }),
- \sustain, Prand((4..9)/10,inf),
- ).play; " . 1.9 24 & 24".postln;
-
- 10.wait;
-
- Pbindef(\prand,
- \midinote, Prout({
- var tone0, tone1, tone2, interval, freq0, delta;
- loop {
- tone0 = rrand(0,11);
- interval = rrand(2,4);
- tone1 = Scale.minor(\pythagorean).at(tone0) + [0,12,24].choose + 0.1;
- tone2 = Scale.minor(\pythagorean).at(tone0 + interval) + [0,12,24].choose;
- freq0 = [tone1,tone2] + 52;
- freq0.yield;
- }
- }) - Pstutter(4, Prand([0,1] * 12,inf)),
- \sustain, Prand((9..10)/10,inf),
- ); " . 1.10 rrand0-11".postln;
-
- ~softSawAmpBusLiner.set(\lag, 60, \val, 0);
-
- 30.wait;
-
- Pbindef(\sawp0).stop;
-
- ~greyholeVerb.set(*[revWet:0.8, feedback:0.7, lag:10, dtime:0.1, size:5, diff:0.707 ]);
-
- Pbindef(\prand,
- \midinote, Prout({
- var tone0, tone1, tone2, interval, freq0, delta;
- loop {
- tone0 = 0; //rrand(0,11);
- interval = 2;
- tone1 = Scale.minor(\pythagorean).at(tone0) + [0,12].choose + 0.1;
- tone2 = Scale.minor(\pythagorean).at(tone0 + interval) + [0,12].choose;
- freq0 = [tone1,tone2] + 52;
- freq0.yield;
- }
- }),
- \sustain, Prand((2..5)/10,inf),
- ).play; " . 1.11 tone0".postln;
-
- 10.wait;
-
- // sure one could use Pseg here:
- Pbindef(\prand, \amp, -1.dbamp); 2.wait;
- Pbindef(\prand, \amp, -2.dbamp); 2.wait;
- Pbindef(\prand, \amp, -3.dbamp); 2.wait;
- Pbindef(\prand, \amp, -4.dbamp); 2.wait;
- Pbindef(\prand, \amp, -5.dbamp); 2.wait;
- Pbindef(\prand, \amp, -6.dbamp); 2.wait;
- Pbindef(\prand, \amp, -7.dbamp); 2.wait;
- Pbindef(\prand, \amp, -8.dbamp); 2.wait;
- Pbindef(\prand, \amp, -9.dbamp); 10.wait;
-
- Pbindef(\prand).stop;
-
- // gcd mod ---------------------------------------------------------
-
- "--- gcdmod...".postln;
- SynthDef(\gcdmod, {
- arg outBus, amp=0.1, gate=1;
- var env;
- var a = TDuty.ar(Dseq((0..3), inf) + 5 * SampleDur.ir);
- var b = TDuty.ar(Dseq((3..0), inf) + 5.01 * SampleDur.ir);
- var mod = 50;
- var t = PulseCount.ar(a) % mod;
- var u = PulseCount.ar(b) % mod;
- var n, j, d, e, c;
-
- d = LocalIn.ar(2);
- n = gcd(t, u + [0, 1]);
- e = n.linexp(0, mod, 70, 10000);
- j = SinOsc.ar(e);
- LocalOut.ar(j * d);
-
- c = CombC.ar(j, 1, [0.009,0.007,0.008, 0.006] * LFNoise1.ar([0.01,0.01]).range(1.3,0.7), 30, mul:0.05);
- j = j * LFNoise1.ar(0.2).range(0,0.5) + Splay.ar(c);
- j = Greyhole.ar(j, damp:0.5, diff:0.5 size:4);
- j = Limiter.ar(LPF.ar(HPF.ar(j, 100), LFNoise1.kr(0.1).exprange(200,18000)), 0.7);
- j = j * LFPulse.ar([2.2,4.4]*2, 0.96, width:LFNoise1.ar(0.2).range(0.8,0.95)).range(LFNoise1.ar(0.1).range(0,1),1);
- j = j + LFPulse.ar([2.2,4.4], 0.96, mul: LFNoise1.kr(1/10).range(0,0.5) * Line.kr(0,1,30));
- j = LeakDC.ar(j);
-
- env = Linen.kr(gate, 0, 1, 0, 2);
- j = j * env * amp;
- Out.ar(outBus, j);
- }).add;
-
- SynthDef(\dNoz, {
- arg out=0, gate=1, amp=0.1, envattackTime=0.001, release=0.001;
- var snd, env;
- env = Linen.kr(gate, envattackTime, 1, release, doneAction:2);
- snd = WhiteNoise.ar(1);
- snd = snd + SinOsc.ar(SinOsc.kr(10).range(40,60), mul:0.2);
- snd = snd + Pulse.ar(SinOsc.kr(12).range(40,60), mul:0.1);
- snd = snd.clip2(0.8);
-
- snd = LPF.ar(snd, LFNoise2.ar(0.4).range(60,100), mul:3);
-
- snd = snd.dup;
- snd[1] = DelayL.ar(snd[1], 0.05, SinOsc.kr(0.2).range(0.001,0.003));
- snd = snd * env * amp;
- Out.ar(out, snd);
- }).add;
-
- 1.wait;
-
- Pbindef(\gcdmodp,
- \instrument, \gcdmod,
- \dur, Pseq([240]),
- \amp, 0.7,
- \legato, 1,
- \outBus, ~mainOut,
- ).play;
-
- 30.wait;
-
- Pbindef(\dBoz,
- \instrument, \dNoz,
- \dur, Pseq([Rest(5), 10],14),
- \amp, 0.4,
- \legato, 1,
- \out, ~mainOut,
- ).play; "--- dBoz dNoz...".postln;
-
- wait(190);
-
- "--- akj...".postln;
- // AKJ --------------------------------------------------------
- SynthDef(\akjDisChord, {
- arg freq=300, amp=0.1, out=0, gate=1;
- var snd, env;
-
- freq = [freq,freq*1.01];
- snd = LFPar.ar(freq) * 0.3
- + (LFTri.ar(freq*16/19, mul:0.3))
- + (Pulse.ar(freq*21/40, mul:0.1))
- + (SinOsc.ar(freq/8.01, mul:4).clip2(0.3));
- env = EnvGen.kr(Env([0,1,0],[20,30], \cub, 1), gate, doneAction:2);
- snd = Splay.ar(snd);
- snd = snd * env * amp;
-
- Out.ar(out, snd);
- }).add;
-
- SynthDef(\akjBaz, {
- arg freq=300, amp=0.1, out=0, gate=1;
- var snd, env;
-
- snd = SinOsc.ar(freq/4, mul:0.7)!2;
- snd = snd * Lag.ar(LFPulse.ar(freq/8.02, 0.5).range(1,0),0.005);
- snd = snd.softclip(0.5) * 1.5 ;
-
- env = Linen.kr(gate, 0,1,0, 2);
-
- snd = snd * env * amp;
-
- Splay.ar(snd);
- Out.ar(out, snd);
- }).add;
-
- SynthDef(\akjClick, {
- arg out=0, gate=1, freq=440, amp=0.1, releaseTime=0.1;
- var snd, env;
-
- snd = LFPulse.ar([freq, freq * 2], width: LFNoise1.ar(0.1).exprange(0.001,0.004));
- snd = snd + (WhiteNoise.ar(1) * snd);
- snd = HPF.ar(snd, 200);
- env = EnvGen.ar(Env.perc(0,releaseTime));
- snd = snd * env * amp * Linen.kr(gate, 0, 1, releaseTime, 2);
- snd = Splay.ar(snd);
-
- Out.ar(out, snd);
- }).add;
-
- wait(0.2);
-
- Pbindef(\akjDisChordp, *[
- instrument: \akjDisChord,
- freq:300,
- dur: Pseq([260]),
- legato: 1.1,
- amp: 0.8,
- out: ~mainOut
- ]).play;
-
- wait(60);
-
- Pbindef(\akjClickp, *[
- instrument: \akjClick,
- dur: Pseq([
- Pn(1/8, 7), Rest(1/8), // 1
- Rest(1), // 1
- Pn(1/4, 3), Rest(3/8), Pn(1/8, 1),
- Pn(1/4, 3), Rest(3/8), Pn(1/8, 1),
- Pn(1/4, 3), Rest(4/8),
- Pn(1/8, 7), Rest(1/8),
- Prand([ Rest(1), Pn(1/6,6) ]),
- Pn(1/8, 3), Rest(1/8),
- Prand([ Rest(1.25), Pn(1/4, 5) ]),
- Prand([ Pn(1/8, 3), Pn(1/16, 6) ]), Rest(1/8),
- ],inf),
- amp: 9/20,
- releaseTime: 0.3,
- freq:1,
- out: ~mainOut
- ]).play;
-
- wait(60);
-
- Pbindef(\akjBazp, *[
- instrument: \akjBaz,
- freq: 300,
- dur: 10,
- amp: 0.3,
- legato: 0.20,
- out: ~mainOut
- ]).play;
-
- wait(120);
-
- Pbindef(\akjClickp).stop;
- Pbindef(\akjBazp).stop;
-
- wait(30);
-
-
- "--- shippo...".postln;
- // SHIPPO -----------------------------------------------------------
-
- SynthDef(\shippo, {
- arg amp=0.1, gate=1, out=0, freq=100;
- var snd, env, rev;
- freq = [freq/2, freq * 0.99, freq * 1.51];
- snd = Pulse.ar( freq * LFNoise1.ar(1/10).range(1,1.03), mul:0.4 )
- ; // Lag.ar(LFPulse.ar(1/5, iphase:0.98, width:0.1));
- snd = Splay.ar(snd,spread:0.6);
- snd = LPF.ar(snd, LFNoise1.ar(1/4).exprange(500,10000));
- env = EnvGen.kr(Env.adsr(0.001,0,1, 0.1, 1), gate, doneAction:0);
- snd = snd * env;
- snd = snd;
- rev = Array.fill (8, {
- CombL.ar(
- snd,
- 0.2,
- LFNoise1.ar(1/3).range(0.98,1.02) * rrand(0.01, 0.3),
- 7)
- });
- rev = Splay.ar(rev);
- rev = LeakDC.ar(rev);
- rev = HPF.ar(rev, 100);
- snd = snd + rev;
- snd = Limiter.ar(snd, 0.8);
- snd = snd * amp;
- DetectSilence.ar(snd, doneAction:2);
- Out.ar(out, snd);
- }).add;
-
- wait(0.1);
-
- Pbindef(\shippoP, *[
- instrument: \shippo,
- degree: 4,
- octave: 3,
- //dur: Pseq([3,5,10] / 8, inf),
- dur: Pseq([4,8,12] / 8, inf),
- legato:0.3,
- amp: 0.1,
- out: ~mainOut
- ]);
- Pbindef(\shippoP).quant(1);
- Pbindef(\shippoP).play;
-
- Pbindef(\akjDisChordp).stop;
-
- wait(10);
- Pbindef(\shippoP, \amp, 0.2); wait(3);
- Pbindef(\shippoP, \amp, 0.3); wait(3);
- Pbindef(\shippoP, \amp, 0.4); wait(3);
- Pbindef(\shippoP, \amp, 0.5); wait(3);
- Pbindef(\shippoP, \amp, 0.6); wait(20);
-
- // midline ---------------------------------------------------------
- "--- sawline ...".postln;
- SynthDef(\sawLine, {
- arg out=0, freq=440, gate=1, amp=1, alag=10;
- var snd, env, gen, numosc;
-
- numosc = 10;
- env = Env.adsr(20, 0, 1, 30, 1, \sin);
- gen = EnvGen.kr(env, gate, doneAction:2);
-
- //faderosc = SinOsc.ar(1/60).range(-1,2).min(1).max(0);
-
- snd = Array.fill(numosc, {
- var local, lfreq;
- lfreq = [freq, freq*2.01, freq/1.99 ];
- //lfreq = [freq, freq * 1.98, freq * 0.51];
- //lfreq = freq;
- local = Saw.ar(rrand(lfreq, lfreq * 1.02 ) * LFNoise1.kr(0.3).range(1, 1.01), -10.dbamp * [0.5, 0.3, 0.3]);
- local = Mix(local);
- });
- snd = Splay.ar(snd);
- snd = LPF.ar(snd, LFNoise1.ar(0.06).exprange(3000,10000));
- snd = CombL.ar(snd, 1, LFNoise1.ar(0.1).range([0.5,0.65],[0.53,0.68]), 15, -1.dbamp) + snd;
-
- snd = snd * gen;
- snd = snd * Lag.kr(amp, alag);
- Out.ar(out, snd);
- }).add;
-
- wait(0.5);
-
- Pbindef(\midlineP,
- \instrument, \sawLine,
- \dur, 8,
- \degree, 6,
- \octave, 7,
- \out, ~reverBus,
- \amp, 0.4,
- \ctranspose, 6-12,
- \scale, Scale.minor(\just),
- ).play;
-
- // --------------------------------------------------------------------
-
- wait(30);
- Pbindef(\midlineP, \degree, 1);
- wait(20);
- Pbindef(\midlineP, \degree, 4);
- wait(20);
- Pbindef(\midlineP, \degree, 6);
- wait(20);
- Pbindef(\midlineP, \degree, 4);
- wait(10);
- Pbindef(\midlineP, \octave, [5,7]);
- wait(20);
- Pbindef(\shippoP).stop;
-
- wait(5);
-
- // --- wrangle mel ------------------------------------------------------
- "--- wranglemel ...".postln;
-
- SynthDef(\sin1, {
- arg freq=440, out=0, gate=1, amp=0.1, release=0, cutoff=10, rq=0.5;
- var snd, env;
-
- freq = [freq,freq*1.01];
- env = Linen.kr(gate, attackTime: 0.001, releaseTime: release, doneAction:2);
- snd = SinOsc.ar(freq) + Saw.ar(freq*1.004, mul:0.3) + Pulse.ar(freq*0.996, mul:0.4);
- snd = snd + snd.fold2(0.65);
- snd = (snd * 0.5) + (snd.wrap2(0.64) * 0.5) * 2;
- cutoff = cutoff * 0.1;
- cutoff = freq.pow(cutoff);
- cutoff = cutoff.max(100);
- cutoff = cutoff.min(18000);
- snd = RLPF.ar(snd, cutoff, rq);
- snd = snd * env;
- snd = snd * amp;
-
- OffsetOut.ar(out, snd);
- }).add;
-
- wait(0.5);
-
- // basics
- Pbindef(\y3,
- \instrument, \sin1,
- \degree, Pseq( [ 0, 2, -1, 5, -2, 6 ], inf),
- \ctranspose, 6-12,
- \octave, 5,
- \scale, Scale.minor(\just),
- \mtranspose, 0,
-
- \cutoff, Pstutter(16, Pseq([Pseq((13..18)),Pseq((17..12))].min(11),inf)),
- \rq, Prand([0.2,0.3,0.5]*1,inf),
- \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.2, inf),
- \release, 0.1,
-
- \dur, 1/8,
- \amp, [0.2,0.2,0.1] * Pseq([Prand([1,0.7]), 0.8, 0.9], inf) * 0.4,
-
- \dlywet, Pstutter(8, Pfunc({~dlywrang1.set(\wet, rrand(0, ((0..1) * 0.1).choose ) ) })),
- \out, ~wranglerBus,
- );
- Pbindef(\y3).quant=1;
- Pbindef(\y3).play;
-
- wait(20);
-
- Pbindef(\midlineP, \degree, Pseq([6,1,4], inf), \dur, 40 );
- Pbindef(\midlineP, \amp, 0.1 );
-
- Pbindef(\y3, \cutoff, Pstutter(16, Pseq([Pseq((13..18)),Pseq((17..12))].min(13),inf)));
- Pbindef(\y3, \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.3, inf));
-
- wait(15);
-
- Pbindef(\y3, \cutoff, Pstutter(16, Pseq([Pseq((13..18)),Pseq((17..12))].min(14),inf)));
- Pbindef(\y3, \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.4, inf));
-
- wait(15);
-
- Pbindef(\y3, \cutoff, Pstutter(16, Pseq([Pseq((13..18)),Pseq((17..12))].min(15),inf)));
- Pbindef(\y3, \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.5, inf));
- Pbindef(\y3, \octave, [4,5]);
- Pbindef(\y3, \degree, Pseq( [ [7,0], 2, -1, Prand([4,5]), Prand([-2,Pseq([2,6])]) ], inf));
-
- wait(30);
-
- Pbindef(\y3, \cutoff, Pstutter(16, Pseq([Pseq((13..18)),Pseq((17..12))].min(16),inf)));
- Pbindef(\y3, \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.6, inf));
- Pbindef(\y3, \octave, [4,5,6]);
- Pbindef(\y3, \mtranspose, Pstutter(16, Pseq([Pn(0,4), 3,5],inf)));
-
- wait(30);
-
- Pbindef(\y3, \mtranspose, Pstutter(16, Pseq([7, Pn(0,3), 3, 5 ],inf)));
-
- // --- whitenoise hihat ----------------------------------------------------
- "--- wHat ...".postln;
-
- SynthDef(\wHat, {
- arg outBus=0, amp=0.1, freq=2000, rq=0.5, gate=1, release=0.002, pan=0;
- var snd, env;
- env = EnvGen.kr(Env.cutoff(release), gate, doneAction:2);
- snd = BPF.ar(WhiteNoise.ar, freq, rq, amp);
- snd = HPF.ar(snd, 1000);
-
- snd = snd * env;
-
- OffsetOut.ar(outBus, Pan2.ar(snd,pan));
- }).add;
-
- Pbindef(\wHatp,
- \instrument, \wHat,
- \dur, 1/8,
- \freq, Prand([1,2,3,4] * 300 + 2500, inf),
- \rq, Prand([0.8,0.7,0.6], inf),
- \pan, Prand((1..10) * 0.1 - 0.5,inf),
- \amp, Prand((1..10) * 0.02 + 0.3,inf),
- \outBus, ~mainOut, // wrangler?
- \legato, Pseq([Pn(0.05,7),Prand((1..10)/80+0.05,inf)],inf),
- );
-
- Pbindef(\wHatp).quant(1);
-
- wait(22/8);
-
- Pbindef(\wHatp).play;
-
- wait(30);
-
- Pbindef(\midlineP).stop;
-
- //wait(30);
-
- Pbindef(\wHatp, \legato, Pseq([ Pseq((1..24)/24,1), Pseq([Pn(0.05,7),Prand((1..10)/80+0.05,inf)],inf)]));
- wait(24/8);
-
- Pbindef(\y3, \cutoff, Pstutter(16, Pseq([Pseq((13..18)),Pseq((17..12))].min(17),inf)));
- Pbindef(\y3, \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.7, inf));
- Pbindef(\y3, \octave, [4,5,6] + Pwrand([0,2,1, 3],[0.7,0.1,0.1,0.1],inf));
-
- wait(30);
-
- Pbindef(\y3, \cutoff, Pstutter(16, Pseq([Pseq((13..18)),Pseq((17..12))].min(18),inf)));
- Pbindef(\y3, \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.8, inf));
- Pbindef(\y3, \octave, Pstutter(32, Pseq( [5, [4,5], [4,5,6] ], inf), inf) + Pwrand( [0,1,1,-1], [0.7,0.1,0.1,0.1], inf));
- Pbindef(\y3, \dlywet, Pstutter(8, Pfunc({~dlywrang1.set(\wet, rrand(0, ((0..4) * 0.1).choose ) ) })));
-
- wait(30);
-
- Pbindef(\y3, \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.9, inf));
- Pbindef(\y3, \octave, Pstutter(32, Pseq( [5, [4,5], [4,5,6] ], inf), inf) + Pwrand( [0,1,2,-1], [0.7,0.1,0.1,0.1], inf));
-
- wait(30);
-
- Pbindef(\wHatp, \legato, Pseq([ Pseq((1..24)/24,1), Pseq([Pn(0.05,7),Prand((1..10)/80+0.05,inf)],inf)]));
- wait(20/8);
- Pbindef(\wHatp).stop;
-
- Pbindef(\y3, \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.3, inf));
- Pbindef(\y3, \cutoff, Pstutter(16, Pseq([Pseq((13..18)),Pseq((17..12))].min(14),inf)));
-
- wait(20);
-
- Pbindef(\y3, \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.6, inf));
- Pbindef(\y3, \degree, Pseq( [ 0, 2, -1, 5, -2, 6 ], inf));
- Pbindef(\y3, \octave, [4,5]);
- //Pbindef(\y3, \octave, [4,5,6] + Pwrand([0,2,1, 3],[0.7,0.1,0.1,0.1],inf));
- Pbindef(\y3, \dlywet, Pstutter(8, Pfunc({~dlywrang1.set(\wet, rrand(0, ((3..9) * 0.1).choose ) ) })));
-
- wait(30);
- ~dlywrang1.set(\wet2, 1);
- wait(4);
-
- Pbindef(\y3).stop;
-
- wait(4);
-
- // --- lcmnoi ----------------------------------------------------------------------
- "--- lcmnoi ...".postln;
-
- SynthDef(\lcmnoise, {
- arg gate=1, outBus, amp1=0, amp2=1, amp=0.1;
- var snd, revchain, env;
- snd = [
- tanh(lcm(SinOsc.ar(
- LFNoise0.kr(LFNoise0.kr(1/10).exprange(0.1,1)).exprange(1,15000)
- ).range(-100,100).round(1),SinOsc.ar(
- LFNoise0.kr(LFNoise0.kr(1/10).exprange(0.1,1)).exprange(1,15000)
- ).range(-100,100).round(1))*0.0001),
- tanh(lcm(Saw.ar(
- LFNoise0.kr(LFNoise0.kr(1/10).exprange(0.1,1)).exprange(1,15000)
- ).range(-100,100).round(1),LFCub.ar(
- LFNoise0.kr(LFNoise0.kr(1/10).exprange(0.1,1)).exprange(1,15000)
- ).range(-100,100).round(1))*0.0001)
- ] ;
- snd = BHiPass.ar(snd, 180);
- snd = snd.softclip * 0.8;
- snd = Splay.ar(snd, spread:1);
- revchain = snd * EnvGen.ar(Env.perc(0, 0.1, Rand(10,10000), 4));
-
- revchain = Greyhole.ar(
- in: revchain,
- delayTime: LFNoise1.ar(1).range(0.0001,0.2),
- damp: 0.5,
- size: LFNoise1.ar(0.1).exprange(0.0001,5),
- feedback: 0.95);
-
- revchain = LeakDC.ar(revchain);
- revchain = Limiter.ar(revchain) * LFNoise1.ar([1,1]).range(0,0.9);
- snd = snd * LFNoise0.ar([0.9,0.8]).range(0,2);
- snd = (snd * amp1) + (revchain * amp2);
- snd = snd.softclip * 0.8;
-
- env = Linen.kr(gate, 0, 1, 0, 2);
- snd = snd * amp * env;
- Out.ar(outBus, snd);
- //snd = LPF.ar(snd.softclip, LFNoise1.ar(0.1).exprange(10000,20000)) * 0.8;
- }).add;
-
- wait(0.5);
-
- Pbindef(\lcmnoip,
- \instrument, \lcmnoise,
-
- \dur, Pseq([
- Pseq([
- Prand([Pseq([0.01,0.01]),0.02]),
- Pn(0.05,19),
- 9.03
- ], 20), // 20 x 10
- 30]),
-
- \amp, 1,
- \amp1, Pseq([1,0.1],inf),
- \amp2, Pseq([0.6,1],inf),
- \legato, 1,
- \out, ~mainOut,
- ).play;
-
- 160.wait;
-
- "--- s1distdron...".postln;
- // S1 DISTORTED DRONE -----------------------------------------------------
- SynthDef(\s1Dist, {
- arg freq=440, gate=1, out=0, amp=0.1, ampBus, d1 = 5, d2 = 1, d3=5, ffreq=200, ffreqBus;
- var snd = Saw.ar([freq, freq*1.01]);
- var env = Linen.kr(gate, releaseTime: 0.1, doneAction:2);
- snd = snd + SinOsc.ar([freq*0.99, freq]);
- snd = snd + Pulse.ar([freq*0.99, freq]);
-
- snd = snd.clip2(LFNoise1.ar(0.3).range(0.3,0.8)) * d1;
- snd = snd.wrap2(LFNoise1.ar(0.3).range(0.3,0.8)) * d2;
- snd = snd.fold2(LFNoise1.ar(0.3).range(0.3,0.8)) * d3;
- snd = LeakDC.ar(snd);
-
- ffreq = In.kr(ffreqBus, 1);
- ffreq = ffreq.max(20);
- snd = LPF.ar(snd, ffreq);
-
- snd = Limiter.ar(snd);
- snd = Splay.ar(snd);
-
- amp = In.kr(ampBus, 1);
- Out.ar(out, snd*env*amp);
- }).add;
-
- ~s1DistAmpBus.free;
- ~s1DistAmpBus = Bus.control(s,1);
- ~s1DistAmpBus.set(0);
- ~s1DistAmpLiner = SynthDef(\linexamp, { |outBus, lag, val|
- Out.kr(outBus, VarLag.kr(val+0.0001, lag, 0, \cub) - 0.0001 * 0.9)
- }).play(s, [outBus: ~s1DistAmpBus, lag: 10, val:0]);
-
- ~s1DistFfreqBus.free;
- ~s1DistFfreqBus = Bus.control(s,1);
- ~s1DistFfreqBus.set(100);
- ~s1DistFfreqLiner = SynthDef(\linexamp, { |outBus, lag, val|
- Out.kr(outBus, VarLag.kr(val+0.0001, lag, 0, \cub) - 0.0001)
- }).play(s, [outBus: ~s1DistFfreqBus, lag: 10, val:200]);
-
- wait(0.5);
-
- Pbindef(\s1DistP,
- \instrument, \s1Dist,
- \degree, -1,
- \dur, 2,
- \octave, [2,3],
- \d1, Prand((1..5),inf),
- \d2, Prand((1..5),inf),
- \d3, 5,
- \legato, 1,
- // needs wrangled delay!
- \out, ~wranglerBus,
- \dlywet, Pstutter(8, Pfunc({~dlywrang1.set(\wet, rrand(0, ((3..6) * 0.1).choose ) ) })),
- \ampBus, ~s1DistAmpBus,
- \ffreqBus, ~s1DistFfreqBus
- ).play;
-
- wait(1);
-
- ~s1DistAmpLiner.set(\lag, 40, \val, 0.4); wait(20);
- ~s1DistFfreqLiner.set(\lag, 40, \val, 500); wait(40);
- ~s1DistFfreqLiner.set(\lag, 10, \val, 1500); wait(30);
- ~s1DistFfreqLiner.set(\lag, 10, \val, 7500); wait(20);
- ~s1DistFfreqLiner.set(\lag, 1, \val, 700); wait(10);
- ~s1DistFfreqLiner.set(\lag, 5, \val, 2700); wait(10);
- ~s1DistFfreqLiner.set(\lag, 1, \val, 400); wait(10);
- ~s1DistFfreqLiner.set(\lag, 1, \val, 6400); wait(10);
- ~s1DistFfreqLiner.set(\lag, 1, \val, 15400); wait(5);
- ~s1DistFfreqLiner.set(\lag, 7, \val, 1000); wait(20);
- ~s1DistFfreqLiner.set(\lag, 7, \val, 3000); wait(10);
- ~s1DistFfreqLiner.set(\lag, 7, \val, 400); wait(20);
- ~s1DistFfreqLiner.set(\lag, 1, \val, 20000); wait(5);
-
-
- SynthDef(\dustnoise, {
- arg outBus=0, gate=1, amp=0.1, release=1, density=1;
- var snd, env;
-
- env = Linen.kr(gate, 0, 1, release, 2);
- snd = WhiteNoise.ar * LFPulse.ar(0.06, width:0.02) * -25.dbamp;
- snd = HPF.ar(snd, 2000);
- snd = snd + Dust.ar(LFNoise1.ar(0.1).range(1,100) * density, mul:0.2);
- snd = Pan2.ar(snd, LFNoise1.kr(0.1).range(-0.5,0.5));
- snd = snd * env * amp;
- OffsetOut.ar(outBus, snd);
- }).add;
-
- wait(0.5);
-
- Pbindef(\dustnoiseP,
- \instrument, \dustnoise,
- \amp, 1,
- \dur, 30,
- \legato, 1,
- \release, 0.1,
- \density, 10,
- ).play;
-
- ~s1DistFfreqLiner.set(\lag, 7, \val, 1000); wait(20);
- ~s1DistFfreqLiner.set(\lag, 20, \val, 300); wait(20);
- ~s1DistFfreqLiner.set(\lag, 5, \val, 3300); wait(5);
- ~s1DistFfreqLiner.set(\lag, 5, \val, 150); wait(5);
-
- Pbindef(\dustnoiseP, \density, 4);
-
- ~s1DistAmpLiner.set(\lag, 15, \val, 0.5); wait(15);
-
- "--- padme ...".postln;
- // padme -----------------------------------------------------------------------------------
- SynthDef(\padme, {
- arg out=0, gate=1, amp=1, alag=10, freq;
- var sum, snd0, env, gen, numosc;
-
- numosc = 10;
- env = Env.adsr(20, 0, 1, 30, 1, \cub);
- gen = EnvGen.kr(env, gate, doneAction:2);
-
- snd0 = Array.fill(numosc, {
- var lfreq, local;
- lfreq = [freq, freq * 1.5, freq * 3, freq * 4];
- local = Saw.ar(rrand(lfreq, lfreq * 1.03 ) * LFNoise1.kr(0.3).range(1, 1.03), -10.dbamp);
- local = Mix(local);
- });
- snd0 = Splay.ar(snd0);
- snd0 = LPF.ar(snd0, LFNoise1.ar(0.06).exprange(300,10000));
- snd0 = CombL.ar(snd0, 1, LFNoise1.ar(0.05).range([0.5,0.65],[0.53,0.68]), 15, -1.dbamp) + snd0;
-
- sum = snd0 * gen;
- sum = sum * Lag.kr(amp, alag);
- Out.ar(out, sum);
- }).add;
-
- wait(0.2);
-
- Pbindef(\padmeP,
- \instrument, \padme,
- \freq, Pseq([50, 80],inf),
- \dur, 30,
- \legato, 1.2,
- \amp, 0.9,
- \out, ~mainOut
- ).play;
-
- ~s1DistAmpLiner.set(\lag, 20, \val, 0); wait(15);
-
- Pbindef(\s1DistP).stop;
- ~s1DistAmpLiner.free;
- ~s1DistFfreqLiner.free;
-
- wait(30);
-
- wait(30);
- Pbindef(\dustnoiseP, \density, 1);
- wait(110);
-
- Pbindef(\padmeP, \freq, Pseq([80],inf));
-
- wait(20);
-
- Pbindef(\padmeP, \amp, 0.4);
-
- Pbindef(\dustnoiseP, \amp, Pseg(Pseq([1,0]), 90, \cub) ); // ???
-
- // -- Soft dark saw ---------------------------------------
- "--- soft dark saw...".postln;
- Pbindef(\sawp1,
- *[
- instrument: \softSaw,
- dur: 10,
- attackTime: 5,
- releaseTime:5,
- legato:1,
- degree: Pseq([ [-2,3,11,20], [-2,5,7,21] ],inf),
- octave: 3,
- amp: [1,0.5,0.2,0.1] * 0.7,
- out: ~reverBus,
- gainBus: ~softSawAmpBus
- ]
- ).play;
-
- wait(1);
-
- ~softSawAmpBusLiner.set(\lag, 0, \val, 0);
- wait(0.5);
- ~softSawAmpBusLiner.set(\lag, 20, \val, 1);
- wait(0.5);
-
- wait(30);
- Pbindef(\padmeP, \amp, 0.2);
-
- wait(60);
- Pbindef(\padmeP).stop;
- Pbindef(\dustnoiseP).stop;
-
- wait(30);
-
- Pbindef(\sawp1, \amp, [1,0.5,0.2,0.1] * 0.5);
-
- wait(15);
-
- ~greyholeVerb.set(*[revWet:0.5, feedback:0.8, lag:10, dtime:0.1, size:5, diff:0.707 ]);
-
- "--- lorenz patterns...".postln;
- // -- lorenz patterns ------------------------------------------
- SynthDef(\blipo, { | out, freq = 440, amp = 0.1, nharms = 10, pan = 0, gate = 1, sustain, attack=0.1 |
- var audio = Blip.ar(freq * (SinOsc.kr(3).range(1,1.01)), nharms, amp);
- var env = Linen.kr(gate, attackTime: attack, releaseTime: sustain, doneAction: Done.freeSelf);
- OffsetOut.ar(out, Pan2.ar(audio, pan, env) );
- }).add;
-
- wait(0.5);
-
- ~dotsP = Pbind(
- \dur, Pflatten(1, Plorenz() * 1),
- \attack, 0.01,
- \octave, 3,
- \amp, 0.4,
- \nharms, Prand((2..7),500) );
-
- ~linesP = Pbind(
- \dur, Pflatten(1, Plorenz() * 5),
- \attack, 3,
- \octave, Prand([2,3,4],inf),
- \nharms, Prand((1..4),80),
- \amp, 0.3 );
-
- ~highP = Pbind(
- \dur, Pflatten(1, Plorenz() * 5),
- \attack, 3,
- \octave, 5,
- \nharms, Prand((1..3),50),
- \amp, 0.03 );
-
- // just plays out!
- ~lorenzP = Pbindf(
- Ptpar([ 0, ~dotsP, 60, ~linesP, 160, ~highP]),
- \instrument, \blipo,
- \degree, (Pflatten(1, Plorenz()) * 18).asInteger,
- \mtranspose, Prand([Pn(0,24),Pn(2,24),Pn(4,24)], inf),
- \detune, Prand([0,1,0.5,1.5], inf),
- \scale, Scale.major(\pythagorean),
- \legato, Prand((4..7),inf) * 0.2,
- \pan, Prand((-10..10),inf) * 0.1,
- \out, ~reverBus
- ).play;
-
- wait(140);
-
- ~softSawAmpBusLiner.set(\lag, 120, \val, 0);
-
- wait(120);
-
- Pbindef(\sawp1).stop;
-
- while({ ~lorenzP.isPlaying }, { wait(1); });
-
- wait(10);
-
- // fade out
- ~mainOutFx.set(\lag, 10, \amp, 0);
-
- wait(5);
-
- //////////////////////////////////////////////////////////////////////////
-
- "<<< THIS IS THE END, MY FRIEND.\n---------------------------------\n\n".postln;
- s.freeAll;
- "";
- };
-
- };
- );
|