ark_d.amorphic/lib/livecodedefs.scd

503 lines
11 KiB
Plaintext

(
SynthDef(\recIn, { arg out = 0, bufnum = 0;
var snd = SoundIn.ar(0,1);
RecordBuf.ar(snd, bufnum, doneAction: Done.freeSelf, loop: 0);
}).add;
);
(
SynthDef(\verbDelayFX, {
arg inBus, outBus, revWet=0.8, dlyWet=0.8, feedback = 0.5 ;
var snd = In.ar(inBus, 2);
var verb = JPverb.ar(snd);
var delay = Greyhole.ar(snd, feedback: feedback);
snd = snd + (verb * revWet) + (delay * dlyWet) * 0.5;
Out.ar(outBus, snd);
}).add;
);
(
SynthDef(\bgrain, { |out = 0, gate = 1, amp = 0, bufnum, gfreq=90, rate=0.5|
var snd, pan, env, freqdev;
pan = LFNoise1.kr(0.1).range(-1, 1) * LFNoise0.kr(gfreq).range(0.2,1);
env = EnvGen.kr(
Env([0, 1, 0], [1, 1], \sin, 1),
gate,
doneAction: Done.freeSelf);
snd = GrainBuf.ar(
numChannels:2,
trigger:Impulse.kr(LFNoise1.kr(gfreq).range(0.8,1) * gfreq),
dur: 0.2 * LFNoise0.kr(gfreq).range(1,1.2),
sndbuf: bufnum,
rate: [rate * LFNoise1.kr.range(0.99, 1), rate * LFNoise1.kr.range(0.99, 1)],
pos: LFNoise2.kr(0.05).range(0, 1) * LFNoise0.kr(gfreq).range(1,1.02),
//pos: LFTri.kr(0.25),
interp: 2,
pan: pan);
snd = RLPF.ar(snd, freq: LFNoise2.kr(0.1).exprange(400,10000));
snd = snd * LFTri.ar(0.073).range(0.1,1);
snd = snd * env * amp;
Out.ar(out, snd);
}).add;
);
(
SynthDef(\henonSynth1, {
arg out=0, amp=0.5, gate=1, fadeTime=1, lpff=200, hpff=200, pan=0;
var sig, freq, env, lpfsig, hpfsig;
freq = HenonN.ar(
freq: 5000,
a: LFNoise2.kr(1, 0.2, 1.2),
b: LFNoise2.kr(1, 0.15, 0.15),
mul: 0.6
);
// used as frequency modulator
sig = Pulse.ar(
freq: freq.range(40, LFNoise2.kr(0.1).range(1000,10000)),
mul: 0.2);
sig = sig.ring3(0.5);
sig = sig.clip2(0.8);
lpfsig = LPF.ar(sig, lpff.max(50));
hpfsig = HPF.ar(sig, hpff.max(50));
sig = lpfsig + hpfsig;
sig = LeakDC.ar(sig);
env = EnvGen.kr( Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1),
gate, doneAction: Done.freeSelf);
sig = sig * env * amp;
sig = Pan2.ar(sig, pan);
Out.ar(out,sig);
}).add;
);
( // henonN + henonC controlling filter * volume
SynthDef(\henonLsynth1, {
arg out=0, hpfreqmin=100, pan=0;
var snd;
snd = (BrownNoise.ar() + Mix(SinOsc.ar(HenonN.ar(4,a:[1.4,1.1] ).range(200,400)))) * HenonN.ar(freq:1).range(0,0.5);
snd = RHPF.ar(snd, HenonC.ar(freq:1).fold(0,1).exprange(hpfreqmin,7000), rq:1);
snd = snd * HenonC.ar(0.5).range(0.6,1);
snd = Pan2.ar(snd, pan);
Out.ar(out, snd);
}).add;
);
(
// henonLsynth = dark brooding melodic drone-noise
SynthDef(\henonLsynth2, {
arg out, gate=1, fadeTime=1, amp=1, pan=0;
var sig, sinfreq, env;
env = EnvGen.kr(Env(levels: [0,1,0], times: [fadeTime, fadeTime], curve: \sin, releaseNode: 1),
gate, doneAction: 2);
sinfreq = LFPulse.kr( freq: 0.9, width:0.1);
sinfreq = sinfreq.range(
LFPulse.kr(0.073).range(37).midicps,
[44.midicps,53.3.midicps]
);
sinfreq = sinfreq * SinOsc.kr(1).range(1,1.02);
sig = SinOsc.ar(sinfreq);
sig = sig + (BrownNoise.ar(0.4) * SinOsc.kr(0.1).range(0,1));
sig = sig * HenonN.ar(20).range(0,1).clip(0,1);
sig = RLPF.ar(sig, HenonC.ar(1).fold(0,1).exprange(40,1000), rq:0.4);
sig = sig.clip2(0.5);
sig = sig * HenonC.ar(0.5).range(0,0.5);
// sig = RHPF.ar(sig,5000);
sig = sig + Greyhole.ar(sig * 0.6, feedback: 0.8, diff: 0.7, delayTime: 0.78123);
sig = sig * env * amp;
sig = Mix.new(sig);
sig = Pan2.ar(sig, pan);
Out.ar(out, sig);
}).add;
);
( // henonSquare being thrown around
SynthDef(\henonSquare, {
arg out=0, gate=1, amp=0.5, pan=0;
var env = EnvGen.kr(Env([0, 1, 0], [1, 4], \sin, 1), gate);
var trig = HenonTrig.kr();
// wandering attractor into variable 'freq':
var freq = HenonN.ar(
TRand.kr(trig:trig).exprange(1,20),
// parameters:
//a: LFNoise2.kr(0.5).range(0.3,1.6),
//b: LFNoise2.kr(0.5).range(0,0.6)
//a: 1.4,
a: LFTri.kr(0.01,3).range(1,1.5), // ramp up and down, slowly
b: 0.3
).exprange(40,1000);
// wandering attractor applied as frequency to squarewave:
var sig = Pulse.ar([freq,freq]);
// adding sinwave for more clean deep/soft sound
sig = sig + SinOsc.ar([freq,freq*0.995]);
// back to mono:
sig = Mix(sig);
// fold distortion
sig = sig.fold2(0.5) * 2;
// low pass filter to give sense of closing and opening
sig = LPF.ar(sig, LFNoise2.kr(0.2).exprange(100,20000));
sig = sig * env;
// add space. lots of space
//sig = (sig * 0.5) + Greyhole.ar(sig * 0.5, delayTime:0.6, damp: 0.8, diff: 0, feedback:0.6,);
DetectSilence.ar(sig, doneAction: Done.freeSelf);
sig = Pan2.ar(sig, pan);
sig = sig * amp;
Out.ar(out,sig);
}).add;
);
(
SynthDef(\granSoil, {
arg out=0, gate = 1, amp = 0.5, sndbuf, envbuf = -1, fadeTime=1, rate=0.8, dur=0.01, pan=0;
var snd, env, freqdev;
// use mouse x to control panning
//pan = MouseX.kr(-1, 1);
env = EnvGen.kr(
Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1),
gate,
//levelScale: amp,
doneAction: Done.freeSelf);
snd = GrainBuf.ar(
numChannels: 1,
trigger: Impulse.kr(200 * LFNoise2.kr(0.1).range(0.9,1.1)),
//dur: MouseY.kr.range(0.001,1),
//dur: SinOsc.kr(0.1).range(0.001,0.1),
dur: dur,
sndbuf: sndbuf,
rate: rate, // the playback rate of the sampled sound
//pos: MouseX.kr.range(0, 25) * LFNoise2.kr(20).range(0.999,1.001),
pos: LFNoise2.kr(0.001).range(0, 25) * LFNoise2.kr(20).range(0.999,1.001),
interp: 4, // 2: liner, 4: cubic
pan: 0,
envbufnum: envbuf,
maxGrains: 1024);
snd = Pan2.ar(snd, pan);
snd = snd * env * amp;
Out.ar(out, snd);
}).add;
);
(
SynthDef(\latooTrigRing, {
arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1, gate=1, fadeTime=1, pan=0;
var snd, in, env;
in = LatoocarfianTrig.ar(min,max);
snd = Ringz.ar(in, freq, decay);
snd = LPF.ar(snd, ffreq);
env = EnvGen.kr(
Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1),
gate, doneAction: Done.freeSelf);
snd = snd * env * amp;
snd = Pan2.ar(snd, pan);
Out.ar(out,snd)
}).add;
);
(
SynthDef(\lorenzTrigRing, {
arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1, gate=1, fadeTime=1, pan=0;
var snd, in, env;
in = LorenzTrig.ar(min,max);
snd = Ringz.ar(in, freq, decay);
snd = LPF.ar(snd, ffreq);
env = EnvGen.kr(
Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1),
gate, doneAction: Done.freeSelf);
snd = snd * env * amp;
snd = Pan2.ar(snd, pan);
Out.ar(out,snd)
}).add;
);
(
SynthDef(\fhnTrigRing, {
arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1, gate=1, fadeTime=1, pan=0;
var snd, in, env;
in = FhnTrig.ar(min,max);
snd = Ringz.ar(in, freq, decay);
snd = LPF.ar(snd, ffreq);
env = EnvGen.kr(
Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1),
gate, doneAction: Done.freeSelf);
snd = snd * env * amp;
snd = Pan2.ar(snd, pan);
Out.ar(out,snd)
}).add;
);
// =====================================================================
// 'pre-Pdefs'
// =====================================================================
(
Pdef(\bd1, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("bd01"),
\dur, Pseq([3/4, 1, 1, 1, 1/4],inf),
\amp, 0.5
)
).quant_(8));
(
Pdef(\bd2, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("bd02"),
\dur, Pseq([1+(1/4), 1, 1, 1/4],inf),
\amp, 0.5
)
).quant_(8));
(
Pdef(\bd3, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("bd03"),
\dur, Pseq([1+(1/4), 1, 1, 1/4],inf),
\amp, 0.5
)
).quant_(8));
(
Pdef(\hh1, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("hh01"),
\dur, 1/2,
\amp, Prand([1,1.2,0.8],inf),
\rate, Prand([0.99,1,1.01],inf),
\pan, Prand([-0.2, 0, 0.2], inf)
)
).quant_(8));
(
Pdef(\hh2, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("hh02"),
\dur, 1/2,
\amp, Prand([1,1.2,0.8],inf),
\rate, Prand([0.99,1,1.01],inf),
\pan, Prand([-0.2, 0, 0.2], inf)
)
).quant_(8));
(
Pdef(\hh3, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("hh03"),
\dur, 1/4,
\amp, Prand([1,1.2,0.8],inf),
\rate, Prand([0.99,1,1.01],inf),
\pan, Prand([-0.2, 0, 0.2], inf)
)
).quant_(8));
(
Pdef(\oh1, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("oh01"),
\dur, Pseq([Rest(13/4),3/4],inf),
\amp, 0.4,
\pan, 0
)
).quant_(8));
(
Pdef(\oh2, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("oh02"),
\dur, Pseq([Rest(13/4),3/4],inf),
\amp, 0.4,
\pan, 0
)
).quant_(8));
(
Pdef(\oh3, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("oh03"),
\dur, Pseq([Rest(13/4),3/4],inf),
\amp, 0.4,
\pan, 0
)
).quant_(8));
(
Pdef(\sn1, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("sn01"),
\dur, Pseq([Rest(1),1],inf),
\amp, 2
)
).quant_(8));
(
Pdef(\sn2, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("sn02"),
\dur, Pseq([Rest(1),1],inf),
\amp, 2
)
).quant_(8));
(
Pdef(\sn3, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("sn03"),
\dur, Pseq([Rest(1),1],inf),
\amp, 2
)
).quant_(8));
(
Pdef(\perc1, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("perc07"),
\dur, Pseq([2],inf),
\amp, 1,
\rate, Prand((90..110) * 0.01,inf)
)
).quant_(8));
(
Pdef(\perc2, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("perc04"),
\dur, Pseq([ Pn(1/2,6), 1/4, 1/2, 1/4 ],inf),
\amp, 1,
\rate, Prand([0.8,0.9,1,1.1,1.2,1.5],inf)
)).quant_(8)
);
(
Pdef(\perc3, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("perc05"),
\dur, Pseq([ Pn(1/2,6), 1/4, 1/2, 1/4 ],inf),
// \amp, 0.5,
\rate, Prand((90..110) * 0.01,inf),
\pan, Prand([-0.2, 0, 0.2], inf)
)).quant_(8)
);
(
Pdef(\cl1, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("cl01"),
\dur, Pseq([ Rest(1), 1.5 ],inf),
\amp, 1,
// \rate, Prand([0.8,0.9,1,1.1,1.2,1.5],inf)
)
).quant_(8));
(
Pdef(\cl2, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("cl04"),
\dur, Pseq([ Rest(1.5), 3/4 ],inf),
\amp, 1,
// \rate, Prand([0.8,0.9,1,1.1,1.2,1.5],inf)
)).quant_(8)
);
(
Pdef(\cl3, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("cl05"),
\dur, Pseq([ Rest(3/4), 6/4],inf),
// \amp, 0.5,
\rate, Prand((90..110) * 0.01,inf),
// \pan, Prand([-0.2, 0, 0.2], inf)
)).quant_(8)
);
(
Pdef(\gl1, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("gl01"),
\dur, Pseq([1,3,2,3 ] / 3,inf),
\amp, 1,
// \rate, Prand([0.8,0.9,1,1.1,1.2,1.5],inf)
)
).quant_(8));
//Pdef(\gl1).play
//s.scope(4)
(
Pdef(\gl2, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("gl04"),
\dur, Pseq([ 3,4,2,3,1 ] / 2,inf),
\amp, 1,
// \rate, Prand([0.8,0.9,1,1.1,1.2,1.5],inf)
)).quant_(8)
);
(
Pdef(\gl3, Pbind( \instrument, \smplr, \bufnum, ~getSmp.("gl05"),
\dur, Pseq([ 4,3,4,3,4,2,1 ] / 4,inf),
// \amp, 0.5,
\rate, Prand((90..110) * 0.01,inf),
// \pan, Prand([-0.2, 0, 0.2], inf)
)).quant_(8)
);
// BASSLINE + MELODIC LINES with buffer cycler
(
Pdef(\bsln1, Pbind( \instrument, \bufCyc,
\bufnum, [~getSmp.("0043"),~getSmp.("0043")],
\octave, [3,2],
\detune, [0.1,0],
\chanDetune, 20,
\legato, 0.2,
\amp, [0.3,0.9,0.1] * 0.5,
\releaseTime, 0.1,
\degree, 2,
// \dur, 1
)).quant_(2)
);
(
Pdef(\strng1, Pbind( \instrument, \bufCyc,
\bufnum, [~getSmp.("sincyc06"),~getSmp.("sincyc06")],
//\dur, Pseq([3/4,2/4,1/4]*2/3,inf),
//\degree, Pseq([[4,9],2,8,4,1], inf),
//\octave, Prand([[6,5,7],[4,5,7],[7,5,4]],inf),
\octave, 4,
//\mtranspose, Pstutter(12, Pseq([1,0,-2,3,-3],inf)),
\detune, [0,0.3,-0.3],
\chanDetune, Pseq([-10,0,5,10,-5],inf),
\amp, [0.3,0.5,0.1] * 0.05,
\legato, 0.1,
\releaseTime, Prand([1,2,3,4],inf)
)).quant_(8)
);