diff --git a/scd/dev/devel.scd b/scd/dev/devel.scd new file mode 100644 index 0000000..86c28ef --- /dev/null +++ b/scd/dev/devel.scd @@ -0,0 +1,1529 @@ + + + +SynthDef(\phpHatSnare, + { + arg gate = 1, amp = 0.1, pan = 0, outBus = 0, + rls = 1, rls1 = 0.01, lpa = 1, hpa = 1, bpa = 1; + var snd; + + snd = WhiteNoise.ar; + snd = snd + (Pulse.ar(freq: Rand(5000!10, 15000)).sum * 0.2); + snd = ( + LPF.ar(snd, Rand(1500,3000)) * lpa * 4 + * LFSaw.ar(LFNoise1.ar(1/3).range(15,30)).range(LFNoise1.ar(1).range(0.5,0.9), 1) + * EnvGen.ar(Env.perc(0, rls), gate) ) + + ( + HPF.ar(snd, Rand(5000,9000)) * hpa + * LFSaw.ar(LFNoise1.ar(1/3).range(15,30)).range(LFNoise1.ar(1).range(0.5,0.9), 1) + * EnvGen.ar(Env.perc(0, rls), gate) ) + + ( + BPF.ar(snd, Rand(1000,5000), 0.2) * bpa * 4 + * LFSaw.ar(LFNoise1.ar(1/3).range(15,30)).range(LFNoise1.ar(1).range(0.5,0.9), 1) + * EnvGen.ar(Env.perc(0, Rand(0.1, rls)), gate) ) + ; + snd = HPF.ar(snd, 200); + snd = LPF.ar(snd, 13000); + snd = snd * EnvGen.kr(Env.cutoff(rls), gate, doneAction:Done.freeSelf); + snd = Pan2.ar(snd, pan); + snd = snd * amp; + + OffsetOut.ar(outBus, snd); + } +).add; + +SynthDef(\phpKick, { + arg + //Standard Values + out = 0, pan = 2, amp = 0.4, curve = -4, + //tone1 arguments + t1freq = 400, t1harmonic = 2, t1glide = 0.01, + t1att = 0.0005, t1rel = 0.01, t1curve = -4, t1del = 0, t1amp = 1, + //tone2 arguments + t2freq = 50, t2harmonic = 3.44, t2glide = 0.01, + t2att = 0.0001, t2rel = 0.3, t2curve = \lin, t2del = 0.005, t2amp = 1, + //hit1 arguments + h1freq = 100, h1harmonic = 8, h1glide = 0.01, h1rq = 0.6, + h1att = 0.001, h1rel = 0.02, h1curve = -4, h1del = 0.001, h1amp = 1, + //hit2 arguments + h2freq = 1320, h2harmonic = 1, h2glide = 0, + h2att = 0.003, h2rel = 0.03, h2curve = -4, h2del = 0, h2amp = 0.5, + //click arguments + cfreq = 6100, crq = 1, camp = 1.41; + + var snd, noise, tone1, tone2, hit1, hit2, click; + + noise = Hasher.ar(Sweep.ar); //deterministic white noise + + tone1 = SinOsc.ar( + freq: XLine.ar(start: t1freq * t1harmonic, end: t1freq, dur: t1glide), + mul: Env.perc(attackTime: t1att, releaseTime: t1rel, level: t1amp, curve: t1curve).delay(t1del).ar); + + tone2 = SinOsc.ar( + freq: XLine.ar(start: t2freq * t2harmonic, end: t2freq, dur: t2glide), + mul: Env.perc(attackTime: t2att, releaseTime: t2rel, level: t2amp, curve: t2curve).delay(t2del).ar); + + hit1 = BPF.ar( + in: noise, + freq: XLine.ar(start: h1freq * h1harmonic, end: h1freq, dur: h1glide), + rq: h1rq, + mul: Env.perc(attackTime: h1att, releaseTime: h1rel, level: h1amp, curve: h1curve).delay(h1del).ar); + + hit2 = HPF.ar( + in: noise, + freq: XLine.ar(start: h2freq * h2harmonic, end: h2freq, dur: h2glide), + mul: Env.perc(attackTime: h2att, releaseTime: h2rel, level: h2amp, curve: h2curve).delay(h2del).ar); + + click = BPF.ar( + in: Impulse.ar(0) * SampleRate.ir / 48000, + freq: cfreq, + rq: crq, + mul: camp); + + snd = Mix.ar(tone1 + tone2 + hit1 + hit2 + click).tanh * amp; + + DetectSilence.ar(in: snd, doneAction: 2); + + OffsetOut.ar(out, Pan2.ar(snd, pan)); +}, + metadata: ( + credit: "originals by Nathan Ho aka snapizz", + category: \drums, + tags: [\bass] + ) +).add; + + + + + + + +/////////////////////////////////////////////////////////////////////////////////////////////////////// + + +( +Pbindef(\phpSnareP, *[ + instrument: 'phpHatSnare', + //dur: Pseq([3,3,Prand([2,3],inf)] * (1/4), inf), + dur: Pseq([ + Pseq([Rest(2),3,3] * (1/4),3), + Pseq([3/8,3/8,2/8]),2],inf), + rls: 0.3, + amp:0.3, + bpa: 0, + lpa: 2, + hpa: 3, + legato:0.1, + outBus: ~satBus +]); + +Pbindef(\phpHiHatP, *[ + instrument: 'phpHatSnare', + dur: + Pseq([ + Pn(1/2,16), + Prand([Pn(1/2,2),Pn(1/4,8)], 8), + Pseq([Prand([1,2]),2,Prand([1,3,Pn(1/2,2)])] * 0.25, 12), + Pseq([ Pn(1/4,16), Pn(1/8,12)], 16) + ],inf), + rls: Pwrand([0.02, 0.2], [0.9,0.1], inf), + bpa: 0, + lpa: 0, + hpa: 2, + amp: Prand([0.5,0.7],inf), + legato:0.1, + pan: Pwhite(-0.2,0.2), + outBus: ~satBus, + // outBus: 0, +]); + +Pbindef( \phpKickP, + \instrument, \phpKick, + \dur, + Prand([ + Pseq([1,2,1,1/4]), + Pseq([1,2,2,1/4]), + Pseq([Pn(1/4,2),3/4,3/4,2/4]), + Pseq([Pn(1/4,1),3/4,3/4,2/4]), + Pseq([3/4,3/4,2/4]), + Pseq([3/4,3/4,2/4,3/4]), + Pseq([3/8,3/8,2/8]), + ], inf), + //\dur, 1, + //\dur, Pseq([3/4,3/4,2/4],inf)*0.5, + \t1freq, 200, //Pseq([400, 161, 800], 3), + \t1curve, \lin, //Pwhite(-4,1), + \t1curve, Pwhite(-4,1), + \t2curve, \lin, //Pwhite(-4,1), + \t2curve, Pwhite(-4,1), + \t2freq, Pwhite(49,53,inf), + \t2del, 0.001, + \t2glide, Pwhite(0.03,0.1, inf), + \amp, 1.5, + \out, ~satBus +); + +Pbindef(\lcmnoip, + \instrument, \lcmnoise, + + \dur, Pseq([ + Pseq([20 + Prand([Pseq([0.01,0.01]),0.02]), + Pn(0.05,19), + 9.03 + ], 20), // 20 x 10 + 30]), + + \dur, 8, + \amp, 0.7, + \amp1, 0, //Pseq([1,0.1],inf), + \amp2, 0.7, //Pseq([0.6,1],inf), + \legato, 1, + \out, 0, +) +) +/////////////////////////////////////////////////////////////////////////////////// + +( +// fx on the bus !! +~saturator.free; +~saturator = Synth(\saturator, [\inBus, ~satBus]); +~saturator.set(\amplag, 1, \amp, 0.7) +) +TempoClock.tempo = 60/60; + +Pbindef(\phpHiHatP).play(quant:4); +Pbindef(\phpKickP).play(quant:4); +Pbindef(\phpSnareP).play(quant:4); +Pbindef(\lcmnoip).play(quant:4); + +// fx controls +~saturator.set(\amplag, 2, \amp, 1.5) +~saturator.set(\amplag, 5, \amp, 0.7) +~saturator.set(\amplag, 30, \amp, 0) + +// random +~saturator.set(\revtime, rrand(0.01,5), \earlyreflevel, rrand(0.01,1)) + +~saturator.set(\taillevel, 1) +~saturator.set(\taillevel, 0) +~saturator.set(\earlyreflevel, 0.5) +~saturator.set(\earlyreflevel, 0.1) +~saturator.set(\earlyreflevel, 0.3) +~saturator.set(\earlyreflevel, 0) +~saturator.set(\revtime, 1) +~saturator.set(\revtime, 3) +~saturator.set(\revtime, 0.1) +~saturator.set(\revtime, 0.01) + +( +Pbindef(\phpHiHatP).stop; +Pbindef(\phpKickP).stop; +Pbindef(\phpSnareP).stop; +Pbindef(\lcmnoip).stop; +) + +Pdef(\phpHiHatP).clear; +Pdef(\phpKickP).clear; +Pdef(\phpSnareP).clear; +Pdef(\lcmnoip).clear + + +/////////////////////////////////////////////////////////////////////////////////////// + + + +SynthDef(\harpsi, { + arg outbus = 0, freq = 440, ffreq = 2, amp = 1, gate = 1, release = 1; + var out; + freq = freq * rrand(1, 1.01); + out = EnvGen.ar(Env.adsr(releaseTime:release), gate, doneAction: Done.freeSelf) + * amp * Pulse.ar([freq,freq*1.006]/1, 0.25, 0.75); + out = RLPF.ar(out, freq * (ffreq / 4) + 1 ); + Out.ar(outbus, out); +}).add; + + + +( // then run this - sequence +TempoClock.default.tempo = 1.4; +~scale = Scale.new(#[0,2,4,5,7,8,10],tuning: \pythagorean, name: "mixolydianb6"); +p = Pbind( + \instrument, \harpsi, + \root, -12, + \scale, ~scale, + // \ffreq, Pseq(((1..2) ++ (3..1)),inf), + \ffreq, Pfunc { ~filterFreq }, + //\ffreq, 30, + \degree, Pseq([ + Pseries({ rrand(0, 7) }, { ([1,2]).choose }, { rrand(4, 8) }), + Pseries({ rrand(0, 7) }, {([1,2]).choose}, { rrand(4, 8) }), + Pseries({ rrand(7, 14) }, 0-{([1,2]).choose}, { rrand(4, 8) }) + ], inf), + \release, Prand([5,6,7,8],inf), + \dur, Prand((1..8)/4, inf), + // \amp, Prand(((1..8)/8)+1, inf), + \amp, 0.6, + \sendosc, Pfunc( + {( + ~imgID = (~imgID + 1) % 9; + ~osc.sendMsg("/ctlin", 74, ~imgID.asInt); + ~imgID.postln; + + ) + }, + {"reseted".postln}), +).play; +) +~osc.sendMsg("/ctlin", 85, 7); + + + + + +SynthDef('mhh1', + { + arg gate = 1, amp = 0.1, pan = 0, outBus = 0, + rls = 1, rls1 = 0.01, lpa = 1, hpa = 1, bpa = 1; + var snd; + + snd = WhiteNoise.ar; + snd = snd + (Pulse.ar(freq: Rand(5000!10, 15000)).sum * 0.2); + snd = ( + LPF.ar(snd, Rand(500,2000)) * lpa * 4 + * LFSaw.ar(LFNoise1.ar(1/3).range(15,30)).range(LFNoise1.ar(1).range(0.2,0.9), 1) + * EnvGen.ar(Env.perc(0, Rand(0.1, rls)), gate) ) + + ( + HPF.ar(snd, Rand(2000,15000)) * hpa + * LFSaw.ar(LFNoise1.ar(1/3).range(15,30)).range(LFNoise1.ar(1).range(0.2,0.9), 1) + * EnvGen.ar(Env.perc(0, Rand(0.1, rls)), gate) ) + + ( + BPF.ar(snd, Rand(1000,5000), 0.2) * bpa * 4 + * LFSaw.ar(LFNoise1.ar(1/3).range(15,30)).range(LFNoise1.ar(1).range(0.2,0.9), 1) + * EnvGen.ar(Env.perc(0, Rand(0.1, rls)), gate) ) + ; + snd = HPF.ar(snd, 200); + snd = LPF.ar(snd, 13000); + snd = snd * EnvGen.kr(Env.cutoff(rls), gate, doneAction:Done.freeSelf); + snd = Pan2.ar(snd, pan); + snd = snd * amp; + + Out.ar(outBus, snd); + } +).add; + +SynthDef(\kick, + { + arg gate = 1, out = 0, amp = 0.1, release = 0.9, freq=50, pan = 0, cutoff = 500, fxout=0, hpf=0; + var snd, env, fenv; + + freq = freq * Rand(0.98, 1.02); + fenv = EnvGen.ar(Env([freq*4,freq],0.08,'cub')); + snd = SinOsc.ar(freq: [fenv,fenv*2], mul:[1,0.4] ).sum; + snd = snd * LFPulse.ar(24).range(0.7,1).lag(0.02); + snd = snd + WhiteNoise.ar(0.8); + snd = snd + SinOsc.ar(freq: [freq*2,freq*4], mul:EnvGen.ar(Env.perc(0, 0.2)) * 0.5).sum; + snd = snd + LFTri.ar(freq: freq*4, mul:EnvGen.ar(Env.perc(0, 0.5)) * 0.3); + snd = RLPF.ar(snd, cutoff, 0.7); + snd = HPF.ar(snd, hpf); + snd = snd.softclip; + snd = snd * EnvGen.ar(Env.adsr(0, 0.05, 0.4, release, curve:'sqr'), gate: gate, doneAction:Done.freeSelf); + snd = snd * amp * 5; + snd = Pan2.ar(snd, pan); + + Out.ar(fxout, snd); + Out.ar(out, snd); + } +).add; + +SynthDef.new(\sc808hh, { + arg decay=0.42, amp=1, pan=0, out=0; + var sig, sighi,siglow, sum, env, osc1, osc2, osc3, osc4, osc5, osc6; + env = EnvGen.kr(Env.perc(0.00001, decay, 1, -30),doneAction:2); + osc1 = LFPulse.ar(203.52); + osc2 = LFPulse.ar(366.31); + osc3 = LFPulse.ar(301.77); + osc4 = LFPulse.ar(518.19); + osc5 = LFPulse.ar(811.16); + osc6 = LFPulse.ar(538.75); + sighi = (osc1 + osc2 + osc3 + osc4 + osc5 + osc6); + siglow = (osc1 + osc2 + osc3 + osc4 + osc5 + osc6); + sighi = BPF.ar(sighi, 8900, 1); + sighi = HPF.ar(sighi, 9000); + siglow = BBandPass.ar(siglow, 8900, 0.8); + siglow = BHiPass.ar(siglow, 9000, 0.3); + sig = BPeakEQ.ar((siglow+sighi), 9700, 0.8, 0.7); + sig = sig * env * amp; + sig = Pan2.ar(sig, pan); + Out.ar(out, sig); +}).add; + +SynthDef('ringer', + { + arg outBus = 0, amp = 0.1, freq = 140, gate = 1, pan = 0; + var snd; + + freq = freq * LFNoise1.kr(1/10).range(1,1.01); + snd = WhiteNoise.ar; + snd = snd + Pulse.ar( + freq: [freq, freq * 0.5, freq * 2] * SinOsc.ar(1).range(0.99,1.01), + mul: 0.01 ).sum; + snd = Resonz.ar(snd, + [ + freq, + freq * 1.5 * SinOsc.kr(4).range(0.99,1.02) , + freq * 1.75 * SinOsc.kr(4).range(0.99,1.02) , + freq * 0.75 * LFNoise1.kr(4).range(0.99,1.01), + freq * 0.5 * LFNoise1.kr(4).range(0.99,1.01), + freq * 2 * LFNoise1.kr(4).range(0.99,1.01) + ], 0.001, [100,1,1,10,10,5]).sum * 0.5; + snd = snd + LFTri.ar(freq/2*0.99, mul:0.03); + snd = snd + Pulse.ar(freq/2*1.01, mul:0.005); + snd = Limiter.ar(snd, 0.8); + snd = snd * amp ; + snd = snd * EnvGen.ar(Env.adsr(0.001, 0.2), gate, doneAction:2); + + Out.ar(outBus, snd); + } +).add; + +SynthDef(\deciverbfx, + { + arg inBus, outBus = 0; + var snd, input; + + input = In.ar(inBus,1); + snd = Decimator.ar(input, LFNoise1.ar(1/5).range(500,10000)); + snd = snd * LFPulse.ar(10).range(LFNoise1.kr(1/10).range(0.5,0.9),1) + * LFNoise1.kr(1/10).range(0.2,0.5); + snd = snd + input; + snd = RLPF.ar(snd, LFNoise1.ar(0.1).exprange(1000,10000), rq:0.8); + snd = GVerb.ar(snd, 100); + + Out.ar(outBus, snd); + } +).add; + + + + +// SynthDef(\revfx, +// { +// arg inBus, outBus = 0; +// var snd, input; + +// input = In.ar(inBus,2); +// snd = GVerb.ar(input.sum, 100); + +// Out.ar(outBus, snd); +// } +// ).add; + + + + + + + + + +SynthDef(\beep_sus_filt, + { + arg outBus = 0, freq=440, gate=1, amp=0.1, ffreq = 1000, fq = 0.5, pan=0; + var snd; + + ffreq = EnvGen.ar(Env.adsr(0.001,0.05,0.5,0.1), gate, ffreq, ffreq/2); + snd = Pulse.ar(freq) + Saw.ar(freq * Rand(0.99,1.01) * [2,4], mul:0.3) + LFTri.ar(freq); + snd = RLPF.ar(snd, ffreq, fq); + snd = snd * EnvGen.kr(Env.cutoff, gate, doneAction:Done.freeSelf); + snd = snd * amp; + snd = Splay.ar(snd, 1, 1, 0); + Out.ar(outBus, snd); + } +).add; + + +SynthDef(\fxdly, + { + arg inBus, outBus = 0; + var snd, input; + + input = In.ar(inBus,2); + + snd = input + CombN.ar( + HPF.ar(input, 500), + 1, [0.33,0.44], 5, 0.5 ); + + Out.ar(outBus, snd); + } +).add; + + + + + +( +Pbindef(\kickP, *[ + instrument: 'kick', + //dur: Pseq([3/4,3/4,2/8,2/8],inf), + //dur: Pseq([3/4,3/4,3/8,1/8],inf), + //dur: Pseq([3/4,3/4,3/8,1/8],inf), + //dur: Pseq([2/4,2/4,1/4,3/4],inf), + dur: Prand([ + Pseq([3/4,3/4,2/4],4), + Pseq([3/4,3/4,2/8,2/8]), + Pseq([3/4,3/4,3/8,1/8]), + Pseq([2/4,2/4,1/4,3/4],2), + Pseq([2/4,1/4,2/4,3/4],2) + ],inf), + + //dur: Pseq([3/4,3/4,2/4],inf), + + degree:0, + octave:[2,3], + //amp: [1,0.3] * 0.12, + amp: Pwhite([0.1,0.3],[0.3,0.1]) * 0.2, + release: [0.6, 0.3], + legato:Pwhite(0.01,0.1), + cutoff: Pwhite(500,2000), + outBus: ~limitBus, +]).play(quant:4); +) +Pbindef(\kickP).stop + +// fadeout +Pbindef(\kickP, *[ amp: Pwhite([0.1,0.3],[0.3,0.1]) * 0.2 * Pseq([ Pseg([1,0], 60,\lin), Pn(0)] ) ]) +Pbindef(\kickP, *[ amp: Pwhite([0.1,0.3],[0.3,0.1]) * 0.2 * Pseq([ Pseg([0,1], 60,\lin), Pn(1)] ) ]).play + +Pbindef(\kickP, *[ cutoff: Pwhite(2000,6000) ]) + +//////////////////////////////////////////////////////////////////////////////////////////// +( +Pbindef(\hhP, *[ + instrument: 'mhh1', + //dur: Pseq([Prand([1,2]),2,Prand([1,3,Pn(1/2,2)])] * 0.2, inf), + dur: Prand([1/4,1/2,Pn(1/8,2), 1/8, Pn(1/3,3), Pn(1/6,3)],inf), //Pseq([Prand([1,2]),2,Prand([1,3,Pn(1/2,2)])] * 0.2, inf), + dur: Prand([1/4,1/2,Pn(1/8,2), 1/8],inf), //Pseq([Prand([1,2]),2,Prand([1,3,Pn(1/2,2)])] * 0.2, inf), + dur: Prand([1/4,1/2],inf), //Pseq([Prand([1,2]),2,Prand([1,3,Pn(1/2,2)])] * 0.2, inf), + rls: Pwrand([0.5, 1], [0.9,0.1], inf), + bpa: 0.6, + lpa: 0.1, + hpa: 1, + legato:0.01, + amp:0.4, + pan: Pwhite(-0.2,0.2), + outBus: ~subBus, +]).play(quant:4); +) +Pbindef(\hhP).stop +Pbindef(\snP).stop + +Pbindef(\hhP, *[ amp: 0.4 * Pseq([ Pseg([1,0], 60,\lin), Pn(0)] )]) + + +//////////////////////////////////////////////////////////////////////////////////////// +( +Pbindef(\hh808P, *[ + instrument: 'sc808hh', + dur: Pseq([Pn(1/2,16),Pn(1/4,64)],inf), +]).play(quant:4) +) + + +( +Pbindef(\snP, *[ + instrument: 'mhh1', + dur: Pseq([Prand([4,6]),4,3] * 0.25, inf), + rls: Pwrand([1, Pwhite(0.1,0.5)], [0.1,0.9], inf), + bpa: 0, + lpa: 2, + hpa: 0, + legato:0.1, + amp:0.3, + outBus: ~subBus, +]).play(quant:4); +) + +Pbindef(\snP).stop + +Pbindef(\snP, *[ amp: 0.4 * Pseq([ Pseg([1,0], 60,\lin), Pn(0)] )]) + + +( +Pbindef(\bassP, *[ + instrument: \beep_sus_filt, + dur: Pseq([Pn(0.5, 112), Pn(0.4, 140)], inf), + dur: 1/2, //Pseq([Pn(0.5, 112), Pn(0.4, 140)], inf), + octave: Pseq([Pn([3,4],28), Pn([5,4],28), Pn([6,4],28)], inf), + scale: Scale.minor, + degree: Pseq([Pn(Pwrand([0,14],[0.95,0.05]),7),7],inf) * Pwhite(0.999,1.001) + //+ Pdup(4,Pxrand([0,3,2],inf)) + , + outBus:~dlyBus, + legato: Pwhite(0.4,0.7), + fq: Pseg([0.9,0.6,0.9], 17, \lin, inf), + amp:0, + ffreq: Pseg([500,2000,500], 10, \exp, inf), + pan:0 +]).play(quant:4); +) +Pbindef(\bassP).play +Pbindef(\bassP).stop + +// fade in +Pbindef(\bassP, *[ amp: 0.15 * Pseq([ Pseg([0,1], 60,\lin), Pn(1)] )]) + +// fadeout +Pbindef(\bassP, *[ amp: 0.15 * Pseq([ Pseg([1,0], 60,\lin), Pn(0)] )]) + + +( +Pbindef(\beepP, *[ + instrument: \beep_sus, + dur: 1/4, + dur: 1/4, + legato: 0.01, + scale: Scale.minor, + octave: 5, + degree: Pseq([[-7,0], Pxrand([2,4,6,7],5)], inf), + detune: Pseg([0,1,3,1,0], 5, \cub, inf), + mtranspose: Pseq([Pn(0, 6*3), Pn(2, 6*3), Pn(-2, 6*4)],inf), + mtranspose: 0, + sawamp: Pseg([0,1,0], 40, \lin, inf), + outBus: ~fxBus2, + amp:0 // !!! +]).play(quant:4); +) + +// fade in +Pbindef(\beepP, *[ amp: 1 * Pseq([ Pseg([0,1], 60,\lin), Pn(1)] )]) + +//fadeout +Pbindef(\beepP, *[ amp: 1 * Pseq([ Pseg([1,0], 60,\lin), Pn(0)] )]) +Pbindef(\beepP, *[ amp: 0.3 * Pseq([ Pseg([0,1], 30,\lin), Pn(1)] )]) +Pbindef(\beepP, *[ amp: 1 ]) + +Pbindef(\beepP, *[mtranspose: Pseq([Pn(0, 6*3), Pn(2, 6*3), Pn(-2, 6*4)],inf)]) +Pbindef(\beepP, *[mtranspose: 0]) + +Pbindef(\beepP, *[ legato:0.01 ]) +Pbindef(\beepP, *[ legato: Pseg([0.01,0.5,0.01], 10, \lin,inf) ]) +Pbindef(\beepP, *[ octave: [5,6] ]) +Pbindef(\beepP, *[ octave: [5] ]) +Pbindef(\beepP).stop + +( +Pbindef(\hhP).stop; +Pbindef(\snP).stop; +Pbindef(\kickP).stop; +Pbindef(\hh808P).stop; +) + +( + +Pbindef(\hhP).play; +Pbindef(\snP).play; +Pbindef(\kickP).play; +Pbindef(\hh808P).play; +) +Pbindef(\ringP, *[ + instrument: 'ringer', + dur: 6, + scale: Scale.minor, + degree: Pseq([0,Prand([2,-2]), Prand([5,4])], inf), + octave: [4,5,6], + amp: [2,2,1] * 0.5, + detune: Pxrand([0,1,2,3], inf), + legato: 1, + outBus: ~fxBus +]).play(quant:4); +) + +( +Pbindef(\ringP).stop; + + + + + +SynthDef(\disson, { + arg outBus=0, gate = 1, amp=0.1, freq=26.midicps, detune=1.2, lpf=7000, rls=1, pan=0; + + + var snd; + snd = Pulse.ar([freq, freq * 4, freq * 2] * LFNoise1.kr(1!12).range(1,detune)); + snd = RLPF.ar(snd, LFNoise1.kr(1/2!12).exprange(100,lpf.max(101)), LFNoise1.kr(1).exprange(0.1,0.5)); + snd = snd.sum; + snd = Limiter.ar(snd, 0.9); + snd = Pan2.ar(snd, SinOsc.kr(1/6).range(-1,1)); + //snd = snd * EnvGen.ar(Env) + snd = snd * EnvGen.kr(Env.cutoff(rls), gate, doneAction:Done.freeSelf); + snd = Balance2.ar(snd[0], snd[1], pan); + snd = snd * amp; + + OffsetOut.ar(outBus, snd); + // snd * -3.dbamp; + +}).add; + + + +( +Pbindef(\dissonP, + *[ + instrument: \disson, + dur:Pxrand([1,1/2,2,1/2,1/2,1,2,Pn(1/4,2),2],inf) * 1/4, + //dur:Pxrand([1/4,Pn(1/8,2), 1/2],inf), + //dur:Pxrand([1/4,Pn(1/8,2), 1/2],inf), + //dur: 1/2, + //dur: 1/4, //Pxrand([1/4,Pn(1/8,2), 1/2],inf), + //degree: Pseq([0,3,-2],inf), + octave: Prand([2,3],inf), + scale: Scale.minor, + degree: Pseq([0,2,7,12],inf), + //degree: 0, + legato:Pwhite(0.1, 0.4), + rls:0.01, + amp: Pwhite(0.6,0.9)*0.9, + detune:Pwhite(1,1.01), + lpf:Pwhite(100,2000), + pan: -0.2 + ]) +) + +Pbindef(\dissonP).play(quant:4) +Pbindef(\phpHiHatP).play(quant:4); + +Pbindef(\dissonP).clear + + + + +SynthDef(\subsin, { + arg outBus = 0, gate = 1, amp = 0.1, freq=50, rls=1; + var snd; + + snd = SinOsc.ar(freq!2); + snd = snd * EnvGen.kr(Env.cutoff(rls), gate, doneAction:Done.freeSelf); + snd = snd * amp; + + Out.ar(outBus, snd); +}).add; + + + + + +( +Pbindef(\subP, + *[ + instrument: \subsin, + dur: 4, + octave: [2,3], + degree: -3, + legato: 0.1, + rls:2, + amp:[0.8,0.2] +] + ).play +) + + +Pbindef(\subP).stop + + + + + + + + + + + + + + + +SynthDef(\bet, { |gate = 1, freq = 234, out = 0, pan = 0, amp = 0.1, cutoff = 4000 | + var snd, env, fenv; + freq = [freq, freq * 1.01] * Rand(0.995, 1.0); + freq = freq * SinOsc.kr(5).range(0.99, 1.01); + env = EnvGen.ar(Env.asr(0, 1, 3), gate, doneAction:2); + fenv = EnvGen.ar(Env.adsr(0.05, 0.5, 0.4, 2), gate); + snd = SinOsc.ar(freq); + snd = snd + Pulse.ar(freq * 0.5, mul:5); + snd = snd + LFTri.ar(freq * [1,2].choose * 1.01, mul:1); + snd = LPF.ar(snd, cutoff * fenv + 100); + snd = snd + Decimator.ar(snd, freq*30); + snd = snd * env * amp; + snd = Balance2.ar(snd[0], snd[1], pan, 0.7); + snd = snd * 0.4; + OffsetOut.ar(out, snd); +}).add; + +SynthDef(\nhat, { |gate = 1, out = 0, amp = 0.1, rls = 0.2, pan = 0| + var snd, env; + env = EnvGen.ar(Env.asr(0, 1, rls, -10), gate:gate, doneAction: Done.freeSelf); + snd = WhiteNoise.ar; + snd = snd * env; + snd = BPF.ar(snd, 9000); + snd = snd * amp; + + snd = Pan2.ar(snd, pan); + Out.ar(out, snd); +}).add; + +SynthDef(\kick, { |gate = 1, out = 0, amp = 0.1, release = 0.9, freq=50, pan = 0, cutoff = 500, fxout=0, hpf=0 | + var snd, env, fenv; + fenv = EnvGen.ar(Env([freq*4,freq],0.08,'cub')); + snd = SinOsc.ar(freq: [fenv,fenv*2], mul:[1,0.4] ).sum; + snd = snd * LFPulse.ar(24).range(0.7,1).lag(0.02); + snd = snd + WhiteNoise.ar(0.3); + snd = snd + SinOsc.ar(freq: [freq*2,freq*4], mul:EnvGen.ar(Env.perc(0, 0.2)) * 0.5).sum; + snd = snd + LFTri.ar(freq: freq*4, mul:EnvGen.ar(Env.perc(0, 0.5)) * 0.3); + snd = RLPF.ar(snd, cutoff, 0.7); + snd = HPF.ar(snd, hpf); + snd = snd.softclip; + snd = snd * EnvGen.ar(Env.adsr(0, 0.05, 0.4, release, curve:'sqr'), gate: gate, doneAction:Done.freeSelf); + snd = snd * amp * 5; + snd = Pan2.ar(snd, pan); + //DetectSilence.ar(snd, doneAction:Done.freeSelf); + Out.ar(fxout, snd); + Out.ar(out, snd); +}).add; + + + + +// reverb on a reverb bus + ~revFx = Synth(\revfx, [\inBus, ~revBus, \amp, 0.4, \wet, 0.5], addAction:\addAfter); + + // PATTERNS: //////////////////////////////////////// + +/// !!!!! + t = TempoClock.default.tempo = 110/120; + +( + Pbindef(\kicko, *[ + instrument: \kick, + freq: Prand((1..9) * 0.1 + 1 + 50,inf), + dur: Pseq([2/3,2/3,1/3,2/3,1/6,1/6,1/3],inf) + Prand([0,0,1/3,1/6,2/3],inf) * 3 * 1/4, + sustain: 0.1, + //hpf: Pseg([300,300,0,0,3000, 3000], [60, 60, 120, 30, 30]), + hpf: 30, //Pseg([300,300,0,0,3000, 3000], [60, 60, 120, 30, 30]), + //amp: Pseg([0, 0, 0.1, 0.1, 0.01, 0], [60, 60, 120, 20, 10], \sqr), + amp: 0.2, + + release: Prand((1..9) * 0.1, inf), + cutoff: Prand((1..2) * 500, inf), + ]).play(quant:4); +) + +Pbindef(\kicko).stop +Pbindef(\kicko).clear + +( + Pbindef(\nhatP, *[ + instrument: \nhat, + dur: Pwrand([1/3, Pn(1/6,2)], [0.9,0.1], inf) * 3/2, + //amp: Pseg([0, 0, 0.1, 0.1, 0], [60, 60, 120, 30]), + amp: 0.1, + pan: Pwhite(-0.5,0.5), + sustain: Prand([0.002, 0.01, 0.02],inf) + ]).play(quant:4); +) + +Pbindef(\nhatP).stop +Pbindef(\nhatP).clear + + +( + Pbindef(\ichiP, *[ + instrument: \bet, + dur: Prand([ + Pseq([1/3, 3/6, 1/3, 1/3, 1/6, 2/6],4), + Pseq([3/6, 1/3, 1/3, 1/6, 2/6, 1/3],4), + Pseq([1/3, 1/3, 1/6, 2/6, 1/3, 3/6],4), + Pseq([1/3, 1/6, 2/6, 1/3, 3/6, 1/3],4), + Pseq([1/6, 2/6, 1/3, 3/6, 1/3, 1/3],4), + Pseq([2/6, 1/3, 3/6, 1/3, 1/3, 1/6],4) + ],inf) * 3/4, + + + note: Pseq([ + 1, 13, 15, 20, 16, Rest(), // Dbm(add9) + -1, 11, 15, 20, 16, Rest(), // EM7/B + -3, 13, 15, 20, 16, Rest(), // Dbm(add9)/A + -3, 12, 18, 23, 25, Rest(), // Gbsus4(+11)/A + -6, 6, 9, 13, 20, Rest(), // Gbm(add9) + -4, 8, 12, 18, 16, 20, // Abaug7 + 1, 13, 15, 20, 16, Rest(), // Dbm(add9) + -1, 11, 15, 20, 16, Rest(), // EM7/B + -3, 13, 15, 20, 16, Rest(), // Dbm(add9)/A + -3, 12, 18, 23, 16, Rest(), // + -4, 6, 11, 15, 16, Rest(), // EM9/Ab + -4, 6, 13, 16, 25, 28, // Ab7sus4(-13( + -6, 6, 9, 13, 20, Rest(), // Gbm(add9) + -6, 8, 12, 18, 20, 16, // Abaug7 + ], inf), + + octave: + Pseq([ Pn([4,5],14*6*2),Pn([4,5,6],14*6*2), + Pseq([ + Prand([[5,4],[5,6],[4,5,6]]), + Pn(Pwrand([5,6],[0.9,0.1]), 5) + ], 14*2), + Pseq([ Pn([4,5,6,7],14*6*4)])]), + + octave: 5, + detune: 3, // Hz added to final freq + legato: Pseq([4, Pn(Prand((2..5)*0.2),5)],inf) * 0.1, + cutoff: Prand((1..4),inf) * + Pseg([50, 500, 1000, 1000, 50, 10], [60, 60, 120, 30, 20], \cub), + //amp: Pseg([0, 0.1, 0.1, 0.01, 0], [10, 120+180, 30, 10], \cub) * 0.6, + amp: 0.1, + pan: Prand((0..10)-5*0.1, inf), + out: ~revBus, + ]).play(quant:4) +) + +Pbindef(\ichiP, *[ octave: 5]) +Pbindef(\ichiP, *[ octave: [4,5,6,7] ]) +Pbindef(\ichiP, *[ octave: Prand([[5,4],[5,6],[4,5,6]], inf)]) +Pbindef(\ichiP, *[ octave: Prand([[5,4,7],[4,5,6],[4,7,6]], inf)]) +Pbindef(\ichiP, *[ amp: 0.1]) +Pbindef(\ichiP, *[ cutoff: 3000]) + +Pbindef(\ichiP).stop +Pbindef(\ichiP).clear + + + + + + +SynthDef(\ping,{ + arg freq = 100, gate = 1, amp = 0.1, out=0, fxBus=nil, bufnum; + var snd, env; + freq = [freq, freq*1.01]; + //snd = SinOsc.ar(freq) + Pulse.ar(freq*0.99) + LFTri.ar(freq*1.01); + snd = Osc.ar(bufnum, freq); + snd = snd * Linen.kr(gate, 0.001, 1, 0.01, doneAction:Done.freeSelf); + snd = LeakDC.ar(snd); + snd = Limiter.ar(snd, 0.95); + snd = snd * amp * 0.5 * 10; + //Out.ar() + Out.ar(out,snd); +} ).add; + +SynthDef(\wab,{ + arg freq = 100, gate = 1, amp = 0.1, out=0, fxBus=nil, bufnum; + var snd, env; + snd = Osc.ar(bufnum, freq); + snd = snd * Linen.kr(gate, 0.001, 1, 0.1, doneAction:Done.freeSelf); + snd = LeakDC.ar(snd); + snd = BRF.ar(snd, LFNoise1.kr(2).exprange(100,1000), 0.1); + snd = RLPF.ar(snd, LFNoise1.kr(2).exprange(50,1000), 0.2); + snd = snd * 20; + snd = Limiter.ar(snd, 0.95); + snd = Splay.ar(snd); + snd = snd * amp * 0.7 * 10 ; + Out.ar(out,snd); +} ).add; + + +SynthDef(\sab,{ + arg freq = 100, gate = 1, amp = 0.1, out=0, fxBus=nil, bufnum, sustain; + var snd, env; + freq = XLine.ar(freq,freq * 0.1, sustain); + snd = Osc.ar(bufnum, freq); + snd = snd * Linen.kr(gate, 0.001, 1, 0.01, doneAction:Done.freeSelf); + snd = LeakDC.ar(snd); + snd = snd + PinkNoise.ar(0.5); + snd = HPF.ar(snd, 500); + snd = snd * 20; + snd = snd.softclip; + snd = Limiter.ar(snd, 0.95); + snd = Splay.ar(snd); + snd = snd * amp * 0.15 * 10; + Out.ar(out,snd); +} ).add; + +SynthDef(\dlywrangler, { + arg out=0, in, wet=0.1, wet2=0.5; + var snd, dly2; + snd = In.ar(in,2); + dly2 = CombN.ar(HPF.ar(snd,300), 1, [0.5,0.77], 5, 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; + + + + + + + // create delaymangler comb // on ctrl+. you need to reeval this + ~dw = Synth(\dlywrangler, [\out, 0, \in, ~dly, \wet2, 0.1, \wet, 0.02]); + + ~dw.set(\wet2, 0.9) + ~dw.set(\wet, 0.5) + + + + + +SynthDef(\baz1, { + + arg outBus=0, gate=1, freq, amp, fff=5, res=1, delwet=0.3, wrap=1.2; + var snd, env, fenv; + + fenv = EnvGen.ar(Env.adsr(), gate) + 1; + env = EnvGen.ar(Env.cutoff, gate, doneAction:Done.freeSelf); + snd = Pulse.ar([freq, freq*1.005], mul:1); + snd = snd + LFTri.ar([freq * 0.995, freq] * 1, mul:4); + snd = snd.clip2; + snd = snd.wrap2(wrap); + snd = MoogFF.ar(snd, freq * fenv * fff, res); + snd = Limiter.ar(snd); + snd = snd * amp * env; + + Out.ar(outBus, snd); +}).add; + + + +Pbindef(\line1, + \instrument, \baz1, + \dur, 1/8, + \degree, Pseq([0,2,5,7,Pwrand([12,13,14],[0.9,0.05,0.05]),2,5], inf), + \mtranspose, Pstutter(160,Pseq([0,3,5],inf)), + \legato, Pseg([1,5,1]/10, 15, \cubed, inf), + \octave, [3,5], + \scale, Scale.major(\just), + \amp, Pseg([0.1,0.2,0.1], 23, \lin, inf), + \fff, Pseg([1,1.5,1], 30, \cubed, inf), + \res, Pseg([1,2,1], 8, \cubed, inf), + \delwet, 1, + \outBus, ~dlyBus2 +).play; + +59.wait; + +Pbindef(\line1, \amp, 0) ; +1.wait; + +Pbindef(\line1, \amp, Pseg([0.1,0.2,0.1], 23, \lin, inf)); + +Pbindef(\bazpat, + \instrument, \baz1, + \dur, Pseq([1,1,2,4] / 8, inf), + \degree, Pseq([0, 3, 2, 0, 7, 6], inf), + \mtranspose, Pseq([ Pn(0, 4*20), Pn(3, 4*20) ],inf), + \octave, [2,3], + \scale, Scale.major(\just), + \legato, Prand((1..10)/10, inf), + \amp, Pseg([ [0, 0.6], [0.3,0.6], [0,0.6] ], 17, \lin, inf), + \fff, Pseg([1,13,1], 15, \cubed, inf), + \res, Pseq([1,2,3]/2,inf), + \wrap, Pseg([2, 0.9, 2], 19, \exp, inf), + \outBus, ~dlyBus1 +).play; + +120.wait; + +Pbindef(\line1, \mtranspose, 0); + + + +//AKJ to pattern femalemalenonbinary + + +wait(0.2); + +Pbindef(\akjDisChordp, *[ + instrument: \akjDisChord, + freq:300, + dur: Pseq([260]), + legato: 1.1, + amp: 0.8, + //out: ~mainOut, + out: 0 +]).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, + out: 0 +]).play; + +wait(60); + +Pbindef(\akjBazp, *[ + instrument: \akjBaz, + freq: 300, + dur: 10, + amp: 0.3, + legato: 0.20, + //out: ~mainOut + out: 0 +]).play; + +wait(120); + +Pbindef(\akjClickp).stop; +Pbindef(\akjBazp).stop; + + + + + + +"--- 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, 0 + //\out, ~reverBus, + //\gainBus, ~softSawAmpBus +).play; + + + + + + +// --- 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; + + + +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]), + \dur, Pseq([1,1,6], inf), + \amp, 1, + \amp1, Pseq([1,0.1],inf), + \amp1, 0, + \amp2, 1, //Pseq([0.6,1],inf), + \legato, 1, + \out, ~mainOut, +).play; + + + +////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////// + + + +// -------------------------------------------------- + + + + + + + + + + + + + +//////////////////////////////////////////////////////////////////////////////////////////////////// +// EXPERIMENTATION + + +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// + + + +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// + + + + +///////////////////////////////////////////////////////////////////////////////////////// +// Buffer Player //////////////////////////////////////////////////////////////////////// +( + +) + +( +Pbindef(\playBufP, *[ instrument: \playBuf, + bufnum: Pdup(64, Pxrand([ + ~getSmp.("qebrus_machines_snip1"), + ~getSmp.("qebrus_machines_snip2"), + ~getSmp.("qebrus_machines_snip3"), + ~getSmp.("qebrus_machines_snip4"), + ~getSmp.("qebrus_machines_snip5") + ],inf)), + + dur: Pxrand([1,1/2,1/2,1/4],inf) * 1/2, + legato:[0.9,0.1,0.2] * Pwhite(0.9,1), + start:Pwhite(0,0.91), + amp: 0.4, + //rate:Prand([1,0.5,2],inf) + //rate: Prand([1,0.5,2],inf), + rate: 1, + +]).play +) + + + + + + + + + + + +// +(// main bus, synthdef and a synth ///////////////////////////////////////////////////////////////// +SynthDef(\mainOut, { + var snd = In.ar(\inBus.kr(0), 2); + + //snd = BHiPass4.ar(snd, 80); // cutsubout + snd = snd * Lag.kr(\amp.kr(0), \ampLag.kr(0.1)); + + Out.ar(\outBus.kr(0), snd) +}).add; + +~mainOutVol.free; +~mainOutVol = Synth(\mainOut, [\inBus, ~mainOut, \outBus, 0, \ampLag, 2, \amp, 1], addAction:\addToTail); +) + +~mainOut.free; ~mainOut = Bus.audio(s, 2); + + + +( // testing +x.free; +x = SynthDef(\test, {Out.ar(~mainOut, SinOsc.ar(190)!2)}).play +) + +~mainOutVol.set(\ampLag, 5, \amp, 1) + +// FX BUSSES ///////////////////////////////////////////////////////////////////////////////////////// +// FX: reverberations (GreyHole/JPverb/GVerb) +// simple delays with Comb + feedback + filters +( + +) +s.freqscope + +( +SynthDef(\fxdly, + { + arg inBus, outBus = 0; + var snd, input; + + input = In.ar(inBus,2); + + snd = input + CombN.ar( + HPF.ar(input, 500), + 1, [0.33,0.44], 5, 0.5 ); + + Out.ar(outBus, snd); + } +).add; +) + + + + + + + + + + + + + + +/////////////////////////////////////////////////////////////////////////////////////////////////// + + + +( +SynthDef(\beep_sus_filt, + { + arg outBus = 0, freq=440, gate=1, amp=0.1, ffreq = 1000, fq = 0.5, pan=0; + var snd; + + ffreq = EnvGen.ar(Env.adsr(0.001,0.05,0.5,0.1), gate, ffreq, ffreq/2); + snd = Pulse.ar(freq) + Saw.ar(freq * Rand(0.99,1.01) * [2,4], mul:0.3) + LFTri.ar(freq); + snd = RLPF.ar(snd, ffreq, fq); + snd = snd * EnvGen.kr(Env.cutoff, gate, doneAction:Done.freeSelf); + snd = snd * amp; + snd = Splay.ar(snd, 1, 1, 0); + Out.ar(outBus, snd); + } +).add; +SynthDef(\beep_sus, + { + arg outBus = 0, freq=440, gate=1, amp=0.1, sawamp = 0.1; + var snd; + + snd = Pulse.ar(freq) + LFTri.ar(freq/ Rand(1.99,2.01)) + Saw.ar(freq * Rand(1.99,2.01), mul:sawamp); + snd = snd * 0.5 + WhiteNoise.ar; + snd = BPF.ar(snd, LFNoise1.kr(9).exprange(500,4000), 0.5); + snd = snd * EnvGen.kr(Env.cutoff, gate, doneAction:Done.freeSelf); + snd = snd * amp * 0.5; + + Out.ar(outBus, snd!2); + } +).add; +) + + + + + +( +Pbindef(\beepP, *[ + instrument: \beep_sus, + //dur: 2, + dur: Prand([1/4,1/2,1/2,1/4,Pn(1/4,2),Pn(1/3,3),Pn(1/6,3)],inf), + legato: 0.01, + scale: Scale.minor, + octave: 4, + degree: Pseq([[-7,0], Pxrand([2,4,6,7],5)], inf), + detune: Pseg([0,1,3,1,0], 5, \cub, inf), + mtranspose: Pseq([Pn(0, 6*3), Pn(2, 6*3), Pn(-2, 6*4)],inf), + mtranspose: 0, + sawamp: Pseg([0,1,0], 40, \lin, inf), + outBus: ~localfdlyBus, + amp:4 // !!! +]).stop(quant:4); +) +Pbindef(\beepP).stop +Pbindef(\beepP).clear + + + + + + + + + + + + + + +// VOLUME CONTROL // ------------------------------------------------------------------ +SynthDef(\volFX, { + var snd = In.ar(\inBus.kr(0), 2); + + //snd = BHiPass4.ar(snd, 80); // cutsubout + snd = snd * VarLag.kr(\amp.kr(0), \ampLag.kr(0.1), 0, \exp); + + Out.ar(\outBus.kr(0), snd) +}).add; + + +~ch1Vol.free; ~ch1Vol = Synth(\volFX, [\inBus, ~ch1Bus, \outBus, 0, \ampLag, 2, \amp, 1], addAction:\addToTail); + + +~ch1Bus.free; ~ch1Bus = Bus.audio(s, 2); + + + + + + + + + + + + + +//}); // end of s.waitForBoot +//) +// +// +// +// +// + + + + + + + + + + + + + + + + + + + + + + + + + + +( +Pbindef(\playBufErr3, *[ instrument: \playBuf, + bufnum: Pdup(3, + Prand([ + ~getSmp.("Misc034"), + ~getSmp.("Misc106"), + ~getSmp.("Misc188"), + ~getSmp.("RawGlitch_259"), + ~getSmp.("RawGlitch_412"), + ~getSmp.("RawGlitch_336") + ],inf) + ), + start: 0, + legato:1, + dur:2, + amp:0.7, + rate:1 +]).stop; +) + + +( +Pbindef(\playBufHat3, *[ instrument: \playBuf, + bufnum: ~getSmp.("Hats076"), + legato:1, + //dur:Pseq([Pn(1/4,6),Pn(1/8,3)],inf), + dur:Pseq([Pn(1/8,7),2],inf), + amp: 3 * Pseq([1,1/5],inf) * Pwhite(0.3,1), + rate: Pwhite(0.95,1.01) +]).play(quant:4); +); + +( +Pbindef(\dissonP, + *[ + instrument: \disson, + dur:Pxrand([1,1/2,2,1/2,1/2,1,2,Pn(1/4,2),2],inf) * 1/4, + //dur:Pxrand([1/4,Pn(1/8,2), 1/2],inf), + //dur:Pxrand([1/4,Pn(1/8,2), 1/2],inf), + //dur: 1/2, + //dur: 1/4, //Pxrand([1/4,Pn(1/8,2), 1/2],inf), + //degree: Pseq([0,3,-2],inf), + octave: Prand([2,3],inf), + scale: Scale.minor, + degree: Pseq([0,2,7,12],inf), + //degree: 0, + legato:Pwhite(0.1, 0.4), + rls:0.01, + amp: Pwhite(0.6,0.9)*2, + detune:Pwhite(1,1.21), + lpf:Pwhite(100,2000), + pan: -0.2 + ]).play(quant:4) +) + + + + +( +Pbindef(\playBufKick5, *[ instrument: \playBuf, + bufnum: ~getSmp.("Kicks010"), + legato:1, + dur:Pseq([3,4,1/4,2],inf), + //dur:1/4, + amp: 4 * Pwhite(0.7,1), + rate: Pwhite(0.95,1.01) +]).play(quant:4); +); diff --git a/scd/dev/ndefs.scd b/scd/dev/ndefs.scd new file mode 100644 index 0000000..c4c5998 --- /dev/null +++ b/scd/dev/ndefs.scd @@ -0,0 +1,327 @@ +// +// +// NDEFSSSSSSSSSSSSSSSSSS /////////////////////////////////////////////////////// +// + +( +Ndef(\gran, { + var gfreq=150, snd; + snd = GrainBuf.ar( numChannels: 2, + + // 28 !! solo + // 36 + // 13 / 14,15,16,17,18,26, + //sndbuf: ~granBfr.at([13,14,15,17]), + //sndbuf: ~granBfr.at(26), + //sndbuf: ~granBfr.at(36), + sndbuf: ~granBfr.at([15,17,36,26]), + + trigger: Impulse.ar(gfreq + * LFNoise0.ar(gfreq).range(1,1.1)), + dur: 0.05, + + //rate: [1,0.77], + rate: 1, + pos: + //SinOsc.ar(1/10).range(0.01, 0.95) + LFTri.ar(1/10).range(0.01, 0.95) + * LFNoise1.ar(gfreq).range(0.98, 1), + + pan: LFNoise1.ar(gfreq).range(-1,1), + mul: 0.2 + ); + snd = LPF.ar(snd, LFNoise1.ar([1/7,1/8,1/9]).exprange(100,10000)); + //snd = LPF.ar(snd, LFNoise1.ar(1/7).exprange(1000,10000)); + snd = Mix(snd); + snd = JPverb.ar(HPF.ar(snd,80), 6) * 0.3 + snd; + snd = Limiter.ar(snd, 0.9); + snd * \amp.kr(0).lag3(\amplag.kr(20)); +}).play; +) +Ndef(\gran).fadeTime = 3; +Ndef(\gran).set(\amp, 0, \amplag, 30); +Ndef(\gran).set(\amplag, 1, \amp, 1); + +Ndef(\gran).play +Ndef(\gran).stop +Ndef(\gran).clear + + + +( +Ndef(\gran, { + var gfreq=150, snd; + snd = GrainBuf.ar( numChannels: 2, + // pe4enkata + sndbuf: ~granBfr.at(47), + + trigger: Impulse.ar(gfreq + * LFNoise0.ar(gfreq).range(1,1.1)), + dur: 0.1, + + //rate: [1,0.77], + rate: 1, + pos: + //SinOsc.ar(1/10).range(0.01, 0.95) + LFTri.ar(1/120).range(0.11, 0.35) + * LFNoise1.ar(gfreq).range(0.97, 1), + + pan: LFNoise1.ar(gfreq).range(-1,1), + mul: 0.2 + ); + //snd = LPF.ar(snd, LFNoise1.ar([1/7,1/8,1/9]).exprange(100,10000)); + snd = LPF.ar(snd, LFNoise1.ar(1/7).exprange(1000,10000)); + snd = Mix(snd); + snd = JPverb.ar(HPF.ar(snd,80), 6) * 0.3 + snd; + snd = Limiter.ar(snd, 0.9); + snd * \amp.kr(0).lag3(\amplag.kr(20)); +}).play; +) +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// + +( +Ndef(\eyeLiners, + { + var fold,wrap, snd, dly, rev; + + fold = LFNoise1.kr(1/2).range(0.8,1); + wrap = LFNoise1.kr(1/2).range(0.8,1); + + snd = LFTri.ar( + freq: Array.fill(6, { + (LFNoise0.kr(1/30).range(1,4).asInteger.lag(0.2) * 2 + 62).midicps * LFNoise1.kr(1/10).range(1,1.02) + } ) ) + .fold( -1 * fold, fold ) + .wrap(-1*wrap,wrap) + * LFPulse.kr( + freq: LFNoise1.kr(1/ Array.fill(6, {rrand(2,4)} )).range(5,0.1), + width:LFNoise1.kr([1/2,1/3]).range(0.1,0.2)).lag(0.01); + + snd = LPF.ar(snd, LFNoise1.kr(Array.fill(6, {1 / rrand(1,20)})).exprange(1500,8000)); + snd = Splay.ar(snd); + snd = Limiter.ar(snd); + rev = JPverb.ar(snd, 5); + dly = CombL.ar(snd, 1, [0.4,0.6] * LFNoise1.kr(1/10).range(1.5,1.8), 10, mul:0.6); + snd = snd + rev + dly; + //snd = snd + dly; + snd = snd * -6.dbamp; + snd = snd * \amp.kr(0).lag(\amplag.kr(10)); + + }) +) +Ndef(\eyeLiners).set(\amplag, 1, \amp, 0) +Ndef(\eyeLiners).set(\amplag, 30, \amp, 0) + +Ndef(\eyeLiners).play +Ndef(\eyeLiners).stop +Ndef(\eyeLiners).clear +Ndef(\eyeLiners).free +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + + +( +// additional UGens needed: +// AnalogTape, LockheartWavefolder and AnalogVintageDistortion are from +// "ported plugins" https://github.com/madskjeldgaard/portedplugins +// JPverb is in sc3-plugins + +Ndef(\dysphoria1, { + var snd,freq=\freq.kr((30).midicps); + var noise; + + noise = WhiteNoise.ar * LFPulse.kr(freq * [0.5,2],0,0.01).range(0,0.3); + noise = BPF.ar(noise, LFNoise0.kr([1/5,1/4]).exprange(1000,5000).lag(1)); + noise = Splay.ar(noise, LFNoise1.ar(1/3).range(-1,1)); + + freq = [freq,freq*1.01]; + snd = Pulse.ar(freq); + snd = snd + Pulse.ar(freq*2.001,LFNoise1.ar(1/3).range(0.01,0.05)); + snd = LeakDC.ar(snd); + snd = AnalogTape.ar(snd, 0.9, LFNoise1.kr(1/4).range(0,1), 0.5,0,2); + snd = snd.fold(-0.5,0.9); + snd = LockhartWavefolder.ar(snd[0] * LFNoise1.kr(1/4).range(1,10), 4) + + ((LockhartWavefolder.ar(snd[1] * LFNoise1.kr(1/4).range(1,10), 4)) * [-1,1]); + snd = RLPF.ar( + in: snd, + freq: LFNoise1.ar(1/4).exprange(50,\maxCutoff.kr(2100).lag(5)) + * LFPulse.kr(4).range(0.8,1) * LFPulse.kr(6).range(0.6,1) * LFPulse.kr(8).range(0.5,1), + //freq: 100, + rq: LFNoise1.ar(1/3).range(0.1,0.9)); + + snd = snd + noise; + + snd = AnalogVintageDistortion.ar(snd,0,1, oversample:3); + snd = LeakDC.ar(snd); + snd = snd * LFPulse.ar(1/1, width:0.2).range(0.2,1).lag(0.001); + snd = JPverb.ar(snd*0.4, 10, 0, 5, low:0.2) + snd; + snd = Limiter.ar(snd*1, 0.9) * \amp.kr(0).lag(\amplag.kr(5)); + + snd; +}) +) + +Ndef(\dysphoria1).play +Ndef(\dysphoria1).stop +Ndef(\dysphoria1).clear + +Ndef(\dysphoria1).quant=4 + +Ndef(\dysphoria1).set(\amplag, 30, \amp, 0 ) +Ndef(\dysphoria1).set(\maxCutoff, 80) +Ndef(\dysphoria1).set(\freq, (30).midicps) + + +Ndef(\test).set(\maxCutoff,9000); +Ndef(\test3).set(\maxCutoff,9000); +Ndef(\test).set(\maxCutoff,500); +Ndef(\test).set(\maxCutoff,90); + +Ndef(\test).control +r=Routine + +( +var a, b; +a = Prand([38,35,34,32,30,27], inf); +b = a.asStream; +fork({ + 10.do({ + b.postln; + Ndef(\test).set(\freq,b.midicps); + b.next; + + [2,4,3].choose.wait;}); +})) + +Ndef(\test).set(\freq,38.midicps); +Ndef(\test).set(\freq,35.midicps); +Ndef(\test).set(\freq,34.midicps); + +Ndef(\test).set(\freq,32.midicps); +Ndef(\test).set(\freq,30.midicps); +Ndef(\test).set(\freq,27.midicps); + + + +Ndef(\test).set(\freq,(32+12+12+12).midicps); + +///////////////////////////////////////////////////////////////////////////////////////////// + +( +TempoClock.tempo = 60/60; +Ndef(\hypertext404, { + var snd, glc, freq; + + // frequency/ies + freq = ([29,55] + 12 + (\freqoctave.kr(0) * 12)).midicps; + + //postln(freq); + //freq = ([29,55] + 12 + (0 * 12)).midicps; + + // oscialtors + snd = Pulse.ar(freq, mul:LFNoise1.kr(1/3).range(0.5,1)) + + SinOsc.ar(freq/4, mul:LFNoise1.kr(1/3).range(0.2,0.6)) + + LFTri.ar(freq.reverse/2, mul:LFNoise1.kr(1/3).range(0.2,0.6)); + + // breat/pulse-cutter + snd = snd * LFPulse.kr(4).lag(0.01).range(0.8,1) * LFPulse.kr(6).lag(0.001).range(0.1,1) * LFPulse.kr(8).lag(0.001).range(0.1,1); + + snd = RLPF.ar(snd, freq.mean * LFNoise1.kr(1/4).range(0.5,2), LFNoise1.kr(1/3).range(0.4,0.8)); + snd = snd + RLPF.ar(Dust.ar(10, mul:0.3), freq:LFNoise1.kr(5).range(100,4000), rq:LFNoise1.kr(5).range(0.1,0.9)); + + // SATURATE! _______ + snd = AnalogTape.ar(snd * LFNoise0.kr(1/4).exprange(\saturationMin.kr(0.1),\saturationMax.kr(1)), 0.5, SinOsc.kr(1/4).range(0,1), 1, 0, 3); + + snd = Limiter.ar(snd, 0.7); + snd = Splay.ar(snd, 0.5); + snd = JPverb.ar(snd, 4, lowcut:1000) * 0.7 + snd; + + glc = WhiteNoise.ar(LFNoise0.kr(3).range(0,3)) + + Pulse.ar(LFNoise0.kr(8).range(1000,10000), mul:LFNoise0.kr(2).range(0,3)) + * LFPulse.ar(LFNoise0.kr(3).range(0.01,10), width:LFNoise0.kr(5).range(0.01,0.1)).range(0,0.1); + glc = RLPF.ar(in:glc, freq:LFNoise1.kr(5).exprange(300,10000), rq:LFNoise1.kr(5).range(0.2,0.9), mul:LFNoise0.kr(1/2).exprange(0.1,0.9) ); + glc = Pan2.ar(glc, LFNoise0.kr(1).range(-1,1)); + + snd = snd + glc; + snd = Limiter.ar(snd, 0.9); + snd = snd * \amp.kr(0).lag(\amplag.kr(20)) +}); + +Ndef(\hypertext404).quant = 4; +Ndef(\hypertext404).fadeTime = 0.01; +) + + +Ndef(\hypertext404).play +Ndef(\hypertext404).set(\amplag, 2, \amp, 0) +Ndef(\hypertext404).set(\amplag, 30, \amp, 0) +Ndef(\hypertext404).set(\amplag, 20, \amp, 1) +Ndef(\hypertext404).set(\freqoctave, 0) +Ndef(\hypertext404).set(\saturationMin, 0.1,\saturationMax, 2) +Ndef(\hypertext404).stop +Ndef(\hypertext404).clear + + + + +////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////// + + + +b = Buffer.alloc(s, s.sampleRate * 10, 1) +Ndef(\recbuf, {RecordBuf.ar(\in.ar(0!2).at(0), b)}) +Ndef(\recbuf, {RecordBuf.ar(\in.ar(0!2).at(0), b)}) + +( +Ndef(\input, { + var snd = SoundIn.ar([0,1]); + + snd = Decimator.ar(snd, LFNoise1.kr(0.1).range(5000, 20000), + mul: LFNoise1.kr(0.1).range(0.05,0.3), add:snd); + + snd = Greyhole.ar(in:snd, delayTime:0.5, damp:0.5, size:10, + diff:0.7, feedback:0.5, modDepth:1, modFreq:LFNoise1.kr(1/2).range(0.4,1)) * LFNoise1.ar(0.1).range(0.1,1) + + + snd ; + + Limiter.ar(snd, 0.8) +}) +) +Ndef(\input).fadeTime = 8 +Ndef(\input).play(fadeTime:8) + +Ndef(\recbuf) <<>.in Ndef(\input) +b.plot + +// GRANULATE THE CONTENTS OF THE BUFFER +( +Ndef(\gran, { + var snd = GrainBuf.ar(2, + trigger: Impulse.ar(LFNoise1.kr(1/10!3).exprange(80, 180) * LFNoise0.ar(100).range(0.7,1.1)), + dur: LFNoise1.ar(1).range(0.08,0.1), + sndbuf: b, + rate:[1,1/2,2], pos:LFNoise1.kr(1/20!3).range(0,1), + pan: LFNoise0.ar(100).range(-1,1) + ); + snd = LPF.ar(snd, LFNoise1.kr(1/10!3).exprange(500,10000)); + snd = Mix(snd); + snd = JPverb.ar(snd, LFNoise1.kr(1/10!2).range(1,10)) + snd; + Limiter.ar(Mix(snd*0.7), 0.8) * Env.circle([0.5,0.3,0.5],90,\cub).kr * 0.01; +}) +) +Ndef(\gran).fadeTime = 30 +Ndef(\gran).play + + +Ndef(\gran).end(30) // fadeout +Ndef(\gran).stop // stop immediately diff --git a/scd/lib/05-func.scd b/scd/lib/05-func.scd new file mode 100644 index 0000000..828a6d1 --- /dev/null +++ b/scd/lib/05-func.scd @@ -0,0 +1,8 @@ + + +// function to partially match filename for buffers +~getSmp = { |regexp| + ~bfrList.detect { |buf| + regexp.matchRegexp(buf.path) + } +}; diff --git a/scd/lib/10-osc.scd b/scd/lib/10-osc.scd new file mode 100644 index 0000000..b15d56e --- /dev/null +++ b/scd/lib/10-osc.scd @@ -0,0 +1,219 @@ +///////////////////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////////////////// +// Open Sound Control to Processing +// osc connection + +// TODO move to init + +( +~conOsc = NetAddr.new("localhost", 12000); +//~conOsc = NetAddr.new("roosta.remote", 12000); +~sOsc = { // helper function to reduce redundancy + arg target, value; + target = "/" +/+ target; // +/+ does not add whitespace + ~conOsc.sendMsg("/ctlin", target, value); + postln(">>> rcv/snd: /ctlin " + target + " value:" + value ); +}; +); + + +( +~oscTitles0a = { + ~sOsc.("drawPlatesimgCbank", 7); + ~sOsc.("drawPlatesimgCblendMode", 7); + ~sOsc.("drawPlatesimgCid", 0); + ~sOsc.("drawPlatesTexCspeed", 0); + ~sOsc.("drawPlatesToggle", 1); +}; + +~oscTitles0b = { + ~sOsc.("drawPlatesimgCbank", 7); + ~sOsc.("drawPlatesimgCblendMode", 7); + ~sOsc.("drawPlatesimgCid", 1); + ~sOsc.("drawPlatesTexCspeed", 0); + ~sOsc.("drawPlatesToggle", 1); +}; +~oscTitles1 = { + ~sOsc.("drawPlatesimgCid", 2); + ~sOsc.("drawPlatesimgCbank", 7); + ~sOsc.("drawPlatesimgCblendMode", 7); + ~sOsc.("drawPlatesTexCspeed", 0); + ~sOsc.("drawPlatesToggle", 1); +}; +~oscTitles2 = { + ~sOsc.("drawPlatesimgCid", 3); + ~sOsc.("drawPlatesimgCbank", 7); + ~sOsc.("drawPlatesimgCblendMode", 7); + ~sOsc.("drawPlatesTexCspeed", 0); + ~sOsc.("drawPlatesToggle", 1); +}; +~oscTitles3 = { + ~sOsc.("drawPlatesimgCid", 4); + ~sOsc.("drawPlatesimgCbank", 7); + ~sOsc.("drawPlatesimgCblendMode", 7); + ~sOsc.("drawPlatesTexCspeed", 0); + ~sOsc.("drawPlatesToggle", 1); +}; +~oscTitles4 = { + ~sOsc.("drawPlatesimgCid", 5); + ~sOsc.("drawPlatesimgCbank", 7); + ~sOsc.("drawPlatesimgCblendMode", 7); + ~sOsc.("drawPlatesTexCspeed", 0); + ~sOsc.("drawPlatesToggle", 1); +}; +~oscTitles5 = { + ~sOsc.("drawPlatesimgCid", 6); + ~sOsc.("drawPlatesimgCbank", 7); + ~sOsc.("drawPlatesimgCblendMode", 7); + ~sOsc.("drawPlatesTexCspeed", 0); + ~sOsc.("drawPlatesToggle", 1); +}; +~oscTitles6 = { + ~sOsc.("drawPlatesimgCid", 7); + ~sOsc.("drawPlatesimgCbank", 7); + ~sOsc.("drawPlatesimgCblendMode", 7); + ~sOsc.("drawPlatesTexCspeed", 0); + ~sOsc.("drawPlatesToggle", 1); +}; +~oscTitles7 = { + ~sOsc.("drawPlatesimgCid", 8); + ~sOsc.("drawPlatesimgCbank", 7); + ~sOsc.("drawPlatesimgCblendMode", 7); + ~sOsc.("drawPlatesTexCspeed", 0); + ~sOsc.("drawPlatesToggle", 1); +}; +); + + +~drawImageBlenderInit = { + ~sOsc.("drawImageBlenderToggle", 0); + ~sOsc.("drawImageBlenderBank", 0 ); + ~sOsc.("drawImageBlenderID", 0); + + ~sOsc.("iblNum", 10); //{ iblNum = int(oscVal2) ; } // 6 + ~sOsc.("iblX", 64 ); //{ iblX = ((oscVal2-64) / 64.0) * width/2 ; } // 7 int( ((oscVal2-64) / 64.0) * width/2 ); } + ~sOsc.("iblY", 64 ); //{ iblY = ((oscVal2-64) / 64.0) * width/2 ; } // 8 + ~sOsc.("iblWidth", 67); //{ iblWidth = oscVal2 * oscVal2 * 0.2 * norm(width, 0, width) ; } // 9 int(oscVal2 * oscVal2 * 0.05 * norm(width, 0, width)); + ~sOsc.("iblHeight", 70 ); //{ iblHeight = oscVal2 * oscVal2 * 0.1 * norm(height, 0, height) ; } // 10 + + ~sOsc.("iblRot", 0 ); //{ iblRot = radians(oscVal2 * 360 / 120) ; } // 11 + ~sOsc.("iblTexWidth", 64 ); //{ iblTexWidth = (oscVal2 - 64) * oscVal2 ; } // 18 + ~sOsc.("iblTexHeight", 64 ); //{ iblTexHeight = (oscVal2 - 64) * oscVal2 ; } // 19 + + ~sOsc.("iblTexSpeedXfactor", 64 ); //{ iblTexSpeedXfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 22 + ~sOsc.("iblTexSpeedYfactor", 64 ); //{ iblTexSpeedYfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 23 + + ~sOsc.("iblH", 64 ); //{ iblH = int(oscVal2) ; } // 24 + ~sOsc.("iblS", 127); //{ iblS = int(oscVal2) ; } // 25 + ~sOsc.("iblB", 127 ); //{ iblB = int(oscVal2) ; } // 26 + ~sOsc.("iblA", 127 ); //{ iblA = int(oscVal2) ; } // 27 + ~sOsc.("iblBflicker", 0 ); //{ iblBflicker = int(oscVal2) ; } // 28 + + ~sOsc.("iblItX", 64 ); //{ iblItX = ((oscVal2-64) * abs(oscVal2-64) * 0.1) ; } // 29 + ~sOsc.("iblItY", 64 ); //{ iblItY = ((oscVal2-64) * abs(oscVal2-64) * 0.1) ; } // 30 + ~sOsc.("iblItTexX", 0); //{ iblItTexX = oscVal2 * 4 ; } // 31 + ~sOsc.("iblItTexY", 0 ); //{ iblItTexY = oscVal2 * 4; } // 32 + ~sOsc.("iblItRot", 0); //{ iblItRot = radians(oscVal2) ; } // 33 +}; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +// OSC tests //////////////////////////////////////////////////////////////////////////////////////////// + +/* + +( +// VIDEO player +~sOsc.value("playVideoToggle", 1); +~sOsc.value("playVideoBank", 0 );//) { playVideoBank = int(oscVal2); } // 44 +~sOsc.value("playVideoID", 0 );//) { playVideoID = int(oscVal2); } // 45 +~sOsc.value("playVideoPausePlay", 1 ); //) { playVideoPausePlay = boolean(int(oscVal2)); } // 47 +~sOsc.value("playVideoHue", 64 ); //) { playVideoHue = int(oscVal2); } // 44 +~sOsc.value("playVideoSaturation", 0 ); //) { playVideoSaturation = int(oscVal2); } // 44 +~sOsc.value("playVideoBrightness", 127 ); //) { playVideoBrightness = int(oscVal2); } // 44 +~sOsc.value("playVideoAlpha", 127 );//) { playVideoAlpha = int(oscVal2); } // 44 +~sOsc.value("playVideoSpeed", 100); //) { playVideoPausePlay = boolean(int(oscVal2)); } // 47 +~sOsc.value("playVideoJump", 25); +) + +~sOsc.value("playVideoPausePlay", 0 ); +~sOsc.value("playVideoPausePlay", 1 ); +~sOsc.value("playVideoJump", rand(99)); + +// just don't use reverse/negatives! +~sOsc.value("playVideoSpeed", -100); +~sOsc.value("playVideoSpeed", 100); + +~sOsc.value("playVideoToggle", 0); + + +// examples for SC->P5 connections +( +~subPattern1 = Pbind(*[ + instrument: "subPulse", + dur: Pseq([6,6,4],inf), + note: Pseq([30], inf), + amp: 0.1, + filterCurve: Pseq([-1],inf), + imgspeed: Prand([1,2,3], inf), + imgdirection: Pseq([10,30,50,70,90,110,127], inf), + osc: Pfunc { |e| + ~sOsc.value("drawPlatesTexAspeed", e.imgspeed); + ~sOsc.value("drawPlatesTexAdirection", e.imgdirection); + } +]); +) + +( +~cracklePattern0 = Pbind(*[ + instrument: "cracklePulse", + dur: Pseq([16],inf), + length: Pseq([0.01], inf), + amp: 0.2, + chaos: Pseq([1.5], inf), + id: Pwalk( (0 .. 54), Prand([ -2,-1, 1, 2], inf)), + dir: Pseq([127,64], inf), + osc: Pfunc { |e| + ~sOsc.value("drawFlylinesflyPixId", e.id); + ~sOsc.value("drawFlylinesflyDirection", e.dir); + }; +]); +) + +*/ diff --git a/scd/lib/15-synthDefs.scd b/scd/lib/15-synthDefs.scd new file mode 100644 index 0000000..1a7aa54 --- /dev/null +++ b/scd/lib/15-synthDefs.scd @@ -0,0 +1,303 @@ +// SynthDefs /////////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////////////////// +// INSTRUMENTS ///////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// + + + + +// -- GRANULATION -- // ------------------------------------------------------------------- + +SynthDef(\granPlay, { + arg outBus = 0, bufnum = 0, gate = 1, rate = 1, amp = 0.1, atk = 4, rls = 4, sul = 1, + freq = 160, fvar = 1, gdur = 0.1, durvar = 0.01, gpos = 0, posvar = 0.01, + pitch = 1, pitchvar = 0, width = 1, gain = 0.3, autoPosN=0, autoPosS=0; + var snd, env, posOsc, posSin; + + posOsc = LFNoise1.kr(1/8) * autoPosN; + posSin = SinOsc.kr(1/8) * autoPosS; + + env = EnvGen.ar( + Env.adsr( + attackTime: atk, + decayTime: atk, + sustainLevel: sul, + releaseTime: rls), + gate, doneAction:2); + + snd = GrainBuf.ar( + numChannels: 2, + trigger: Impulse.kr(freq + (freq * (fvar * LFNoise2.kr(freq)))), // a UGen? + dur: gdur + (durvar * LFNoise2.kr(freq)), // in seconds + sndbuf: bufnum, + rate: pitch + (pitchvar * LFNoise2.kr(5)), // pitch !! WHAT IS THE SPEED OF VARIATIONS? setable?? + pos: gpos + (posvar * LFNoise2.kr(freq)) + posOsc + posSin, // position 0-1 + interp: 2, // interpolation for pitchshifting + pan: LFNoise1.kr(10).range(width.neg, width), // if numChannels=2, similar to Pan2, -1 left, +1 right + maxGrains: 512, + mul: gain + ); + + snd = snd * env * amp; + Out.ar(outBus, snd); +}).add; + + + +// -- PLAY BUFFER -- // ------------------------------------------------------------------- + +SynthDef(\playBuf, { + arg outBus = 0, bufnum = 0, gate=1, rate=1, start=0.4, atk=0.01, rls=0.01, amp=0.1, sdel=0, hpff=0; + var env, snd, rscale; + + rscale = BufRateScale.kr(bufnum); + + snd = PlayBuf.ar(1, bufnum, rscale * rate, gate, + //20000, + BufDur.kr(bufnum) * BufSampleRate.kr(bufnum) * start, + 0); + snd = [snd, DelayL.ar(snd,0.2, sdel)]; + snd = HPF.ar(snd, hpff); + env = EnvGen.ar(Env.adsr(atk, 0,1,rls), gate, doneAction:2); + snd = snd * env * amp ; + + Out.ar(outBus, snd); +}).add; + + + + +// beep. -- // ------------------------------------------------------------------- + +SynthDef(\beep_sus, + { + arg outBus = 0, freq=440, gate=1, amp=0.1, sawamp = 0.1; + var snd; + + snd = Pulse.ar(freq) + LFTri.ar(freq/ Rand(1.99,2.01)) + Saw.ar(freq * Rand(1.99,2.01), mul:sawamp); + snd = snd * EnvGen.kr(Env.cutoff, gate, doneAction:Done.freeSelf); + snd = snd * amp * 0.1; + + Out.ar(outBus, snd!2); + } +).add; + +// + +// simplenoise -- // -------------------------------------------------------- + +SynthDef(\noise, + { + arg outBus = 0, freq=440, gate=1, amp=0.1; + var snd; + //snd = Pulse.ar(freq) + LFTri.ar(freq/ Rand(1.99,2.01)) + Saw.ar(freq * Rand(1.99,2.01), mul:sawamp); + snd = PinkNoise.ar(2); + snd = Dust2.ar(200, mul:4) + snd; + snd = HPF.ar(snd, 200); + snd = snd * EnvGen.kr(Env.cutoff, gate, doneAction:Done.freeSelf); + snd = snd * amp; + Out.ar(outBus, snd!2); + } +).add; + + + +// 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; + + + +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; + + + +// 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 ; + OffsetOut.ar(out, snd); +}).add; + +///////////////////////////////////////////////////////////////////////////////////////// +// EFFECTS ///////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// + + +// LOW PASS FILTER AS BUS EFFECT // --------------------------------------------------- +SynthDef(\lpfFX, + { + arg inBus, outBus = 0, cutoff = 500, cutoffLag = 5; + var snd, input; + + input = In.ar(inBus,2); + snd = BLowPass4.ar(input, VarLag.kr(cutoff.max(50), cutoffLag, 0, warp:\exp)); + + Out.ar(outBus, snd); + } +).add; + + +// FEEDBACK DELAY WITH BANDPASS FILTER AND STEREO ROTATION // ---------------------------- +SynthDef(\localFeedbackDelay1, + { + arg inBus, outBus = 0; + var snd, input, local; + + input = In.ar(inBus,2); + + local = LocalIn.ar(2) * \amount.kr(0.99); + + local = BPF.ar(local, LFNoise1.kr(0.6).range(450,2000), LFNoise1.kr(0.1).range(0.8,1)); + local = Rotate2.ar(local[0], local[1], 0.23); + + local = AllpassN.ar(local, 0.05, {Rand(0.01,0.05)}.dup, 2); + local = DelayN.ar(local, 0.3, [0.26,0.19]); + local = AllpassN.ar(local, 0.05, {Rand(0.03,0.15)}.dup, 2); + + local = LeakDC.ar(local); + + local = local + input; + LocalOut.ar(local); + + Out.ar(outBus, local); + } +).add; + + +// reverb synthdef +SynthDef(\revfx, { |inBus, outBus = 0, wet = 0.3, amp = 0.2| + var snd, rev; + + snd = In.ar(inBus, 2); + //snd = BHiShelf.ar(snd, 5000, db:-3); + rev = GVerb.ar(snd, 100, taillevel:wet); + rev = rev * amp; + + OffsetOut.ar(outBus, rev); +}).add; + + +// SATURATOR + REVERB // ----------------------------------------------------------- +SynthDef(\saturator, { + arg inBus, outBus=0; + var snd, in, revsnd; + + in = In.ar(inBus, 2); + //snd = AnalogTape.ar(in * LFNoise1.kr(1/4).range(1,2), 0.5, SinOsc.kr(1/4).range(0,1), 1, 0, 3) * 0.5; + snd = AnalogTape.ar(in * 2, 0.5, 1, 1, 0, 3) * 0.5; + snd = snd.sum; + revsnd = HPF.ar(snd,100); + snd = GVerb.ar(revsnd, 100, \revtime.kr(6), drylevel:0, earlyreflevel:\earlyreflevel.kr(0.3), taillevel:\taillevel.kr(0.3)) + * 0.5 + snd; + snd = [snd[0], DelayL.ar(snd[1], 0.2, 0.02)]; + //snd = in; // !! --------- + //snd = Limiter.ar(snd, 0.9, 0.1); + snd = snd * \amp.kr(0).lag3(\amplag.kr(10)); + + OffsetOut.ar(outBus, snd); +}).add; + + + + diff --git a/scd/smp/BC_Bass017.wav b/scd/smp/BC_Bass017.wav new file mode 100644 index 0000000..12e473d Binary files /dev/null and b/scd/smp/BC_Bass017.wav differ diff --git a/scd/smp/BC_Bass155.wav b/scd/smp/BC_Bass155.wav new file mode 100644 index 0000000..27bd976 Binary files /dev/null and b/scd/smp/BC_Bass155.wav differ diff --git a/scd/smp/BC_Bass167.wav b/scd/smp/BC_Bass167.wav new file mode 100644 index 0000000..8014928 Binary files /dev/null and b/scd/smp/BC_Bass167.wav differ diff --git a/scd/smp/BC_Bass168.wav b/scd/smp/BC_Bass168.wav new file mode 100644 index 0000000..0df6839 Binary files /dev/null and b/scd/smp/BC_Bass168.wav differ diff --git a/scd/smp/BC_Bass170.wav b/scd/smp/BC_Bass170.wav new file mode 100644 index 0000000..e6cb8f1 Binary files /dev/null and b/scd/smp/BC_Bass170.wav differ diff --git a/scd/smp/BC_Bass174.wav b/scd/smp/BC_Bass174.wav new file mode 100644 index 0000000..2983f53 Binary files /dev/null and b/scd/smp/BC_Bass174.wav differ diff --git a/scd/smp/BC_Bass178.wav b/scd/smp/BC_Bass178.wav new file mode 100644 index 0000000..e0c8198 Binary files /dev/null and b/scd/smp/BC_Bass178.wav differ diff --git a/scd/smp/BC_Bleeps007.wav b/scd/smp/BC_Bleeps007.wav new file mode 100644 index 0000000..5db7180 Binary files /dev/null and b/scd/smp/BC_Bleeps007.wav differ diff --git a/scd/smp/BC_Bleeps009.wav b/scd/smp/BC_Bleeps009.wav new file mode 100644 index 0000000..1584dd7 Binary files /dev/null and b/scd/smp/BC_Bleeps009.wav differ diff --git a/scd/smp/BC_Bleeps015.wav b/scd/smp/BC_Bleeps015.wav new file mode 100644 index 0000000..6ce4593 Binary files /dev/null and b/scd/smp/BC_Bleeps015.wav differ diff --git a/scd/smp/BC_Bleeps018.wav b/scd/smp/BC_Bleeps018.wav new file mode 100644 index 0000000..e5eaf71 Binary files /dev/null and b/scd/smp/BC_Bleeps018.wav differ diff --git a/scd/smp/BC_Bleeps085.wav b/scd/smp/BC_Bleeps085.wav new file mode 100644 index 0000000..e31b92c Binary files /dev/null and b/scd/smp/BC_Bleeps085.wav differ diff --git a/scd/smp/BC_Bleeps111.wav b/scd/smp/BC_Bleeps111.wav new file mode 100644 index 0000000..0a3e302 Binary files /dev/null and b/scd/smp/BC_Bleeps111.wav differ diff --git a/scd/smp/BC_Bleeps133.wav b/scd/smp/BC_Bleeps133.wav new file mode 100644 index 0000000..286c050 Binary files /dev/null and b/scd/smp/BC_Bleeps133.wav differ diff --git a/scd/smp/BC_Bleeps140.wav b/scd/smp/BC_Bleeps140.wav new file mode 100644 index 0000000..76e77c6 Binary files /dev/null and b/scd/smp/BC_Bleeps140.wav differ diff --git a/scd/smp/BC_Bleeps148.wav b/scd/smp/BC_Bleeps148.wav new file mode 100644 index 0000000..8cbaca2 Binary files /dev/null and b/scd/smp/BC_Bleeps148.wav differ diff --git a/scd/smp/BC_Bleeps152.wav b/scd/smp/BC_Bleeps152.wav new file mode 100644 index 0000000..367ba05 Binary files /dev/null and b/scd/smp/BC_Bleeps152.wav differ diff --git a/scd/smp/BC_Bleeps153.wav b/scd/smp/BC_Bleeps153.wav new file mode 100644 index 0000000..a3c09fd Binary files /dev/null and b/scd/smp/BC_Bleeps153.wav differ diff --git a/scd/smp/BC_Bleeps157.wav b/scd/smp/BC_Bleeps157.wav new file mode 100644 index 0000000..619d219 Binary files /dev/null and b/scd/smp/BC_Bleeps157.wav differ diff --git a/scd/smp/BC_Bleeps178.wav b/scd/smp/BC_Bleeps178.wav new file mode 100644 index 0000000..66a5db1 Binary files /dev/null and b/scd/smp/BC_Bleeps178.wav differ diff --git a/scd/smp/BC_Bleeps199.wav b/scd/smp/BC_Bleeps199.wav new file mode 100644 index 0000000..a9fb680 Binary files /dev/null and b/scd/smp/BC_Bleeps199.wav differ diff --git a/scd/smp/BC_Bleeps210.wav b/scd/smp/BC_Bleeps210.wav new file mode 100644 index 0000000..507c5ea Binary files /dev/null and b/scd/smp/BC_Bleeps210.wav differ diff --git a/scd/smp/BC_Hats074.wav b/scd/smp/BC_Hats074.wav new file mode 100644 index 0000000..c29f7ba Binary files /dev/null and b/scd/smp/BC_Hats074.wav differ diff --git a/scd/smp/BC_Hats075.wav b/scd/smp/BC_Hats075.wav new file mode 100644 index 0000000..707c6ee Binary files /dev/null and b/scd/smp/BC_Hats075.wav differ diff --git a/scd/smp/BC_Hats076.wav b/scd/smp/BC_Hats076.wav new file mode 100644 index 0000000..b8570b0 Binary files /dev/null and b/scd/smp/BC_Hats076.wav differ diff --git a/scd/smp/BC_Hats077.wav b/scd/smp/BC_Hats077.wav new file mode 100644 index 0000000..e528a0e Binary files /dev/null and b/scd/smp/BC_Hats077.wav differ diff --git a/scd/smp/BC_Hats078.wav b/scd/smp/BC_Hats078.wav new file mode 100644 index 0000000..a5cbb16 Binary files /dev/null and b/scd/smp/BC_Hats078.wav differ diff --git a/scd/smp/BC_Hats079.wav b/scd/smp/BC_Hats079.wav new file mode 100644 index 0000000..727f10f Binary files /dev/null and b/scd/smp/BC_Hats079.wav differ diff --git a/scd/smp/BC_Hats081.wav b/scd/smp/BC_Hats081.wav new file mode 100644 index 0000000..41d0bc6 Binary files /dev/null and b/scd/smp/BC_Hats081.wav differ diff --git a/scd/smp/BC_Hats082.wav b/scd/smp/BC_Hats082.wav new file mode 100644 index 0000000..d19ac47 Binary files /dev/null and b/scd/smp/BC_Hats082.wav differ diff --git a/scd/smp/BC_Hats083.wav b/scd/smp/BC_Hats083.wav new file mode 100644 index 0000000..3f04465 Binary files /dev/null and b/scd/smp/BC_Hats083.wav differ diff --git a/scd/smp/BC_Hats085.wav b/scd/smp/BC_Hats085.wav new file mode 100644 index 0000000..4cbf0ec Binary files /dev/null and b/scd/smp/BC_Hats085.wav differ diff --git a/scd/smp/BC_Hats088.wav b/scd/smp/BC_Hats088.wav new file mode 100644 index 0000000..a936928 Binary files /dev/null and b/scd/smp/BC_Hats088.wav differ diff --git a/scd/smp/BC_Hats104.wav b/scd/smp/BC_Hats104.wav new file mode 100644 index 0000000..374f4d5 Binary files /dev/null and b/scd/smp/BC_Hats104.wav differ diff --git a/scd/smp/BC_Hats108.wav b/scd/smp/BC_Hats108.wav new file mode 100644 index 0000000..7880e66 Binary files /dev/null and b/scd/smp/BC_Hats108.wav differ diff --git a/scd/smp/BC_Hats119.wav b/scd/smp/BC_Hats119.wav new file mode 100644 index 0000000..5de08e7 Binary files /dev/null and b/scd/smp/BC_Hats119.wav differ diff --git a/scd/smp/BC_Hats120.wav b/scd/smp/BC_Hats120.wav new file mode 100644 index 0000000..7cbdd31 Binary files /dev/null and b/scd/smp/BC_Hats120.wav differ diff --git a/scd/smp/BC_Kicks003.wav b/scd/smp/BC_Kicks003.wav new file mode 100644 index 0000000..7fa14a2 Binary files /dev/null and b/scd/smp/BC_Kicks003.wav differ diff --git a/scd/smp/BC_Kicks010.wav b/scd/smp/BC_Kicks010.wav new file mode 100644 index 0000000..d28c7ca Binary files /dev/null and b/scd/smp/BC_Kicks010.wav differ diff --git a/scd/smp/BC_Kicks019.wav b/scd/smp/BC_Kicks019.wav new file mode 100644 index 0000000..ddeed2f Binary files /dev/null and b/scd/smp/BC_Kicks019.wav differ diff --git a/scd/smp/BC_Kicks026.wav b/scd/smp/BC_Kicks026.wav new file mode 100644 index 0000000..77e96c4 Binary files /dev/null and b/scd/smp/BC_Kicks026.wav differ diff --git a/scd/smp/BC_Kicks027.wav b/scd/smp/BC_Kicks027.wav new file mode 100644 index 0000000..d24d4e3 Binary files /dev/null and b/scd/smp/BC_Kicks027.wav differ diff --git a/scd/smp/BC_Kicks030.wav b/scd/smp/BC_Kicks030.wav new file mode 100644 index 0000000..7b91b11 Binary files /dev/null and b/scd/smp/BC_Kicks030.wav differ diff --git a/scd/smp/BC_Kicks051.wav b/scd/smp/BC_Kicks051.wav new file mode 100644 index 0000000..befa8d5 Binary files /dev/null and b/scd/smp/BC_Kicks051.wav differ diff --git a/scd/smp/BC_Kicks062.wav b/scd/smp/BC_Kicks062.wav new file mode 100644 index 0000000..cc7e8b5 Binary files /dev/null and b/scd/smp/BC_Kicks062.wav differ diff --git a/scd/smp/BC_Long002.wav b/scd/smp/BC_Long002.wav new file mode 100644 index 0000000..775092e Binary files /dev/null and b/scd/smp/BC_Long002.wav differ diff --git a/scd/smp/BC_Long005.wav b/scd/smp/BC_Long005.wav new file mode 100644 index 0000000..8b63237 Binary files /dev/null and b/scd/smp/BC_Long005.wav differ diff --git a/scd/smp/BC_Long007.wav b/scd/smp/BC_Long007.wav new file mode 100644 index 0000000..88bd9b0 Binary files /dev/null and b/scd/smp/BC_Long007.wav differ diff --git a/scd/smp/BC_Long009.wav b/scd/smp/BC_Long009.wav new file mode 100644 index 0000000..b97f258 Binary files /dev/null and b/scd/smp/BC_Long009.wav differ diff --git a/scd/smp/BC_Long010.wav b/scd/smp/BC_Long010.wav new file mode 100644 index 0000000..3d53b88 Binary files /dev/null and b/scd/smp/BC_Long010.wav differ diff --git a/scd/smp/BC_Long011.wav b/scd/smp/BC_Long011.wav new file mode 100644 index 0000000..4645753 Binary files /dev/null and b/scd/smp/BC_Long011.wav differ diff --git a/scd/smp/BC_Long014.wav b/scd/smp/BC_Long014.wav new file mode 100644 index 0000000..03178fd Binary files /dev/null and b/scd/smp/BC_Long014.wav differ diff --git a/scd/smp/BC_Long020.wav b/scd/smp/BC_Long020.wav new file mode 100644 index 0000000..98028a3 Binary files /dev/null and b/scd/smp/BC_Long020.wav differ diff --git a/scd/smp/BC_Long022.wav b/scd/smp/BC_Long022.wav new file mode 100644 index 0000000..e989677 Binary files /dev/null and b/scd/smp/BC_Long022.wav differ diff --git a/scd/smp/BC_Long025.wav b/scd/smp/BC_Long025.wav new file mode 100644 index 0000000..2d78ae5 Binary files /dev/null and b/scd/smp/BC_Long025.wav differ diff --git a/scd/smp/BC_Long033.wav b/scd/smp/BC_Long033.wav new file mode 100644 index 0000000..0e01879 Binary files /dev/null and b/scd/smp/BC_Long033.wav differ diff --git a/scd/smp/BC_Long037.wav b/scd/smp/BC_Long037.wav new file mode 100644 index 0000000..cb35780 Binary files /dev/null and b/scd/smp/BC_Long037.wav differ diff --git a/scd/smp/BC_Misc034.wav b/scd/smp/BC_Misc034.wav new file mode 100644 index 0000000..5cef7c7 Binary files /dev/null and b/scd/smp/BC_Misc034.wav differ diff --git a/scd/smp/BC_Misc106.wav b/scd/smp/BC_Misc106.wav new file mode 100644 index 0000000..30eea5a Binary files /dev/null and b/scd/smp/BC_Misc106.wav differ diff --git a/scd/smp/BC_Misc188.wav b/scd/smp/BC_Misc188.wav new file mode 100644 index 0000000..0c653a1 Binary files /dev/null and b/scd/smp/BC_Misc188.wav differ diff --git a/scd/smp/BC_Misc270.wav b/scd/smp/BC_Misc270.wav new file mode 100644 index 0000000..6ea230f Binary files /dev/null and b/scd/smp/BC_Misc270.wav differ diff --git a/scd/smp/BC_Misc292.wav b/scd/smp/BC_Misc292.wav new file mode 100644 index 0000000..d2a821d Binary files /dev/null and b/scd/smp/BC_Misc292.wav differ diff --git a/scd/smp/BC_Snare007.wav b/scd/smp/BC_Snare007.wav new file mode 100644 index 0000000..e75f062 Binary files /dev/null and b/scd/smp/BC_Snare007.wav differ diff --git a/scd/smp/BC_Snare010.wav b/scd/smp/BC_Snare010.wav new file mode 100644 index 0000000..3cd9bb5 Binary files /dev/null and b/scd/smp/BC_Snare010.wav differ diff --git a/scd/smp/BC_Snare025.wav b/scd/smp/BC_Snare025.wav new file mode 100644 index 0000000..49375c3 Binary files /dev/null and b/scd/smp/BC_Snare025.wav differ diff --git a/scd/smp/BC_Snare026.wav b/scd/smp/BC_Snare026.wav new file mode 100644 index 0000000..e87e9c5 Binary files /dev/null and b/scd/smp/BC_Snare026.wav differ diff --git a/scd/smp/BC_Snare027.wav b/scd/smp/BC_Snare027.wav new file mode 100644 index 0000000..ff9673e Binary files /dev/null and b/scd/smp/BC_Snare027.wav differ diff --git a/scd/smp/BC_Snare045.wav b/scd/smp/BC_Snare045.wav new file mode 100644 index 0000000..f614794 Binary files /dev/null and b/scd/smp/BC_Snare045.wav differ diff --git a/scd/smp/BC_Snare063.wav b/scd/smp/BC_Snare063.wav new file mode 100644 index 0000000..c79c879 Binary files /dev/null and b/scd/smp/BC_Snare063.wav differ diff --git a/scd/smp/MARO_saudade_saudade.wav b/scd/smp/MARO_saudade_saudade.wav new file mode 100644 index 0000000..6f3a933 Binary files /dev/null and b/scd/smp/MARO_saudade_saudade.wav differ diff --git a/scd/smp/MARO_saudade_saudade_CUT1.wav b/scd/smp/MARO_saudade_saudade_CUT1.wav new file mode 100644 index 0000000..8b28240 Binary files /dev/null and b/scd/smp/MARO_saudade_saudade_CUT1.wav differ diff --git a/scd/smp/MARO_saudade_saudade_CUT2.wav b/scd/smp/MARO_saudade_saudade_CUT2.wav new file mode 100644 index 0000000..2bf6415 Binary files /dev/null and b/scd/smp/MARO_saudade_saudade_CUT2.wav differ diff --git a/scd/smp/MARO_saudade_saudade_CUT3.wav b/scd/smp/MARO_saudade_saudade_CUT3.wav new file mode 100644 index 0000000..625942d Binary files /dev/null and b/scd/smp/MARO_saudade_saudade_CUT3.wav differ diff --git a/scd/smp/MARO_saudade_saudade_CUT4.wav b/scd/smp/MARO_saudade_saudade_CUT4.wav new file mode 100644 index 0000000..86d2716 Binary files /dev/null and b/scd/smp/MARO_saudade_saudade_CUT4.wav differ diff --git a/scd/smp/RawGlitch_243.wav b/scd/smp/RawGlitch_243.wav new file mode 100644 index 0000000..9ceedfc Binary files /dev/null and b/scd/smp/RawGlitch_243.wav differ diff --git a/scd/smp/RawGlitch_249.wav b/scd/smp/RawGlitch_249.wav new file mode 100644 index 0000000..b5c6c3e Binary files /dev/null and b/scd/smp/RawGlitch_249.wav differ diff --git a/scd/smp/RawGlitch_254.wav b/scd/smp/RawGlitch_254.wav new file mode 100644 index 0000000..242d719 Binary files /dev/null and b/scd/smp/RawGlitch_254.wav differ diff --git a/scd/smp/RawGlitch_259.wav b/scd/smp/RawGlitch_259.wav new file mode 100644 index 0000000..024363b Binary files /dev/null and b/scd/smp/RawGlitch_259.wav differ diff --git a/scd/smp/RawGlitch_260.wav b/scd/smp/RawGlitch_260.wav new file mode 100644 index 0000000..e0ee680 Binary files /dev/null and b/scd/smp/RawGlitch_260.wav differ diff --git a/scd/smp/RawGlitch_272.wav b/scd/smp/RawGlitch_272.wav new file mode 100644 index 0000000..5681f34 Binary files /dev/null and b/scd/smp/RawGlitch_272.wav differ diff --git a/scd/smp/RawGlitch_282.wav b/scd/smp/RawGlitch_282.wav new file mode 100644 index 0000000..d7f60a0 Binary files /dev/null and b/scd/smp/RawGlitch_282.wav differ diff --git a/scd/smp/RawGlitch_285.wav b/scd/smp/RawGlitch_285.wav new file mode 100644 index 0000000..aabb989 Binary files /dev/null and b/scd/smp/RawGlitch_285.wav differ diff --git a/scd/smp/RawGlitch_318.wav b/scd/smp/RawGlitch_318.wav new file mode 100644 index 0000000..d95c584 Binary files /dev/null and b/scd/smp/RawGlitch_318.wav differ diff --git a/scd/smp/RawGlitch_321.wav b/scd/smp/RawGlitch_321.wav new file mode 100644 index 0000000..4a157f4 Binary files /dev/null and b/scd/smp/RawGlitch_321.wav differ diff --git a/scd/smp/RawGlitch_335.wav b/scd/smp/RawGlitch_335.wav new file mode 100644 index 0000000..4cdad99 Binary files /dev/null and b/scd/smp/RawGlitch_335.wav differ diff --git a/scd/smp/RawGlitch_336.wav b/scd/smp/RawGlitch_336.wav new file mode 100644 index 0000000..0d76d3e Binary files /dev/null and b/scd/smp/RawGlitch_336.wav differ diff --git a/scd/smp/RawGlitch_345.wav b/scd/smp/RawGlitch_345.wav new file mode 100644 index 0000000..e7fa9e9 Binary files /dev/null and b/scd/smp/RawGlitch_345.wav differ diff --git a/scd/smp/RawGlitch_355.wav b/scd/smp/RawGlitch_355.wav new file mode 100644 index 0000000..13aa308 Binary files /dev/null and b/scd/smp/RawGlitch_355.wav differ diff --git a/scd/smp/RawGlitch_361.wav b/scd/smp/RawGlitch_361.wav new file mode 100644 index 0000000..01e690d Binary files /dev/null and b/scd/smp/RawGlitch_361.wav differ diff --git a/scd/smp/RawGlitch_366.wav b/scd/smp/RawGlitch_366.wav new file mode 100644 index 0000000..a150ffe Binary files /dev/null and b/scd/smp/RawGlitch_366.wav differ diff --git a/scd/smp/RawGlitch_370.wav b/scd/smp/RawGlitch_370.wav new file mode 100644 index 0000000..1fad7ed Binary files /dev/null and b/scd/smp/RawGlitch_370.wav differ diff --git a/scd/smp/RawGlitch_383.wav b/scd/smp/RawGlitch_383.wav new file mode 100644 index 0000000..0987150 Binary files /dev/null and b/scd/smp/RawGlitch_383.wav differ diff --git a/scd/smp/RawGlitch_390.wav b/scd/smp/RawGlitch_390.wav new file mode 100644 index 0000000..2bdb0f0 Binary files /dev/null and b/scd/smp/RawGlitch_390.wav differ diff --git a/scd/smp/RawGlitch_398.wav b/scd/smp/RawGlitch_398.wav new file mode 100644 index 0000000..83d8f04 Binary files /dev/null and b/scd/smp/RawGlitch_398.wav differ diff --git a/scd/smp/RawGlitch_412.wav b/scd/smp/RawGlitch_412.wav new file mode 100644 index 0000000..47db489 Binary files /dev/null and b/scd/smp/RawGlitch_412.wav differ diff --git a/scd/smp/bCloop33 116bpm.wav b/scd/smp/bCloop33 116bpm.wav new file mode 100644 index 0000000..d5c5789 Binary files /dev/null and b/scd/smp/bCloop33 116bpm.wav differ diff --git a/scd/smp/bCloop37 84bpm.wav b/scd/smp/bCloop37 84bpm.wav new file mode 100644 index 0000000..4cf08d7 Binary files /dev/null and b/scd/smp/bCloop37 84bpm.wav differ diff --git a/scd/smp/bCloop38 84bpm.wav b/scd/smp/bCloop38 84bpm.wav new file mode 100644 index 0000000..83a9b66 Binary files /dev/null and b/scd/smp/bCloop38 84bpm.wav differ diff --git a/scd/smp/bCloop40 84bpm.wav b/scd/smp/bCloop40 84bpm.wav new file mode 100644 index 0000000..cb0e4ec Binary files /dev/null and b/scd/smp/bCloop40 84bpm.wav differ diff --git a/scd/smp/bCloop41 137bpm.wav b/scd/smp/bCloop41 137bpm.wav new file mode 100644 index 0000000..4d45133 Binary files /dev/null and b/scd/smp/bCloop41 137bpm.wav differ diff --git a/scd/smp/bCloop52 98bpm.wav b/scd/smp/bCloop52 98bpm.wav new file mode 100644 index 0000000..623c278 Binary files /dev/null and b/scd/smp/bCloop52 98bpm.wav differ diff --git a/scd/smp/bCloop7 120bpm.wav b/scd/smp/bCloop7 120bpm.wav new file mode 100644 index 0000000..00d9832 Binary files /dev/null and b/scd/smp/bCloop7 120bpm.wav differ diff --git a/scd/smp/bCloop78 200bpm.wav b/scd/smp/bCloop78 200bpm.wav new file mode 100644 index 0000000..6c59404 Binary files /dev/null and b/scd/smp/bCloop78 200bpm.wav differ diff --git a/scd/smp/bCloop82 100bpm.wav b/scd/smp/bCloop82 100bpm.wav new file mode 100644 index 0000000..d3261ca Binary files /dev/null and b/scd/smp/bCloop82 100bpm.wav differ diff --git a/scd/smp/bCloop85 100bpm.wav b/scd/smp/bCloop85 100bpm.wav new file mode 100644 index 0000000..d200e4e Binary files /dev/null and b/scd/smp/bCloop85 100bpm.wav differ diff --git a/scd/smp/bCloop87 150bpm.wav b/scd/smp/bCloop87 150bpm.wav new file mode 100644 index 0000000..55a4438 Binary files /dev/null and b/scd/smp/bCloop87 150bpm.wav differ diff --git a/scd/smp/bCloop9 120bpm.wav b/scd/smp/bCloop9 120bpm.wav new file mode 100644 index 0000000..31dd3f7 Binary files /dev/null and b/scd/smp/bCloop9 120bpm.wav differ diff --git a/scd/smp/bCloop96 90bpm.wav b/scd/smp/bCloop96 90bpm.wav new file mode 100644 index 0000000..b49545a Binary files /dev/null and b/scd/smp/bCloop96 90bpm.wav differ diff --git a/scd/smp/bCloop97 90bpm.wav b/scd/smp/bCloop97 90bpm.wav new file mode 100644 index 0000000..576e9af Binary files /dev/null and b/scd/smp/bCloop97 90bpm.wav differ diff --git a/scd/smp/bCloop99 90bpm.wav b/scd/smp/bCloop99 90bpm.wav new file mode 100644 index 0000000..4f6eacf Binary files /dev/null and b/scd/smp/bCloop99 90bpm.wav differ diff --git a/scd/smp/qebrus_machines_snip1.wav b/scd/smp/qebrus_machines_snip1.wav new file mode 100644 index 0000000..236ae34 Binary files /dev/null and b/scd/smp/qebrus_machines_snip1.wav differ diff --git a/scd/smp/qebrus_machines_snip2.wav b/scd/smp/qebrus_machines_snip2.wav new file mode 100644 index 0000000..cec7f17 Binary files /dev/null and b/scd/smp/qebrus_machines_snip2.wav differ diff --git a/scd/smp/qebrus_machines_snip3.wav b/scd/smp/qebrus_machines_snip3.wav new file mode 100644 index 0000000..d02a4f5 Binary files /dev/null and b/scd/smp/qebrus_machines_snip3.wav differ diff --git a/scd/smp/qebrus_machines_snip4.wav b/scd/smp/qebrus_machines_snip4.wav new file mode 100644 index 0000000..35bdac9 Binary files /dev/null and b/scd/smp/qebrus_machines_snip4.wav differ diff --git a/scd/smp/qebrus_machines_snip5.wav b/scd/smp/qebrus_machines_snip5.wav new file mode 100644 index 0000000..1b739ca Binary files /dev/null and b/scd/smp/qebrus_machines_snip5.wav differ diff --git a/scd/smp/somanymen_1.wav b/scd/smp/somanymen_1.wav new file mode 100644 index 0000000..3455a3b Binary files /dev/null and b/scd/smp/somanymen_1.wav differ diff --git a/scd/smp/somanymen_2.wav b/scd/smp/somanymen_2.wav new file mode 100644 index 0000000..88a88a7 Binary files /dev/null and b/scd/smp/somanymen_2.wav differ diff --git a/scd/smp/somanymen_3.wav b/scd/smp/somanymen_3.wav new file mode 100644 index 0000000..59e0112 Binary files /dev/null and b/scd/smp/somanymen_3.wav differ diff --git a/scd/smp/somanymen_4.wav b/scd/smp/somanymen_4.wav new file mode 100644 index 0000000..cd4d217 Binary files /dev/null and b/scd/smp/somanymen_4.wav differ diff --git a/scd/xenotopic.network.scd b/scd/xenotopic.network.scd new file mode 100644 index 0000000..988d070 --- /dev/null +++ b/scd/xenotopic.network.scd @@ -0,0 +1,1014 @@ +/* + trans.fail / XENO TOPIC . NETWORK +*/ + +//( +//s.waitForBoot({ + +s.boot; +( +s.meter; +s.plotTree; +s.scope; +) +// init > + load all libs/ & smp/ + +this.executeFile(PathName.new(thisProcess.nowExecutingPath).pathOnly +/+ "xinit.scd") + +// server latency for Patterns? +s.latency = 0.05; // nujno za video! + +// init tempo +TempoClock.default.tempo = 120/120; + +///////////////////////////////////////////////////////////////////////////////////////// +// BUSSES + +( +// feedback delay bus // ----------------------------------------------------------- +~localfdlyBus.free; ~localfdlyBus = Bus.audio(s, 2); + +~localFeedFX.free; ~localFeedFX = Synth(\localFeedbackDelay1, [\inBus, ~localfdlyBus, \outBus, 0, \amount, 0.9], addAction:\addToTail); + +// control +//~localFeedFX.set(\amount, 0.9) + + + +// low pass filter // ---------------------------------------------------------------- +~lpfFXBus1.free; ~lpfFXBus1 = Bus.audio(s, 2); + +~lpfFX1.free; ~lpfFX1 = Synth(\lpfFX, [\inBus, ~lpfFXBus1, \outBus, ~localfdlyBus, \cutoff, 20000], target: ~localFeedFX, addAction:\addBefore); + +// control +//~lpfFX1.set(\cutoffLag, 2, \cutoff, 50) +//~lpfFX1.set(\cutoffLag, 30, \cutoff, 20000) + + +// reverb fx ---------------------------------------------------------------------------- +~revFXbus1.free; ~revFXbus1 = Bus.audio(s, 2); +~reverb1.free; +~reverb1 = Synth(\revfx, [\inBus, ~revFXbus1, \wet, 1], addAction:\addToTail); + +// saturation fx ------------------------------------------------------------------------- +~satBus1.free; ~satBus1 = Bus.audio(s, 2); +~saturator1.free; ~saturator1 = Synth(\saturator, [\inBus, ~satBus1, \amp, 1], addAction:\addToTail); + +//~saturator1.set(\amp, 1) +//~saturator1.set(\amp, 0) + +) + + + +///////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////// +// processing control / init + +~sOsc.value("playVideoToggle", 1); +~sOsc.value("playVideoToggle", 0); + +~sOsc.("drawPlatesimgAid", 15); + +~sOsc.("drawPlatesToggle", 0); + +~sOsc.value("drawTilesToggle", 1); +~sOsc.value("drawTilesToggle", 0); + +~sOsc.value("drawImageBlenderToggle", 1); +~sOsc.value("drawImageBlenderToggle", 0); + + +osc: Pfunc { |e| + ~sOsc.value("drawFlylinesflyBrightRotation", e.brot); + ~sOsc.value("drawFlylinesLineLength", e.linlen); + // ~sOsc.value("drawFlylinesflyDirection", e.dir); +}; + + + + + + +// strobe warning +~oscTitles0a.value +~sOsc.("drawPlatesToggle", 0); + +// title +~oscTitles0b.value +~sOsc.("drawPlatesToggle", 0); + + + + + +// ZERO ///////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////////////////// +// qebrus 1 /////////////////////////////////////////////////////////////////////////////////// + +// ZERO TITLE1 +~oscTitles1.value +~sOsc.("drawPlatesToggle", 0); + +( +~zeroVinit = { +~sOsc.("drawPlatesToggle", 1); +~sOsc.("drawPlatesimgAbank", 3); +~sOsc.("drawPlatesimgBbank", 3); +~sOsc.("drawPlatesimgCbank", 3); +~sOsc.("drawPlatesimgBblendMode", 2); +~sOsc.("drawPlatesimgCblendMode", 3); + +}; +~zeroVinit.value; +) + + +( +Pbindef(\playBufP, *[ instrument: \playBuf, + bufnum: ~getSmp.("qebrus_machines_snip1"), + dur: Pxrand([1,1/2,1/2,1/4,Pn(1/8,2)],inf) * 1/2, + legato:[0.9,0.1,0.2] * Pwhite(0.9,1), + amp: Pwhite(0.5,0.6), + rate: Pwhite(0.99,1), + + start: Pseq([ + Pn(0.1, 200), + Pwhite(0.05,0.15,100), + Pwhite(0.05,0.25,100), + Pwhite(0.05,0.35,100), + Pwhite(0.05,0.55,100), + Pwhite(0.05,0.85,100), + Pwhite(0.05,0.95,100), + Pn(0.89,79), + Pn(0.88,79), + Pn(0.89,79), + Pn(0.1, 100), + Pwhite(0.05,0.95,100), + Pn(0.1, 100), + Pwhite(0.05,0.95,100), + Pn(0.88,79), + Pn(0.1, 100), + Pwhite(0.05,0.95,100), + Pn(0.1, 100), + Pwhite(0.05,0.95,100), + Pn(0.88,79), + ], inf), + osc: Pfunc { |e| + ~sOsc.("drawPlatesimgAid", 45.rand); + ~sOsc.("drawPlatesimgBid", 45.rand); + ~sOsc.("drawPlatesimgCid", 45.rand); + ~sOsc.("drawPlatesTexAspeed", 0.rand); + ~sOsc.("drawPlatesTexBspeed", 0.rand); + ~sOsc.("drawPlatesTexCspeed", 0.rand); + ~sOsc.("drawPlatesTexAdirection", 127.rand); + ~sOsc.("drawPlatesTexBdirection", 127.rand); + ~sOsc.("drawPlatesTexCdirection", 127.rand); + }; + + +]).play(quant:4); + +( +~platesSpeedRandRange = 0; +Pbindef(\playBufP, *[ instrument: \playBuf, + osc: Pfunc { |e| + ~sOsc.("drawPlatesimgAid", 45.rand); + ~sOsc.("drawPlatesimgBid", 45.rand); + ~sOsc.("drawPlatesimgCid", 45.rand); + ~sOsc.("drawPlatesTexAspeed", ~platesSpeedRandRange.rand); + ~sOsc.("drawPlatesTexBspeed", ~platesSpeedRandRange.rand); + ~sOsc.("drawPlatesTexCspeed", ~platesSpeedRandRange.rand); + ~sOsc.("drawPlatesTexAdirection", 127.rand); + ~sOsc.("drawPlatesTexBdirection", 127.rand); + ~sOsc.("drawPlatesTexCdirection", 127.rand); + }; +]) +); + + +Pbindef(\playBufBleep, *[ instrument: \playBuf, + bufnum: ~getSmp.("Bleeps007"), + legato:1, + dur:Pseq([1/4,Pn(3,7)],inf), + amp:0.3, + rate: 1 +]); + +Pbindef(\playBufBleep2, *[ instrument: \playBuf, + bufnum: ~getSmp.("Bleeps015"), + legato:Pwhite(0.01,0.1), + dur:Pseq([1/4,Pn(1.5,7)],inf) * 1/2, + amp:0.2, + rate: 0.25 +]); + +Pbindef(\playBufHat, *[ instrument: \playBuf, + bufnum: ~getSmp.("Hats076"), + legato:1, + dur:Pseq([Pn(1/4,6),Pn(1/8,3)],inf), + dur:1/4, + amp: 3 * Pseq([1,1/5],inf) * Pwhite(0.3,1), + rate: Pwhite(0.95,1.01) +]); +); + + + + +Pbindef(\playBufBleep).play(quant:4); +Pbindef(\playBufBleep2).play(quant:4); +Pbindef(\playBufHat).play(quant:4); + +~platesSpeedRandRange = 10; +~platesSpeedRandRange = 20; +~platesSpeedRandRange = 30; +~platesSpeedRandRange = 30; +~platesSpeedRandRange = 70; + + +( +Pbindef(\playBufP).stop; +Pbindef(\playBufBleep).stop; +Pbindef(\playBufBleep2).stop; +Pbindef(\playBufHat).stop; +~sOsc.("drawPlatesToggle", 0); + +) + + +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// + + + + + + +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +// INTERRUPT! +// somanymen granulation 1 + + +// title2 INTERRUPT +~oscTitles2.value +~sOsc.("drawPlatesToggle", 0); + + +( +~drawImageBlenderInit.value; + +~zeroVinit = { + ~sOsc.("drawImageBlenderBank", 0 ); + ~sOsc.("drawImageBlenderID", 1); + ~sOsc.("iblNum", 10); //{ iblNum = int(oscVal2) ; } // 6 + ~sOsc.("iblX", 74 ); //{ iblX = ((oscVal2-64) / 64.0) * width/2 ; } // 7 int( ((oscVal2-64) / 64.0) * width/2 ); } + ~sOsc.("iblY", 84 ); //{ iblY = ((oscVal2-64) / 64.0) * width/2 ; } // 8 + ~sOsc.("iblWidth", 87); //{ iblWidth = oscVal2 * oscVal2 * 0.2 * norm(width, 0, width) ; } // 9 int(oscVal2 * oscVal2 * 0.05 * norm(width, 0, width)); + ~sOsc.("iblHeight", 70 ); //{ iblHeight = oscVal2 * oscVal2 * 0.1 * norm(height, 0, height) ; } // 10 + + ~sOsc.("iblRot", 0 ); //{ iblRot = radians(oscVal2 * 360 / 120) ; } // 11 + ~sOsc.("iblTexWidth", 64 ); //{ iblTexWidth = (oscVal2 - 64) * oscVal2 ; } // 18 + ~sOsc.("iblTexHeight", 64 ); //{ iblTexHeight = (oscVal2 - 64) * oscVal2 ; } // 19 + + ~sOsc.("iblTexSpeedXfactor", 70 ); //{ iblTexSpeedXfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 22 + ~sOsc.("iblTexSpeedYfactor", 64 ); //{ iblTexSpeedYfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 23 + + ~sOsc.("iblH", 64 ); //{ iblH = int(oscVal2) ; } // 24 + ~sOsc.("iblS", 127); //{ iblS = int(oscVal2) ; } // 25 + ~sOsc.("iblB", 127 ); //{ iblB = int(oscVal2) ; } // 26 + ~sOsc.("iblA", 40 ); //{ iblA = int(oscVal2) ; } // 27 + ~sOsc.("iblBflicker", 0 ); //{ iblBflicker = int(oscVal2) ; } // 28 + + ~sOsc.("iblItX", 94 ); //{ iblItX = ((oscVal2-64) * abs(oscVal2-64) * 0.1) ; } // 29 + ~sOsc.("iblItY", 64 ); //{ iblItY = ((oscVal2-64) * abs(oscVal2-64) * 0.1) ; } // 30 + ~sOsc.("iblItTexX", 9); //{ iblItTexX = oscVal2 * 4 ; } // 31 + ~sOsc.("iblItTexY", 10 ); //{ iblItTexY = oscVal2 * 4; } // 32 + ~sOsc.("iblItRot", 20); //{ iblItRot = radians(oscVal2) ; } // 33 + +}; + +~zeroVinit.value; +~sOsc.("drawImageBlenderToggle", 1); +) + +( +TempoClock.default.tempo = 120/120; + +Pbindef(\granPlayP, *[ + instrument: \granPlay, + dur: 16, + legato: 1, + amp: 0.6, + pitch: [0.5,1], + autoPosN: 0.03, + autoPosS: 0.01, + outBus: ~lpfFXBus1, + gpos: Pdup(3, Pxrand([0.4,0.45,0.6,0.2],inf)), + bufnum: Prand([ + ~getSmp.("somanymen_1"), + ~getSmp.("somanymen_2") + ],inf) +]); + +Pbindef(\playBufErr1, *[ instrument: \playBuf, + bufnum: Pdup(3, + Prand([ + ~getSmp.("Misc034"), + ~getSmp.("Misc106"), + ~getSmp.("Misc188"), + ~getSmp.("RawGlitch_259"), + ~getSmp.("RawGlitch_412"), + ~getSmp.("RawGlitch_336") + ],inf) + ), + start: 0, + legato:1, + dur:12, + amp:0.7, + rate:1 +]); + +Pbindef(\playBufErr2, *[ instrument: \playBuf, + bufnum: ~getSmp.("RawGlitch_335"), + start: 0, + legato:1, + dur:8, + amp:0.7, + rate:1, + osc: Pfunc { |e| + ~sOsc.("drawImageBlenderID", 29.rand); + ~sOsc.("iblTexSpeedXfactor", 20.rand+50 ); //{ iblTexSpeedXfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 22 + ~sOsc.("iblTexSpeedYfactor", 20.rand+50 ); //{ iblTexSpeedYfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 23 + } + +]); + +Pbindef(\harpsiPingP, *[ + instrument: \beep_sus, + dur: Pseq([1,Pn(6)]), + amp: 0.5, + octave: 9, + degree:Pseq([Rest(),Pn(-1)]), + legato:0.01, + outBus: ~revFXbus1, + osc: Pfunc { |e| + ~sOsc.("iblItRot", 10.rand+10); //{ iblItRot = radians(oscVal2) ; } // 33 + } + +]); +) + +Pbindef(\granPlayP).play(quant:4); + +Pbindef(\playBufErr1).play(quant:4); +Pbindef(\harpsiPingP).play(quant:4); +// bass: +Pbindef(\playBufErr2).play(quant:4); + + +( +Pbindef(\granPlayP).stop; +Pbindef(\playBufErr1).stop; +Pbindef(\playBufErr2).stop; +Pbindef(\harpsiPingP).stop; +) +~sOsc.("drawImageBlenderToggle", 0); + + + + +//////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// + +// TRAP // + + +// title3 TRAP +~oscTitles3.value +~sOsc.("drawPlatesToggle", 0); + +// init +( + ~sOsc.("drawImageBlenderBank", 2 ); + ~sOsc.("drawImageBlenderID", 18); + ~sOsc.("iblNum", 20); //{ iblNum = int(oscVal2) ; } // 6 + ~sOsc.("iblX", 64 ); //{ iblX = ((oscVal2-64) / 64.0) * width/2 ; } // 7 int( ((oscVal2-64) / 64.0) * width/2 ); } + ~sOsc.("iblY", 24 ); //{ iblY = ((oscVal2-64) / 64.0) * width/2 ; } // 8 + ~sOsc.("iblWidth", 77); //{ iblWidth = oscVal2 * oscVal2 * 0.2 * norm(width, 0, width) ; } // 9 int(oscVal2 * oscVal2 * 0.05 * norm(width, 0, width)); + ~sOsc.("iblHeight", 20 ); //{ iblHeight = oscVal2 * oscVal2 * 0.1 * norm(height, 0, height) ; } // 10 + + ~sOsc.("iblRot", 0 ); //{ iblRot = radians(oscVal2 * 360 / 120) ; } // 11 + ~sOsc.("iblTexWidth", 64 ); //{ iblTexWidth = (oscVal2 - 64) * oscVal2 ; } // 18 + ~sOsc.("iblTexHeight", 64 ); //{ iblTexHeight = (oscVal2 - 64) * oscVal2 ; } // 19 + + ~sOsc.("iblTexSpeedXfactor", 69 ); //{ iblTexSpeedXfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 22 + ~sOsc.("iblTexSpeedYfactor", 59 ); //{ iblTexSpeedYfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 23 + + ~sOsc.("iblH", 70 ); //{ iblH = int(oscVal2) ; } // 24 + ~sOsc.("iblS", 127); //{ iblS = int(oscVal2) ; } // 25 + ~sOsc.("iblB", 127 ); //{ iblB = int(oscVal2) ; } // 26 + ~sOsc.("iblA", 127 ); //{ iblA = int(oscVal2) ; } // 27 + ~sOsc.("iblBflicker", 0 ); //{ iblBflicker = int(oscVal2) ; } // 28 + + ~sOsc.("iblItX", 64 ); //{ iblItX = ((oscVal2-64) * abs(oscVal2-64) * 0.1) ; } // 29 + ~sOsc.("iblItY", 89 ); //{ iblItY = ((oscVal2-64) * abs(oscVal2-64) * 0.1) ; } // 30 + ~sOsc.("iblItTexX", 40); //{ iblItTexX = oscVal2 * 4 ; } // 31 + ~sOsc.("iblItTexY", 127 ); //{ iblItTexY = oscVal2 * 4; } // 32 + ~sOsc.("iblItRot", 0); //{ iblItRot = radians(oscVal2) ; } // 33 +) + + + +( +Pbindef(\akjDisChordp, *[ + instrument: \akjDisChord, + freq:300, + dur: 16, + legato: 1.3, + amp: 0.8, + out: 0 +]).play(quant:4); +) + + + + +( + +Pbindef(\playBufBd1, *[ instrument: \playBuf, + bufnum: Prand([ + ~getSmp.("loop9"), + ~getSmp.("loop7"), + ~getSmp.("loop33"), + ~getSmp.("loop37") + ], inf), + dur: Prand([4,2,1,1/2,Pn(1/4,2),Pn(1/8,4),Pseq([3/8,1/8]),Pseq([3/4,1/4])],inf), + legato:0.1, + start: Pxrand([0,1,2,3,4,5,6,7],inf) * 1/16, + amp:1, + osc: Pfunc { |e| + ~sOsc.("drawImageBlenderToggle", 1); + ~sOsc.("drawImageBlenderID", 19.rand); + ~sOsc.("iblTexSpeedXfactor", 30.rand+50 ); //{ iblTexSpeedXfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 22 + ~sOsc.("iblTexSpeedYfactor", 20.rand+54 ); //{ iblTexSpeedYfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 23 + } + +]).play(quant:4); +) + +( +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: 0 +]).play(quant:4); +) + +( +Pbindef(\akjBazp, *[ + instrument: \akjBaz, + freq: 300, + dur: 10, + amp: 0.3, + legato: 0.20, + + out: 0, + osc: Pfunc { |e| + ~sOsc.("iblH", 20.rand+54 ); + ~sOsc.("iblItTexY", 127.rand ); + } +]).play(quant:4); +) + +( +Pbindef(\granGlitcho, *[ + instrument: \granPlay, + dur: 4, + legato: 1, + amp: 0.5, + pitch: [0.5,1], + autoPosN: 0.1, + autoPosS: 0.1, + outBus: 0, + gpos: [0.6,0.7,0.8,0.2], + width: 1, + bufnum: Pdup(16, Pseq([~getSmp.("loop99"), ~getSmp.("loop97")],inf)) +]).play(quant:4); +) + + + + +Pbindef(\akjDisChordp).stop +Pbindef(\granGlitcho).stop + +( +Pbindef(\playBufBd1).stop; +Pbindef(\akjClickp).stop; +Pbindef(\akjBazp).stop; +~sOsc.("drawImageBlenderToggle", 0); +) + + + +//////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// +// PARITY ///////////////////////////////////////////////////////////////////////////////////////// + + +// title4 PARITY +~oscTitles4.value +~sOsc.("drawPlatesToggle", 0); + +( // init video +~sOsc.value("playVideoToggle", 0); +~sOsc.value("playVideoBank", 0 );//) { playVideoBank = int(oscVal2); } // 44 +~sOsc.value("playVideoID", 0 );//) { playVideoID = int(oscVal2); } // 45 +~sOsc.value("playVideoPausePlay", 0 ); //) { playVideoPausePlay = boolean(int(oscVal2)); } // 47 +~sOsc.value("playVideoHue", 79 ); //) { playVideoHue = int(oscVal2); } // 44 +~sOsc.value("playVideoSaturation", 0 ); //) { playVideoSaturation = int(oscVal2); } // 44 +~sOsc.value("playVideoBrightness", 127 ); //) { playVideoBrightness = int(oscVal2); } // 44 +~sOsc.value("playVideoAlpha", 127 );//) { playVideoAlpha = int(oscVal2); } // 44 +~sOsc.value("playVideoSpeed", 100); //) { playVideoPausePlay = boolean(int(oscVal2)); } // 47 +~sOsc.value("playVideoJump", 0); +) + +Pbindef(\granPlayPMARO).clear + +( +Pbindef(\granPlayPMARO, *[ + instrument: \granPlay, + dur: 16, + legato: 1, + amp: 0.9, + pitch: 1, + autoPosN: 0.02, + autoPosS: 0.01, + outBus: ~lpfFXBus1, + gpos: Pdup(2, Pseq([ 0.9, 0.8, 0.7, 0.65, 0.2, 0.1 ],inf)), + width: 0.4, + bufnum: ~getSmp.("saudade_CUT1") +]).play; + +) + + +Pbindef(\granPlayPMARO).stop +( +Pbindef(\playBufHatM, *[ instrument: \playBuf, + bufnum: [~getSmp.("Hats108"),~getSmp.("Hats085")], + legato:1, + //dur:Pseq([Pn(1/4,6),Pn(1/8,3)],inf), + dur:8, + amp: [2,0.3] * 1.2, + rate: Pwhite(0.95,1.01), + osc: Pfunc { |e| + ~sOsc.value("playVideoHue", 127.rand ); //) { playVideoHue = int(oscVal2); } // 44 + ~sOsc.value("playVideoSaturation", 64+64.rand ); //) { playVideoSaturation = int(oscVal2); } // 44 + } +]).play(quant:4); +); +Pbindef(\playBufHatM).clear + +( +Pbindef(\noise, *[ + instrument: \noise, + dur:10, + legato:0.2, + amp:0.08, + videojump: Pseq([10,15,20,25,30,35,40,45,50,55],inf), + osc: Pfunc { |e| + ~sOsc.value("playVideoToggle", 1); + ~sOsc.value("playVideoPausePlay", 1 ); + ~sOsc.value("playVideoJump", e.videojump); + } + +]).play(quant:4) +) + +Pbindef(\noise).clear + +Ndef(\subwob2).fadeTime = 10; +( +Ndef(\subwob2, { + var snd = SinOsc.ar([43,42]* 0.5); + snd = (snd*2).tanh; + snd = (snd*2).clip2; + snd = RLPF.ar(snd, + SinOsc.ar(LFNoise1.kr(1/5).range(0.5,6)).range(50,LFNoise1.kr(1/5).range(60,150))); + Rotate2.ar(snd[0],DelayN.ar(snd[1],0.1,0.04),LFNoise1.kr(1/5).range(-1,1)) * 0.2 * 1.3; +}).play +) +Ndef(\subwob2).fadeTime = 10; +Ndef(\subwob2).release; + +Pbindef(\playBufHatM).stop +Pbindef(\noise).stop +Pbindef(\granPlayPMARO).stop + +// pause +~sOsc.value("playVideoPausePlay", 0 ); + +// cut to black +~sOsc.value("playVideoToggle", 0); + + +//////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// +// ADJUST ///////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////// + +// title5 ADJUST +~oscTitles5.value +~sOsc.("drawPlatesToggle", 0); + +( + ~sOsc.("drawImageBlenderBank", 4 ); + ~sOsc.("drawImageBlenderID", 4); + ~sOsc.("iblNum", 3); //{ iblNum = int(oscVal2) ; } // 6 + ~sOsc.("iblX", 64 ); //{ iblX = ((oscVal2-64) / 64.0) * width/2 ; } // 7 int( ((oscVal2-64) / 64.0) * width/2 ); } + ~sOsc.("iblY", 64 ); //{ iblY = ((oscVal2-64) / 64.0) * width/2 ; } // 8 + ~sOsc.("iblWidth", 87); //{ iblWidth = oscVal2 * oscVal2 * 0.2 * norm(width, 0, width) ; } // 9 int(oscVal2 * oscVal2 * 0.05 * norm(width, 0, width)); + ~sOsc.("iblHeight", 70 ); //{ iblHeight = oscVal2 * oscVal2 * 0.1 * norm(height, 0, height) ; } // 10 + + ~sOsc.("iblRot", 0 ); //{ iblRot = radians(oscVal2 * 360 / 120) ; } // 11 + ~sOsc.("iblTexWidth", 64 ); //{ iblTexWidth = (oscVal2 - 64) * oscVal2 ; } // 18 + ~sOsc.("iblTexHeight", 64 ); //{ iblTexHeight = (oscVal2 - 64) * oscVal2 ; } // 19 + + ~sOsc.("iblTexSpeedXfactor", 70 ); //{ iblTexSpeedXfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 22 + ~sOsc.("iblTexSpeedYfactor", 69 ); //{ iblTexSpeedYfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 23 + + ~sOsc.("iblH", 64 ); //{ iblH = int(oscVal2) ; } // 24 + ~sOsc.("iblS", 127); //{ iblS = int(oscVal2) ; } // 25 + ~sOsc.("iblB", 127 ); //{ iblB = int(oscVal2) ; } // 26 + ~sOsc.("iblA", 40 ); //{ iblA = int(oscVal2) ; } // 27 + ~sOsc.("iblBflicker", 0 ); //{ iblBflicker = int(oscVal2) ; } // 28 + + ~sOsc.("iblItX", 94 ); //{ iblItX = ((oscVal2-64) * abs(oscVal2-64) * 0.1) ; } // 29 + ~sOsc.("iblItY", 64 ); //{ iblItY = ((oscVal2-64) * abs(oscVal2-64) * 0.1) ; } // 30 + ~sOsc.("iblItTexX", 9); //{ iblItTexX = oscVal2 * 4 ; } // 31 + ~sOsc.("iblItTexY", 10 ); //{ iblItTexY = oscVal2 * 4; } // 32 + ~sOsc.("iblItRot", 50); //{ iblItRot = radians(oscVal2) ; } // 33 + + +) + +// ~sOsc.("drawImageBlenderToggle", 1); + +( +Pbindef(\lcmnoip, + \instrument, \lcmnoise, + \dur, 8, + \amp, 0.6, + \amp1, 0.1, //Pseq([1,0.1],inf), + \amp2, 3, //Pseq([0.6,1],inf), + \legato, 1, + //\legato, 0.5, + \outBus, ~satBus1, + \osc, Pfunc { |e| + ~sOsc.("drawImageBlenderToggle", 1); + ~sOsc.("drawImageBlenderID", 29.rand); + ~sOsc.("iblTexSpeedXfactor", 10.rand+60 ); //{ iblTexSpeedXfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 22 + ~sOsc.("iblTexSpeedYfactor", 10.rand+60 ); //{ iblTexSpeedYfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 23 + } + +).play(quant:4) +) + +Pbindef(\lcmnoip).stop + + +( +Pbindef(\playBufGlitch1, + *[ + instrument: \playBuf, + bufnum: Prand([ + ~getSmp.("qebrus_machines_snip5"), + ~getSmp.("qebrus_machines_snip2"), + ~getSmp.("qebrus_machines_snip1") + ],inf), + legato:1, + //dur:Pseq([Pn(1/4,6),Pn(1/8,3)],inf), + dur:8, + start:Pwhite(0.0,0.4), + rate: [0.5,0.7,1], + amp: 0.5, + sdel: 0.01, + //outBus: 0, + outBus: Prand([0, ~satBus1],inf), + ]).play(quant:4); +) + +Pbindef(\playBufGlitch1).stop; +( +Pbindef(\lcmnoip).stop; +~sOsc.("drawImageBlenderToggle", 0); +) + + +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +// CARRY (or PARITY?) + + +// title6 CARRY +~oscTitles6.value +~sOsc.("drawPlatesToggle", 0); + +( + ~sOsc.("drawImageBlenderBank", 1 ); + ~sOsc.("drawImageBlenderID", 4); + ~sOsc.("iblNum", 60); //{ iblNum = int(oscVal2) ; } // 6 + ~sOsc.("iblX", 0 ); //{ iblX = ((oscVal2-64) / 64.0) * width/2 ; } // 7 int( ((oscVal2-64) / 64.0) * width/2 ); } + ~sOsc.("iblY", 64 ); //{ iblY = ((oscVal2-64) / 64.0) * width/2 ; } // 8 + ~sOsc.("iblWidth", 17); //{ iblWidth = oscVal2 * oscVal2 * 0.2 * norm(width, 0, width) ; } // 9 int(oscVal2 * oscVal2 * 0.05 * norm(width, 0, width)); + ~sOsc.("iblHeight", 80 ); //{ iblHeight = oscVal2 * oscVal2 * 0.1 * norm(height, 0, height) ; } // 10 + + ~sOsc.("iblRot", 60 ); //{ iblRot = radians(oscVal2 * 360 / 120) ; } // 11 + ~sOsc.("iblTexWidth", 64 ); //{ iblTexWidth = (oscVal2 - 64) * oscVal2 ; } // 18 + ~sOsc.("iblTexHeight", 64 ); //{ iblTexHeight = (oscVal2 - 64) * oscVal2 ; } // 19 + + ~sOsc.("iblTexSpeedXfactor", 70 ); //{ iblTexSpeedXfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 22 + ~sOsc.("iblTexSpeedYfactor", 69 ); //{ iblTexSpeedYfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 23 + + ~sOsc.("iblH", 64 ); //{ iblH = int(oscVal2) ; } // 24 + ~sOsc.("iblS", 127); //{ iblS = int(oscVal2) ; } // 25 + ~sOsc.("iblB", 127 ); //{ iblB = int(oscVal2) ; } // 26 + ~sOsc.("iblA", 40 ); //{ iblA = int(oscVal2) ; } // 27 + ~sOsc.("iblBflicker", 0 ); //{ iblBflicker = int(oscVal2) ; } // 28 + + ~sOsc.("iblItX", 84 ); //{ iblItX = ((oscVal2-64) * abs(oscVal2-64) * 0.1) ; } // 29 + ~sOsc.("iblItY", 64 ); //{ iblItY = ((oscVal2-64) * abs(oscVal2-64) * 0.1) ; } // 30 + ~sOsc.("iblItTexX", 9); //{ iblItTexX = oscVal2 * 4 ; } // 31 + ~sOsc.("iblItTexY", 50 ); //{ iblItTexY = oscVal2 * 4; } // 32 + ~sOsc.("iblItRot", 0); //{ iblItRot = radians(oscVal2) ; } // 33 + + +) + + + + + + +Pbindef(\sawp0).clear + +( +Pbindef(\sawp0, + \instrument, \softSaw, + \dur, 10, + \attackTime, 5, + \releaseTime,5, + \legato,1, + \degree, Pseq([ + [-2,2,12,25], + [-2,1,9,19], + [-2,3,11,20], + [-2,6,8,22], + [-2,3,12,18], + [-2,5,7,21], + ],inf), + \octave, 3, + \amp, [1,0.5,0.2,0.1] * 0.7, + \out, 0 +).play(quant:4); +) +( +Pbindef(\playBufHat2, *[ instrument: \playBuf, + bufnum: ~getSmp.("Hats076"), + legato:1, + dur:Pseq([Pn(1/4,6),Pn(1/8,3)],inf), + dur:1/4, + amp: 1 * Pseq([1,1/5],inf) * Pwhite(0.3,1), + rate: Pwhite(0.95,1.01) +]).play(quant:4); +); +( +Pbindef(\playBufBleep2, *[ instrument: \playBuf, + bufnum: ~getSmp.("Bleeps007"), + legato:1, + dur:Pseq([1/4,Pn(3,7)],inf), + amp:0.2, + rate: 1, + osc: Pfunc { |e| + ~sOsc.("drawImageBlenderToggle", 1); + ~sOsc.("drawImageBlenderID", 41.rand); + ~sOsc.("iblTexSpeedXfactor", 30.rand+55 ); //{ iblTexSpeedXfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 22 + ~sOsc.("iblTexSpeedYfactor", 20.rand+55 ); //{ iblTexSpeedYfactor = ((oscVal2-64) * abs(oscVal2-64) * 0.6) ; } // 23 + ~sOsc.("iblItTexX", 20.rand+60); //{ iblItTexX = oscVal2 * 4 ; } // 31 + ~sOsc.("iblItTexY", 20.rand+60 ); //{ iblItTexY = oscVal2 * 4; } // 32 + } + +]).play(quant:4); +) +( +Pbindef(\playBufBleep3, *[ instrument: \playBuf, + bufnum: ~getSmp.("Bleeps015"), + legato:Pwhite(0.01,0.1), + dur:Pseq([1/4,Pn(1.5,7)],inf) * 1/2, + amp:0.08, + rate: 1 +]).play(quant:4); +) + +( +Pbindef(\playBufGlitch4, *[ instrument: \playBuf, + bufnum: ~getSmp.("Misc106"), + legato:0.3, + dur:32, + amp:0.2, + rate: 1 +]).play(quant:4); +) + +Pbindef(\sawp0).stop; +( +Pbindef(\playBufHat2).stop; +Pbindef(\playBufBleep2).stop; +Pbindef(\playBufBleep3).stop; +Pbindef(\playBufGlitch4).stop; +~sOsc.("drawImageBlenderToggle", 0); +) +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +// OVERFLOW + +// title7 OVERFLOW +~oscTitles7.value +~sOsc.("drawPlatesToggle", 0); + + +( +~zeroVinit = { + ~sOsc.("drawPlatesToggle", 0); + ~sOsc.("drawPlatesimgAbank", 5); + ~sOsc.("drawPlatesimgBbank", 5); + ~sOsc.("drawPlatesimgCbank", 5); + ~sOsc.("drawPlatesimgBblendMode", 2); + ~sOsc.("drawPlatesimgCblendMode", 1); + ~sOsc.("drawPlatesTexAspeed", 0); + ~sOsc.("drawPlatesTexBspeed", 0); + ~sOsc.("drawPlatesTexCspeed", 0); +}; +~platesSpeedRandRange = 0; + +~zeroVinit.value; +) + +( +Pbindef(\playBufqebP, *[ instrument: \playBuf, + bufnum: ~getSmp.("qebrus_machines_snip4"), + dur: Pxrand([1,1/2,1/2,1/4,Pn(1/8,2)],inf) * 1/2, + legato:[0.9,0.1,0.2] * Pwhite(0.9,1), + amp: Pwhite(0.5,0.6) * 0.7, + rate: Pwhite(0.99,1), + hpff: 120, + + start: Pseq([ + Pn(0, 60), + Pwhite(0,0.15, 40), + Pwhite(0,0.25, 50), + Pwhite(0,0.35, 40), + Pwhite(0,0.55, 50), + Pwhite(0,0.65, 50), + Pwhite(0,0.55, 100), + Pwhite(0,0.25, 50), + Pwhite(0,0.15, 40), + Pwhite(0,0.55, 100), + Pwhite(0,0.25, 50), + Pwhite(0,0.15, 40), + Pwhite(0,0.05, 40), + ], inf), + sdel: Pdup(50, Pxrand([1,2,3,4]*0.001,inf)), + osc: Pfunc { |e| + ~sOsc.("drawPlatesToggle", 1); + ~sOsc.("drawPlatesimgAid", 19.rand); + ~sOsc.("drawPlatesimgBid", 19.rand); + ~sOsc.("drawPlatesimgCid", 19.rand); + ~sOsc.("drawPlatesTexAspeed", ~platesSpeedRandRange.rand); + ~sOsc.("drawPlatesTexBspeed", ~platesSpeedRandRange.rand); + ~sOsc.("drawPlatesTexCspeed", ~platesSpeedRandRange.rand); + ~sOsc.("drawPlatesTexAdirection", 127.rand); + ~sOsc.("drawPlatesTexBdirection", 127.rand); + ~sOsc.("drawPlatesTexCdirection", 127.rand); + }; + +]).play(quant:4); +) + +~platesSpeedRandRange = 5; +~platesSpeedRandRange = 10; +~platesSpeedRandRange = 15; +~platesSpeedRandRange = 20; +~platesSpeedRandRange = 30; +~platesSpeedRandRange = 40; +~platesSpeedRandRange = 50; + + + + +( +Pbindef(\granPlayP, *[ + instrument: \granPlay, + dur: 4, + legato: 1, + amp: 0.5, + pitch: [0.5,1], + autoPosN: 0.03, + autoPosS: 0.01, + outBus: ~lpfFXBus1, + gpos: Pdup(6, Pxrand([0,0.1,0.3],inf)), + bufnum: ~getSmp.("qebrus_machines_snip4") +]).play(quant:4); +) + +( +Pbindef(\playBufHat5, *[ instrument: \playBuf, + bufnum: ~getSmp.("Hats079"), + legato:1, + dur:1/4, + amp: 4 * Pseq([1,1/5],inf) * Pwhite(0.3,1), + rate: Pwhite(0.95,1.01), +]).play(quant:4); +); + +( +Pbindef(\sawp2, + \instrument, \softSaw, + \dur, 10, + \attackTime, 5, + \releaseTime,5, + \legato,1, + \scale, Scale.minor, + \note, Pxrand([-4,-2,0,1],inf), + //\out, 0 + //\out, ~lpfFXBus1, + \out, ~satBus1, + \octave, [3,4,5], + \octave, [3,4], + \octave, [3], + \amp, [1,0.5,0.2,0.1] * 0.6, +).play(quant:4); +) + + +Pbindef(\playBufHat5).stop; +~platesSpeedRandRange = 2; + +Pbindef(\playBufqebP).stop; + +( +Pbindef(\sawp2).stop; +~lpfFX1.set(\cutoffLag, 30, \cutoff, 50); +) + +Pbindef(\granPlayP).stop; + ~sOsc.("drawPlatesToggle", 0); + +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// + + + + + + + diff --git a/scd/xinit.scd b/scd/xinit.scd new file mode 100644 index 0000000..e59495e --- /dev/null +++ b/scd/xinit.scd @@ -0,0 +1,39 @@ + +// load libs and samples + +var libPath, smpPath; + +"\n\n +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +>>> Hello. Starting Jitakami <<< + +═══════════════════════════════════════════════════════════".postln; + +libPath = PathName.new( + PathName.new(thisProcess.nowExecutingPath).pathOnly +/+ "lib/"); +smpPath = PathName.new( + PathName.new(thisProcess.nowExecutingPath).pathOnly +/+ "smp/"); + + +"\n--- loading libs ...".postln; + +libPath.filesDo({|afile, i| + //postln(" " + afile.fullPath); + postln(" - " + afile.folderName +/+ afile.fileName); + // for each file in list, load/execute it + this.executeFile(afile.fullPath); +}); + +"\n \n~~~ Loading sample files to buffers ...".postln; +s.freeAllBuffers; // free all buffers now! +~samples = smpPath.files; +~smpList = List(); // init, clean +~bfrList = List(); // init, clean +~samples.do({ |item, i| + postln(" " + i + "" + item.folderName +/+ item.fileName); + ~smpList.add(item.fileName); + ~bfrList.add(Buffer.readChannel(s, item.fullPath, channels:[0])); // [0] forces mono! +}); + +"... done.\n\n".postln; +"";