ark_d.amorphic/ark_d.scd

845 lines
17 KiB
Plaintext
Raw Normal View History

2020-12-07 01:28:37 +01:00
(
2020-04-06 08:15:44 +02:00
// ===========================================================
// Ark/D, amorphic (2020)
// ===========================================================
2020-12-07 01:28:37 +01:00
2020-04-06 08:15:44 +02:00
Server.default.waitForBoot {
2020-12-07 01:28:37 +01:00
"Init.scd".loadRelative;
"init.scd".loadRelative;
}
);
2020-04-06 08:15:44 +02:00
2020-12-07 01:28:37 +01:00
// debug/meter
s.meter; s.scope(2); s.plotTree;
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
/*
ELEMENTS
- two chord pad
- param/bebacklight (needs granulator?)
- s1 distorted drone
- shippo
- lcm noise
- gcdfeedmodsin + low rumble?
- klickyarj + lcm noise?
- lorenz pattern
2020-04-08 15:04:49 +02:00
2020-04-06 08:15:44 +02:00
2020-04-08 15:04:49 +02:00
2020-04-06 08:15:44 +02:00
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
*/
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
//
///////////////////////////////////////////////////////////////////////////////////////////////
// GCD SINMODFEED /////////////////////////////////////////////////////////////////////////////////////////
// feedback of modulated SinOsc
// low rumble 0 ------------------------------------
2020-07-07 22:57:55 +02:00
(
2020-12-07 01:28:37 +01:00
SynthDef(\dNoz, {
arg out=0, gate=1, amp=0.1, envattackTime=0.001, release=0.001;
2020-07-07 22:57:55 +02:00
var snd, env;
2020-12-07 01:28:37 +01:00
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);
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
snd = LPF.ar(snd, LFNoise2.ar(0.4).range(60,100), mul:3);
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
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);
2020-07-07 22:57:55 +02:00
}).add;
2020-12-07 01:28:37 +01:00
);
2020-07-07 22:57:55 +02:00
(
2020-12-07 01:28:37 +01:00
// "LFTri bass drum kick" - by luka@lukaprincic.si
SynthDef(\tribd, {
arg out=0, gate=1, freq=77, amp=0.1;
var snd,snd1, aenv, fenv, senv;
fenv = Env(levels:[2, 1.2, 0], times: [0.1, 0.4]).kr;
freq = [freq,freq*2] * fenv;
freq = freq.max(10);
snd = LFTri.ar(freq) + SinOsc.ar(freq) * [1,0.3];
snd1 = SinOsc.ar(190, mul:3) * EnvGen.ar(Env.perc(releaseTime:0.1), gate) ;
snd = snd.sum * 0.9;
snd = LPF.ar(snd, freq * 4);
snd = snd + RLPF.ar( BrownNoise.ar(1),
Env(levels:[2000,500,90], times:[0.01,0.05]).kr, 0.3 );
snd = snd + ( BPF.ar(WhiteNoise.ar(0.5), 3000)
* Env([1,1,0], [0.004,0.005]).kr );
snd = snd + ( BPF.ar(WhiteNoise.ar(0.5), 7000)
* Env([1,1,0], [0.003,0.001]).kr );
aenv = Env([1,1,0], [0.2,2], curve: -9).kr;
snd = snd1 + snd * aenv;
snd = Limiter.ar(snd, 8);
senv = Linen.kr(releaseTime: 0.1, gate: gate, doneAction: Done.freeSelf);
snd = LeakDC.ar(snd);
snd = snd * amp * senv;
snd = Pan2.ar(snd, pos:0);
snd = snd.clip2;
Out.ar(out, snd);
}).add;
);
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
////////////////////////////////////////////////////////////////////////////////////////////////////////
2020-07-07 22:57:55 +02:00
(
2020-12-07 01:28:37 +01:00
~clk3 = TempoClock.new(2.2);
//~myClock = TempoClock.new(2.2);
//~clk3 = TempoClock.tempo= 2.2 / 1;
{ // routine starts here
1.wait;
Ndef(\gcdmod).proxyspace.clock = ~clk3;
Ndef(\gcdmod).proxyspace.quant = 1;
Ndef(\gcdmod, {
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.5, 0.55);
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);
// Out.ar(0, j * EnvGate())
});
Ndef(\gcdkick).proxyspace.clock = ~clk3;
Ndef(\gcdkick).proxyspace.quant = 1;
Pdef(\gcdkick, {
Pbind(*[
instrument: \tribd,
dur: Pseq([
Rest(32),
Pseq(
[
Prand( [ Pseq([1.5,1.5]), 3 ] ),
3,
Prand([
4,
Pn(1,3),
Pn(Pseq([1/2,1,Prand([1/2,1.5])]),1)
])
] / 2, 32)
],inf),
//dur: 1,
//dur: Pseq([1.5,1,1.5,1/2,2,1/2,1.5,1/2,1/4,1/2,1/4,3],inf),
freq:77 + Prand((1..10)/5, inf),
octave:2,
amp:0.1
])
};);
Ndef(\gcdkick).mold(2, \audio, \elastic);
Ndef(\gcdkick)[0] = Pdef(\gcdkick);
Pbindef(\n1,
\instrument, \dNoz,
\dur, Pseq([20,Rest(10)],inf),
\amp, 0.5,
\legato, 1,
);
//Pdef(\n1).stop;
//Pdef(\n1).clear;
1.wait;
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
s.makeBundle(0.25, {
Pdef(\n1).play(~clk3, quant:1);
Ndef(\gcdmod).play;
Ndef(\gcdkick).play;
});
}.fork(~clk3)
2020-07-07 22:57:55 +02:00
)
2020-12-07 01:28:37 +01:00
///////////////////////////////////////////////////////////////////////////////////////
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
// rumblw
Pdef(\n1).quant = 1;
Pdef(\n1).play(~clk3, quant:1);
q = Pbind(*[
instrument: \tribd,
// dur: Pseq([
// Prand([
// Pseq([1.5,1.5]),
// 3]),
// 3,4
// ] / 4,inf),
dur: 1,
dur: Pseq([3,1/2,1/2],inf),
freq:77,
octave:2,
amp:0.2
]).play(~clk3, quant:1);
//Pdef(\kicka2).play(quant:[8,0]);
)
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
{LFPulse.ar(iphase:0.99)}.plot
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
x.release
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
(
Pbindef(\n1,
\instrument, \dNoz,
\dur, Pseq([20,Rest(10)],inf),
\amp, 0.5,
\legato, 1,
)
)
Pdef(\n1).stop;
Pdef(\n1).clear;
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
(
Pbindef(\kicka2, *[
instrument: \tribd,
// dur: Pseq([
// Prand([
// Pseq([1.5,1.5]),
// 3]),
// 3,4
// ] / 4,inf),
dur: 4,
//dur: Pseq([3,1/3,1/3,1/3],inf),
freq:77,
octave:2,
amp:0.2
]);
)
Pdef(\kicka2).clear
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
// 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 (16, {
CombL.ar(
snd,
0.2,
LFNoise1.ar(1/3).range(0.98,1.02) * rrand(0.01, 0.3),
10)
});
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;
)
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
~clksh = TempoClock.new(1);
Pdef(\shippoP).play(~clksh);
Pdef(\shippoP).stop;
(
Pbindef(\shippoP, *[
instrument: \shippo,
degree: 4,
octave: 3,
dur: Pseq([1,2,3], inf),
legato:0.2,
amp: 0.5
]);
)
Pdef(\shippoP).clear
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
// 4. dec. 2020 /////////////////////////////////////////////////////////////////
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
//AKJ to pattern femalemalenonbinary
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
(
SynthDef(\akj1, {
arg freq=300, amp=0.1, out=0, gate=1;
var snd, env;
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
freq = [freq,freq*1.01];
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
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));
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
env = Linen.kr(gate, attackTime:1, releaseTime:3, doneAction:2);
snd = Splay.ar(snd);
snd = snd * env * amp;
Out.ar(out, snd);
}).add;
)
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
(
SynthDef(\akjbz, {
arg freq=300, amp=0.1, out=0, gate=1;
var snd, env;
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
//freq = [freq, freq*2.02, freq*1.98, freq];
snd = SinOsc.ar(freq/4, mul:0.7)!2;
//snd = snd * [1, 0.1, 0.1, 1];
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 + (snd.wrap2 * 0.54)).softclip;
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
snd = snd * env * amp;
Splay.ar(snd);
Out.ar(out, snd);
//LFPulse.ar(0.275, width:0.25).range(0,1);
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
}).add
)
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
(
SynthDef(\click1, {
arg out=0, gate=1, freq=440, amp=0.1, releaseTime=0.1;
var snd, env;
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
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);
//snd = Limiter.ar((snd * 5));
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
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
)
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
// -- disonant chord + click + bazz -------------------------------
TempoClock.tempo=1
// disonchord
Pdef(\akj1p).play;
(
Pbindef(\akj1p, *[
instrument: \akj1,
freq:300,
dur:5,
legato: 1,
amp: 1
]))
Pdef(\akj1p).stop;
// click
Pdef(\clickp).play(quant:4);
Pdef(\clickp).stop(quant:4);
2020-07-07 22:57:55 +02:00
(
2020-12-07 01:28:37 +01:00
Pbindef(\clickp, *[
instrument: \click1,
dur: Pseq([Pseq([1,2,3]/8, 2), Pseq([1,2,1,2,1,1]/8,3), Pseq([1]/8, 4), Pseq([1]/16, 2), ],inf),
//dur: Pseq([Pn(1/8, 31), Rest(1/8)],inf),
amp: Prand([5,7,8,9]/10, inf),
releaseTime: 0.3,
freq:1
])
2020-07-07 22:57:55 +02:00
)
2020-12-07 01:28:37 +01:00
// deep bass --
Pdef(\akjbp).play(quant:4)
(
Pbindef(\akjbp, *[
instrument: \akjbz,
freq: 300,
dur: 8,
amp: 0.5,
legato: 0.20
])
)
Pdef(\akjbp).stop
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
// ----------------------------------------------------------------------------
2020-07-07 22:57:55 +02:00
2020-04-10 13:23:41 +02:00
2020-04-10 13:23:41 +02:00
2020-12-07 01:28:37 +01:00
// high pitched noise/pulse -------------------------------
(
2020-12-07 01:28:37 +01:00
SynthDef(\x44y, {
arg out=0, gate=1, amp=0.9;
var snd, env;
env = Linen.kr(gate, releaseTime: 0.001, doneAction:2);
snd = Pulse.ar([1234,2345,3456,4567,5678,8912,11023]
* LFNoise0.ar(freq:Array.fill(7, {rrand(1,10)})).range(0.8,1.2), mul:0.2).sum;
snd = snd + WhiteNoise.ar(0.2);
snd = HPF.ar(snd, 8000);
//snd = snd * LFSaw.kr(0.5,iphase:1).exprange(0.00001,1);
snd = snd * amp * env;
snd = snd.dup;
Out.ar(out, snd);
}).add;
2020-04-10 13:23:41 +02:00
)
2020-12-07 01:28:37 +01:00
Pdef(\x44yp).play;
Pdef(\x44yp).quant = 4;
2020-04-10 13:23:41 +02:00
(
2020-12-07 01:28:37 +01:00
Pbindef(\x44yp,
* [
instrument: \x44y,
dur: 1/8,
legato: Prand([
Pn(0.1,16),
Pseq([Pn(0.1, 4), 0.5], 4),
Pseq([Pn(0.1, 2), 0.5, Pn(0.1, 4), 0.5], 4)
],inf),
amp: 1,
]
2020-04-10 13:23:41 +02:00
)
)
2020-12-07 01:28:37 +01:00
Pdef(\x44yp).stop
Pdef(\x44yp).clear
2020-04-10 13:23:41 +02:00
(
2020-12-07 01:28:37 +01:00
Pbindef(\x99,
* [
instrument: \tribd,
octave:3,
degree: Prand([1,2,3]/10,inf),
//dur: Pseq([3,2,Prand([2,3]),3,2,2]/8, inf),
dur: Pseq([3,2,Prand([4,3]),3,2,4]/4, inf),
amp: 0.1
]
).play
)
2020-04-10 13:23:41 +02:00
2020-12-07 01:28:37 +01:00
/////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
2020-07-07 22:57:55 +02:00
2020-04-10 13:23:41 +02:00
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
// kao bassline?
(
SynthDef(\bz2, {
arg out=0, gate=1, freq=440, amp=0.1, releaseTime=0.1, cutoff=1, frq=1;
var env,snd, ffreq;
ffreq = freq * cutoff * 10;
ffreq = ffreq.clip(50,18000);
env = Linen.kr(gate, releaseTime: releaseTime, doneAction: Done.freeSelf);
snd = Pulse.ar([freq,freq*1.01]);
snd = snd + Saw.ar([freq*0.99, freq], mul:2);
snd = RLPF.ar(in: snd,
freq: ffreq,
rq: frq);
snd = Limiter.ar(snd, 0.7);
snd = snd * env * amp;
snd = Splay.ar(snd);
snd = HPF.ar(snd, 50);
Out.ar(out, snd);
}).add
)
// -- bassline pattern
Pdef(\bslp).play(quant:4)
Pdef(\bslp).stop
Pbindef(\bslp, *[ dur: Pseq([1,2,4] / [4,2,2,1]/4, inf),]).play(quant:4)
Pbindef(\bslp, *[ dur: Pseq([2,1,1]/4, inf),]).play(quant:8)
2020-07-07 22:57:55 +02:00
(
2020-12-07 01:28:37 +01:00
Pbindef(\bslp, *[
instrument: \bz2,
legato: Prand((1..5)*0.03, inf),
cutoff: Prand([0.6,1,2,3,4,5,7,12]/2,inf),
frq: Prand((4..7)/10, inf),
degree: Pseq([0,2,3,Prand([8,4,2])] + 0,inf),
octave: [3,3.3,4],
amp:0.2,
releaseTime:0.1
]).play(quant:4)
2020-07-07 22:57:55 +02:00
)
2020-12-07 01:28:37 +01:00
( // klick?
SynthDef(\akjklik, {
arg freq=2, amp=0.1, out=0, gate=1;
var snd, env;
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
snd = LFPulse.ar([freq, freq * 2], width: LFNoise1.ar(0.1).exprange(0.001,0.004));
env = Linen.kr(gate, 0, 1, 0.01, doneAction:2);
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
snd = snd * env * amp;
Out.ar(out, snd);
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
}).add;
)
2020-07-07 22:57:55 +02:00
2020-04-10 13:23:41 +02:00
2020-12-07 01:28:37 +01:00
// -----------------------------------
2020-04-10 13:23:41 +02:00
2020-12-07 01:28:37 +01:00
////////////////////////////////////////////////////////////////////////////////////////////////
2020-07-07 22:57:55 +02:00
2020-04-10 13:23:41 +02:00
2020-12-07 01:28:37 +01:00
(
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
var clck1 = TempoClock.new(120/60);
var clck2 = TempoClock.new(70/60);
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
{
x = Pbind( \degree, Pseq((0..12)) ).play(clck1);
4.wait;
x.stop;
postln(Date.getDate.format("time: %H:%M:%S --------------------"));
}.fork(clck1);
2020-04-10 13:23:41 +02:00
2020-12-07 01:28:37 +01:00
{
y = Pbind( \degree, Pseq((0..12)+7) ).play(clck2);
4.wait;
y.stop;
postln(Date.getDate.format("time: %H:%M:%S --------------------"));
2020-07-07 22:57:55 +02:00
2020-12-07 01:28:37 +01:00
}.fork(clck2);
2020-12-07 01:28:37 +01:00
postln("end line out of forks");
)
(
2020-12-07 01:28:37 +01:00
/*var date = Date.getDate;
date.format("%H%M%S").postln;
date.rawSeconds.postln;
date.rawSeconds.postln;*/
~frames=(Date.getDate.rawSeconds).asString.reverse.at((0..3)).postln;
postln(Date.getDate.format("%H:%M:%S"));
"";
)
2020-12-07 01:28:37 +01:00
.stamp.postln
2020-04-10 13:23:41 +02:00
2020-12-07 01:28:37 +01:00
[1,2,3].asCompileString.postln;
s.freqscope
2020-12-07 01:28:37 +01:00
"this sentence has thirty-nine letters".reverse.at((0..3));
"this sentence has thirty-nine letters".padLeft(39, "-+");
"this sentence more than thirteen letters".padRight(13, "-+"); // nothing to pad.
2020-12-07 01:28:37 +01:00
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
2020-12-07 01:28:37 +01:00
//////// EXPERIMENTS! //////////////////////////////////////////////////////////
2020-12-07 01:28:37 +01:00
// 24.nov 2020:
2020-12-07 01:28:37 +01:00
// clicky dissonance / akj ------------------------------------
Ndef(\akj).play
Ndef(\akj).stop
Ndef(\akj).fadeTime=5;
(
Ndef(\akj, {
var freq=300, snd;
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))
+ (LFPulse.ar([2.2,4.4]*2, width: LFNoise1.ar(0.1).exprange(0.001,0.004)))
;
snd = Splay.ar(snd);
//snd = LeakDC.ar(snd);
snd = snd + (Greyhole.ar(snd) * 0.1);
snd = snd + (SinOsc.ar(freq/4, mul:0.7) * LFPulse.ar(0.275, width:0.25).range(0,1));
2020-12-07 01:28:37 +01:00
//snd = Limiter.ar(snd, 0.5) * 1.5;
(snd * 0.6 + (snd.wrap2 * 0.14)).softclip * 1;
//(snd * 0.6).softclip;
})
)
2020-12-07 01:28:37 +01:00
// -------------------------------------------------------
2020-12-07 01:28:37 +01:00
TempoClock.tempo = 120/120;
2020-12-07 01:28:37 +01:00
(
SynthDef(\h991, {
arg out=0, freq=90, gate=1, amp;
var snd, env;
2020-12-07 01:28:37 +01:00
env = Linen.kr(gate, doneAction:2);
2020-12-07 01:28:37 +01:00
freq = freq * XLine.ar(1,0.4, 5);
snd = SinOsc.ar(freq);
snd = BHiPass4.ar(snd, 40);
snd = snd + LPF.ar(Pulse.ar([freq, freq*1.01], 0.01, mul:0.4), freq * 32);
snd = snd + (LFTri.ar([freq*1.01,freq]) + SinOsc.ar(freq, mul:10).max(-0.5).min(0.5)).clip2(0.5);
2020-12-07 01:28:37 +01:00
snd = snd + Pulse.ar(freq, mul:0.2);
snd = snd + Impulse.ar(freq, mul:2);
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
snd = BLowPass4.ar(snd, SinOsc.kr(LFNoise0.kr(8).range(1,8)).range(300,LFNoise1.kr(1).range(1000,10000)), rq:0.7);
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
snd= snd * -6.dbamp;
snd = snd * env * amp;
snd = Splay.ar(snd);
Out.ar(out,snd);
}).add;
2020-04-08 15:04:49 +02:00
)
2020-12-07 01:28:37 +01:00
Pdef(\h991p).play;
Pdef(\h991p).quant = 4;
2020-04-08 15:04:49 +02:00
(
2020-12-07 01:28:37 +01:00
Pbindef(\h991p, *[
instrument: \h991,
dur: 4,
octave: 3,
legato: 0.89,
amp: 1
])
2020-04-08 15:04:49 +02:00
)
2020-12-07 01:28:37 +01:00
Pdef(\h991p).clear
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
////////////////////////////////////////////////////////////////////////////////
2020-04-08 15:04:49 +02:00
(
2020-12-07 01:28:37 +01:00
// SC808 drum snare
SynthDef.new(\sc808sn, {
arg amp=2, tone=340, tone2=189, snappy=0.7, gate=1, amp2=1, out=0;
var noiseEnv, atkEnv, sig, noise, osc1, osc2, sum;
noiseEnv = EnvGen.kr(Env.perc(0.001, 4.2, 1, -115), doneAction:0);
atkEnv = EnvGen.kr(Env.perc(0.001, 0.8,curve:-95), doneAction:2);
noise = WhiteNoise.ar;
noise = HPF.ar(noise, 1800);
noise = LPF.ar(noise, 8850);
noise = noise * noiseEnv * snappy;
osc1 = SinOsc.ar(tone2, pi/2) * 0.6;
osc2 = SinOsc.ar(tone, pi/2) * 0.7;
sum = (osc1+osc2) * atkEnv * amp2;
sig = Pan2.ar(((noise*1) + sum) * amp * 2.5, 0);
sig = HPF.ar(sig, 340);
Out.ar(out, sig);
}).add
)
2020-04-06 08:15:44 +02:00
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
~delay1 = Bus.audio(s, 2);
2020-04-08 15:04:49 +02:00
(
2020-12-07 01:28:37 +01:00
SynthDef(\dlywrangler, {
arg out=0, in;
var snd;
snd = In.ar(in,2);
snd = CombL.ar(snd, 1, Lag.ar(LFNoise0.ar(1).range(0.01,0.1),0.01), 3, mul:0.4) + snd;
Out.ar(out, snd);
}).add;
2020-04-08 15:04:49 +02:00
)
2020-12-07 01:28:37 +01:00
~dlywrang1 = Synth(\dlywrangler, [\out, 0, \in, ~delay1]);
~dlywrang1.free
2020-04-08 15:04:49 +02:00
(
2020-12-07 01:28:37 +01:00
Pbindef(\hhp1,
* [
instrument: \sc808hh,
//dur: Pseq([Rest(1/32), 3/32], inf),
dur: 1/16,
//amp: Prand([1,2,3]/3, inf),
amp: Pseq([1, 0.2],inf),
out: Pwrand([~delay1,0],[0.7,0.3],inf),
pan: Pfunc({rrand(-0.6,0.6)})
]
).play
2020-04-08 15:04:49 +02:00
)
(
2020-12-07 01:28:37 +01:00
Pbindef(\snp1,
*[
instrument: \sc808sn,
dur: Pseq([Rest(1),Pxrand([1,1.5,0.5,Pn(0.5,4),Pn(0.25,2),Pn(0.25,2),Pn(0.25,2)])]/2,inf),
amp: Prand([1,2,3]*0.05+0.8,inf),
tone: 340,
tone2: 189, //Pxrand([2,3,4,5,6,7] * 100, inf),
snappy: 0.3,
//out: Prand([0,~delay1],inf)
out: 0
]
).play
)
2020-04-08 15:04:49 +02:00
(
2020-12-07 01:28:37 +01:00
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,
out: ~delay2
]
).play
)
~delay2 = Bus.audio(s,2);
(
SynthDef(\wiDel, {
var snd = In.ar(\in.kr, 2);
snd = CombL.ar(snd, 1, SinOsc.ar(0.02,[0,pi/2]).range(0.5,0.6), 10, mul:1) + snd;
Out.ar(\out.kr(0), snd);
}).add;
)
~widel1.free
~widel1 = Synth(\wiDel, [\in, ~delay2, \out, 0]);
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
////////////////////////
s.meter
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
// BASSLINE + MELODIC LINES with buffer cycler
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
Pdef(\x32).play
Pdef(\x32).fadeTime = 0;
(
Pdef(\x32,
Pbind(
\instrument, \bufCyc,
\bufnum, [~getSmp.value("0043"),~getSmp.value("0043")],
\octave, [3,2,4],
\degree, Pseq([2,2,4,1], inf),
\detune, [0.1,0],
\chanDetune, 20,
\dur, Pseq([0.20,0.40,0.60],inf),
\legato, 1,
\amp, [0.3,0.5,0.1] * 0.5,
\releaseTime, 0.01
)).play.quant_(8);
)
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
Pdef(\x33).play
Pdef(\x33).fadeTime = 0;
(
Pdef(\x33,
Pbind(
\instrument, \bufCyc,
\bufnum, [~getSmp.value("blended_0001"),~getSmp.value("0023")],
//\bufnum, ~getSmp.value("raw"),
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
\degree, Pseq([[4,9],2,8,4,1], inf),
2020-04-08 15:04:49 +02:00
2020-12-07 01:28:37 +01:00
\octave, Prand([[6,5,7],[4,5,7],[7,5,4]]-0 ,inf),
\mtranspose, Pseq([Pn([1],10),Pn([0],10)],inf),
\detune, [0,0.3],
\chanDetune, Pseq([-10,0,5,10,-5],inf),
\dur, Pseq([1,2,3] * 0.2,inf),
\legato, 0.1,
\amp, [0.3,0.5,0.1] * 0.1,
\releaseTime, Prand([1,2,3,4],inf)
));
)
2020-04-08 15:04:49 +02:00