diff --git a/lib/bgrain.scd b/lib/bgrain.scd new file mode 100644 index 0000000..4659ba2 --- /dev/null +++ b/lib/bgrain.scd @@ -0,0 +1,29 @@ +( +SynthDef(\bgrain, { |out = 0, gate = 1, amp = 0, bufnum, gfreq=90, rate=0.5, amplag=5| + var snd, pan, env, freqdev; + amp = Lag.kr(amp, amplag); + pan = LFNoise1.kr(0.1).range(-1, 1) * LFNoise0.kr(gfreq).range(0.2,1); + env = EnvGen.kr( + Env([0, 1, 0], [1, 1], \sin, 1), + gate, + doneAction: Done.freeSelf); + + snd = GrainBuf.ar( + numChannels:2, + trigger:Impulse.kr(LFNoise1.kr(gfreq).range(0.8,1) * gfreq), + dur: 0.2 * LFNoise0.kr(gfreq).range(1,1.2), + sndbuf: bufnum, + rate: [rate * LFNoise1.kr.range(0.99, 1), rate * LFNoise1.kr.range(0.99, 1)], + pos: LFNoise2.kr(0.05).range(0, 1) * LFNoise0.kr(gfreq).range(1,1.02), + //pos: LFTri.kr(0.25), + interp: 2, + pan: pan); + + snd = RLPF.ar(snd, freq: LFNoise2.kr(0.1).exprange(400,10000)); + snd = snd * LFTri.ar(0.073).range(0.1,1); + snd = snd * env * amp; + + Out.ar(out, snd); + +}).add; +); \ No newline at end of file diff --git a/lib/henonSynthDef.scd b/lib/henonSynthDef.scd index cf0b2ce..2536c02 100644 --- a/lib/henonSynthDef.scd +++ b/lib/henonSynthDef.scd @@ -33,14 +33,14 @@ SynthDef(\henonSynth1, { ( // henonN + henonC controlling filter * volume SynthDef(\henonLsynth1, { - arg out=0, hpfreqmin=100; + arg out=0, hpfreqmin=100, amp=1; var snd; snd = (BrownNoise.ar() + Mix(SinOsc.ar(HenonN.ar(4,a:[1.4,1.1] ).range(200,400)))) * HenonN.ar(freq:1).range(0,0.5); snd = RHPF.ar(snd, HenonC.ar(freq:1).fold(0,1).exprange(hpfreqmin,7000), rq:1); snd = snd * HenonC.ar(0.5).range(0.6,1); - Out.ar(out, snd); + Out.ar(out, snd * amp); }).add; ); @@ -48,7 +48,7 @@ SynthDef(\henonLsynth1, { ( // henonLsynth = dark brooding melodic drone-noise SynthDef(\henonLsynth2, { - arg out, gate=1, fadeTime=1; + arg out, gate=1, fadeTime=1, amp=1; var sig, sinfreq, env; env = EnvGen.kr(Env(levels: [0,1,0], times: [fadeTime, fadeTime], curve: \sin, releaseNode: 1), @@ -71,7 +71,7 @@ SynthDef(\henonLsynth2, { sig = sig + Greyhole.ar(sig * 0.6, feedback: 0.8, diff: 0.7, delayTime: 0.78123); - sig = sig * env; + sig = sig * env * amp; sig = Mix.new(sig); diff --git a/lib/noiseCrackle.scd b/lib/noiseCrackle.scd index 27484e5..afc83d3 100644 --- a/lib/noiseCrackle.scd +++ b/lib/noiseCrackle.scd @@ -24,6 +24,8 @@ add - This value will be added to the output. *********************/ sig = Crackle.ar(par); + //sig = LeakDC.ar(sig); + lpf = RLPF.ar( in: sig, freq: Lag3.kr(LFNoise0.kr(0.08).exprange(50,10000),10), diff --git a/lib/recIn.scd b/lib/recIn.scd new file mode 100644 index 0000000..84be238 --- /dev/null +++ b/lib/recIn.scd @@ -0,0 +1,6 @@ +( +SynthDef(\recIn, { arg out = 0, bufnum = 0; + var snd = SoundIn.ar(0,1); + RecordBuf.ar(snd, bufnum, doneAction: Done.freeSelf, loop: 0); +}).add; +); diff --git a/lib/trigRingz.scd b/lib/trigRingz.scd index ee240c9..1c635de 100644 --- a/lib/trigRingz.scd +++ b/lib/trigRingz.scd @@ -88,9 +88,11 @@ SynthDef(\lorenzTrigRing, { ( SynthDef(\fhnTrigRing, { - arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1, gate=1, fadeTime=1; + arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1, + gate=1, fadeTime=1, ffreqlag=5; var snd, in, env; + ffreq=Lag.kr(ffreq, ffreqlag); in = FhnTrig.ar(min,max); snd = Ringz.ar(in, freq, decay); snd = LPF.ar(snd, ffreq); diff --git a/lib/verbDelayFX.scd b/lib/verbDelayFX.scd new file mode 100644 index 0000000..5944556 --- /dev/null +++ b/lib/verbDelayFX.scd @@ -0,0 +1,12 @@ +( +SynthDef(\verbDelayFX, { + arg inBus, outBus, revWet=0.8, dlyWet=0.8, feedback = 0.5 ; + + var snd = Limiter.ar(In.ar(inBus, 2)); + var verb = JPverb.ar(snd); + var delay = Greyhole.ar(snd, feedback: feedback); + + snd = snd + (verb * revWet) + (delay * dlyWet) * 0.5; + Out.ar(outBus, snd); +}).add; +); diff --git a/lib/xinit.scd b/lib/xinit.scd new file mode 100644 index 0000000..561f3a2 --- /dev/null +++ b/lib/xinit.scd @@ -0,0 +1,188 @@ +// octoPan busses ////////////// +( + +// free busses and panners when re-trying things? +~octoBus1.free; ~octoBus2.free; ~octoBus3.free; ~octoBus4.free; +~panBus1x.free; ~panBus1y.free; ~panBus1r.free; +~panBus2x.free; ~panBus2y.free; ~panBus2r.free; +~panBus3x.free; ~panBus3y.free; ~panBus3r.free; +~panBus4x.free; ~panBus4y.free; ~panBus4r.free; +~revBus.free; + +// octoBus1 + panners and control busses: +~octoBus1 = Bus.audio(s,1); +~panBus1x = Bus.control(s,1); +~panBus1y = Bus.control(s,1); +~panBus1r = Bus.control(s,1); +~panBus1y.value = 0.14; // set a fixed value to a bus +~panBus1x.value = 0; +~panBus1r.value = 10; + +// octoBus2 + panners and control busses: +~octoBus2 = Bus.audio(s,1); +~panBus2x = Bus.control(s,1); +~panBus2y = Bus.control(s,1); +~panBus2r = Bus.control(s,1); +~panBus2y.value = 0.14; // set a fixed value to a bus +~panBus2x.value = 0; +~panBus2r.value = 10; + +// octoBus3 + panners and control busses: +~octoBus3 = Bus.audio(s,1); +~panBus3x = Bus.control(s,1); +~panBus3y = Bus.control(s,1); +~panBus3r = Bus.control(s,1); +~panBus3y.value = 0.14; // set a fixed value to a bus +~panBus3x.value = 0; +~panBus3r.value = 10; + +// octoBus4 + panners and control busses: +~octoBus4 = Bus.audio(s,1); +~panBus4x = Bus.control(s,1); +~panBus4y = Bus.control(s,1); +~panBus4r = Bus.control(s,1); +~panBus4y.value = 0.14; // set a fixed value to a bus +~panBus4x.value = 0; +~panBus4r.value = 10; + +// 8chan reverb bus +~revBus = Bus.audio(s,8); +">>> loaded all busses".postln; + + +"--- loading octoPanners ...".postln; +~octoPanner1 = Synth("octoPanner", [\inBus, ~octoBus1, \outBus, ~revBus], addAction: \addToTail); +~octoPanner1.map(\x, ~panBus1x); +~octoPanner1.map(\y, ~panBus1y); +~octoPanner1.map(\radius, ~panBus1r); + +~octoPanner2 = Synth("octoPanner", [\inBus, ~octoBus2, \outBus, ~revBus], addAction: \addToTail); +~octoPanner2.map(\x, ~panBus2x); +~octoPanner2.map(\y, ~panBus2y); +~octoPanner2.map(\radius, ~panBus2r); + +~octoPanner3 = Synth("octoPanner", [\inBus, ~octoBus3, \outBus, ~revBus], addAction: \addToTail); +~octoPanner3.map(\x, ~panBus3x); +~octoPanner3.map(\y, ~panBus3y); +~octoPanner3.map(\radius, ~panBus3r); + +~octoPanner4 = Synth("octoPanner", [\inBus, ~octoBus4, \outBus, ~revBus], addAction: \addToTail); +~octoPanner4.map(\x, ~panBus4x); +~octoPanner4.map(\y, ~panBus4y); +~octoPanner4.map(\radius, ~panBus4r); + + +// 4 x stereo reverbs are fixed to outputs ([0,1][2,3][4,5][6,7]) not panners! +~reverb = Synth("reverBusser", [\inBus, ~revBus, \outBus, 0], addAction: \addToTail); + + +// some default oscilations of pan and reverb +">>> cleaning up panner_x and panner_y control synths...".postln; +~panner1y.free; ~panner2y.free; ~panner3y.free; ~panner4y.free; +~panner1x.free; ~panner2x.free; ~panner3x.free; ~panner4x.free; + +// REVERBS +">>> cleaning up reverb busses and wet oscilators...".postln; +~reverb1wetBus.free; // ~wetOsc.free; // clean up +~reverb2wetBus.free; // ~wetOsc.free; // clean up +~reverb3wetBus.free; // ~wetOsc.free; // clean up +~reverb4wetBus.free; // ~wetOsc.free; // clean up +~wetOsc1.free; ~wetOsc2.free; ~wetOsc3.free; ~wetOsc4.free; + +">>> setting up reverb control buses and param oscilators...".postln; +~reverb1wetBus = Bus.control(s, 1); // create control bus +~reverb.map(\verb1wet, ~reverb1wetBus); // map an argument to control bus +~reverb2wetBus = Bus.control(s, 1); // create control bus +~reverb.map(\verb2wet, ~reverb2wetBus); // map an argument to control bus +~reverb3wetBus = Bus.control(s, 1); // create control bus +~reverb.map(\verb3wet, ~reverb3wetBus); // map an argument to control bus +~reverb4wetBus = Bus.control(s, 1); // create control bus +~reverb.map(\verb4wet, ~reverb4wetBus); // map an argument to control bus + +~wetOsc1 = SynthDef(\randomVerb1, {Out.kr(~reverb1wetBus, LFNoise2.kr(1).range(0, 0.8)) }).play; +~wetOsc2 = SynthDef(\randomVerb2, {Out.kr(~reverb2wetBus, LFNoise2.kr(1).range(0, 0.8)) }).play; +~wetOsc3 = SynthDef(\randomVerb3, {Out.kr(~reverb3wetBus, LFNoise2.kr(1).range(0, 0.8)) }).play; +~wetOsc4 = SynthDef(\randomVerb4, {Out.kr(~reverb4wetBus, LFNoise2.kr(1).range(0, 0.8)) }).play; + +// ~wetOsc.free; +// ~reverb.set(\verb1wet, 0); +// ~reverb.set(\verb1wet, 1); +// ~reverb.set(\verb2wet, 1); + +// free all control synths for panning +">>> freeing all control synths for panning...".postln; +~panner1y.free; +~panner2y.free; +~panner3y.free; +~panner4y.free; + +~panner1x.free; +~panner2x.free; +~panner3x.free; +~panner4x.free; + +// in stereo all x pans are 0! +">>> setting default values in control pan buses...".postln; +~panBus1x.value = 0; +~panBus2x.value = 0; +~panBus3x.value = 0; +~panBus4x.value = 0; + +~panBus1y.value = 0; +~panBus1r.value = 10; + +~panBus2y.value = 0.28; +~panBus2r.value = 10; + +~panBus3y.value = 0; +~panBus3r.value = 10; + +~panBus4y.value = 0.28; +~panBus4r.value = 10; + + +// PANNERS +// x=0:y=[ 0.00 / 0.28 / 0.57 / 0.85 ] +// x=1:y=[ 1.00 / 0.71 / 0.43 / 0.14 ] + +~panner1y = SynthDef(\randomPan1y, { Out.kr(~panBus1y, LFNoise1.kr(2).range(0,0.28))}).play; +//~panner1y = SynthDef(\oscPan1y, { Out.kr(~panBus1y, SinOsc.kr(2).range(0,0.28))}).play; +//~panner1y.free + +~panner2y = SynthDef(\randomPan2y, { Out.kr(~panBus2y, LFNoise1.kr(2).range(0,0.28))}).play; +//~panner2y = SynthDef(\oscPan2y, { Out.kr(~panBus2y, SinOsc.kr(2).range(0,0.28))}).play; +//~panner2y.free + +~panner3y = SynthDef(\randomPan3y, { Out.kr(~panBus3y, LFNoise1.kr(2).range(0,0.28))}).play; +//~panner3y = SynthDef(\oscPan3y, { Out.kr(~panBus3y, SinOsc.kr(2).range(0,0.28))}).play; +//~panner3y.free + +~panner4y = SynthDef(\randomPan4y, { Out.kr(~panBus4y, LFNoise1.kr(2).range(0,0.28))}).play; +//~panner4y = SynthDef(\oscPan4y, { Out.kr(~panBus4y, SinOsc.kr(2).range(0,0.28))}).play; +//~panner4y.free + +// + + + +">>> setting verbDelayFX and ~reverBus...".postln; +~reverbDelay.free; +~reverBus.free; +~reverBus = Bus.audio(s,2); +~reverbDelay = Synth(\verbDelayFX, [\inBus, ~reverBus, \outBus, 0, \revWet, 1, \dlyWet, 1], addAction: \addAfter); +//~reverbDelay.set(\revWet, 1); +//~reverbDelay.set(\dlyWet, 1); + + + +">>> finished loading all busses and control synths for panning etc ...".postln; +"".postln; + + + + + + + +); + diff --git a/rhizosphere.scd b/rhizosphere.scd index 53110b7..0228a24 100644 --- a/rhizosphere.scd +++ b/rhizosphere.scd @@ -11,14 +11,20 @@ ██╔══██╗██╔══██║██║ ███╔╝ ██║ ██║╚════██║██╔═══╝ ██╔══██║██╔══╝ ██╔══██╗██╔══╝ ██║ ██║██║ ██║██║███████╗╚██████╔╝███████║██║ ██║ ██║███████╗██║ ██║███████╗ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚══════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝ - */ + */ + Server.default.waitForBoot { // library path var libPath = PathName(thisProcess.nowExecutingPath.dirname +/+ "lib"); + "\n\n\n=============================================================".postln; + "\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>".postln; + "--- R H I Z O S P H E R E -----".postln; + ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n".postln; + // for each files in that lib folder libPath.filesDo({|afile| // tell me what you're executing: @@ -27,8 +33,6 @@ Server.default.waitForBoot { // execute it: this.executeFile(afile.fullPath); }); -s.meter; -s.plotTree; }); @@ -36,216 +40,56 @@ s.plotTree; s.meter; s.plotTree; +//free runaway synth: +s.sendMsg(\n_free, 1553) -// octoPan busses ////////////// -( -"\n\n\n=============================================================".postln; -"\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>".postln; -"--- R H I Z O S P H E R E -----".postln; -">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n".postln; - - -// free busses and panners when re-trying things? -~octoBus1.free; ~octoBus2.free; ~octoBus3.free; ~octoBus4.free; -~panBus1x.free; ~panBus1y.free; ~panBus1r.free; -~panBus2x.free; ~panBus2y.free; ~panBus2r.free; -~panBus3x.free; ~panBus3y.free; ~panBus3r.free; -~panBus4x.free; ~panBus4y.free; ~panBus4r.free; -~revBus.free; - -// octoBus1 + panners and control busses: -~octoBus1 = Bus.audio(s,1); -~panBus1x = Bus.control(s,1); -~panBus1y = Bus.control(s,1); -~panBus1r = Bus.control(s,1); -~panBus1y.value = 0.14; // set a fixed value to a bus -~panBus1x.value = 0; -~panBus1r.value = 1; - -// octoBus2 + panners and control busses: -~octoBus2 = Bus.audio(s,1); -~panBus2x = Bus.control(s,1); -~panBus2y = Bus.control(s,1); -~panBus2r = Bus.control(s,1); -~panBus2y.value = 0.14; // set a fixed value to a bus -~panBus2x.value = 0; -~panBus2r.value = 2; - -// octoBus3 + panners and control busses: -~octoBus3 = Bus.audio(s,1); -~panBus3x = Bus.control(s,1); -~panBus3y = Bus.control(s,1); -~panBus3r = Bus.control(s,1); -~panBus3y.value = 0.14; // set a fixed value to a bus -~panBus3x.value = 0; -~panBus3r.value = 2; - -// octoBus4 + panners and control busses: -~octoBus4 = Bus.audio(s,1); -~panBus4x = Bus.control(s,1); -~panBus4y = Bus.control(s,1); -~panBus4r = Bus.control(s,1); -~panBus4y.value = 0.14; // set a fixed value to a bus -~panBus4x.value = 0; -~panBus4r.value = 2; - -// 8chan reverb bus -~revBus = Bus.audio(s,8); -">>> loaded all busses".postln; - - -"--- loading octoPanners ...".postln; -~octoPanner1 = Synth("octoPanner", [\inBus, ~octoBus1, \outBus, ~revBus], addAction: \addToTail); -~octoPanner1.map(\x, ~panBus1x); -~octoPanner1.map(\y, ~panBus1y); -~octoPanner1.map(\radius, ~panBus1r); - -~octoPanner2 = Synth("octoPanner", [\inBus, ~octoBus2, \outBus, ~revBus], addAction: \addToTail); -~octoPanner2.map(\x, ~panBus2x); -~octoPanner2.map(\y, ~panBus2y); -~octoPanner2.map(\radius, ~panBus2r); - -~octoPanner3 = Synth("octoPanner", [\inBus, ~octoBus3, \outBus, ~revBus], addAction: \addToTail); -~octoPanner3.map(\x, ~panBus3x); -~octoPanner3.map(\y, ~panBus3y); -~octoPanner3.map(\radius, ~panBus3r); - -~octoPanner4 = Synth("octoPanner", [\inBus, ~octoBus4, \outBus, ~revBus], addAction: \addToTail); -~octoPanner4.map(\x, ~panBus4x); -~octoPanner4.map(\y, ~panBus4y); -~octoPanner4.map(\radius, ~panBus4r); - - -// 4 x stereo reverbs are fixed to outputs ([0,1][2,3][4,5][6,7]) not panners! -~reverb = Synth("reverBusser", [\inBus, ~revBus, \outBus, 0], addAction: \addToTail); - - -// some default oscilations of pan and reverb -">>> cleaning up panner_x and panner_y control synths...".postln; -~panner1y.free; ~panner2y.free; ~panner3y.free; ~panner4y.free; -~panner1x.free; ~panner2x.free; ~panner3x.free; ~panner4x.free; - -// REVERBS -">>> cleaning up reverb busses and wet oscilators...".postln; -~reverb1wetBus.free; // ~wetOsc.free; // clean up -~reverb2wetBus.free; // ~wetOsc.free; // clean up -~reverb3wetBus.free; // ~wetOsc.free; // clean up -~reverb4wetBus.free; // ~wetOsc.free; // clean up -~wetOsc1.free; ~wetOsc2.free; ~wetOsc3.free; ~wetOsc4.free; - -">>> setting up reverb control buses and param oscilators...".postln; -~reverb1wetBus = Bus.control(s, 1); // create control bus -~reverb.map(\verb1wet, ~reverb1wetBus); // map an argument to control bus -~reverb2wetBus = Bus.control(s, 1); // create control bus -~reverb.map(\verb2wet, ~reverb2wetBus); // map an argument to control bus -~reverb3wetBus = Bus.control(s, 1); // create control bus -~reverb.map(\verb3wet, ~reverb3wetBus); // map an argument to control bus -~reverb4wetBus = Bus.control(s, 1); // create control bus -~reverb.map(\verb4wet, ~reverb4wetBus); // map an argument to control bus - -~wetOsc1 = SynthDef(\randomVerb1, {Out.kr(~reverb1wetBus, LFNoise2.kr(1).range(0, 0.8)) }).play; -~wetOsc2 = SynthDef(\randomVerb2, {Out.kr(~reverb2wetBus, LFNoise2.kr(1).range(0, 0.8)) }).play; -~wetOsc3 = SynthDef(\randomVerb3, {Out.kr(~reverb3wetBus, LFNoise2.kr(1).range(0, 0.8)) }).play; -~wetOsc4 = SynthDef(\randomVerb4, {Out.kr(~reverb4wetBus, LFNoise2.kr(1).range(0, 0.8)) }).play; - -// ~wetOsc.free; -// ~reverb.set(\verb1wet, 0); -// ~reverb.set(\verb1wet, 1); -// ~reverb.set(\verb2wet, 1); - -">>> finished loading all busses and control synths for panning etc ...".postln; -"".postln; - - - - - - - -); ////////////////////////////////////////////////////////////////////////////////// // P E R F O R M A N C E ///////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////// -// PANNERS +// BUFFERS and RECORDERS +// buffers are stored during server's boot, across CTRL-dot. +b = Buffer.alloc(s, 44100 * 4.0, 1); // a four second 1 channel Buffer +c = Buffer.alloc(s, 44100 * 4.0, 1); // a four second 1 channel Buffer +d = Buffer.alloc(s, 44100 * 4.0, 1); // a four second 1 channel Buffer +e = Buffer.alloc(s, 44100 * 4.0, 1); // a four second 1 channel Buffer -// x=0:y=[ 0.00 / 0.28 / 0.57 / 0.85 ] -// x=1:y=[ 1.00 / 0.71 / 0.43 / 0.14 ] +Synth(\recIn, [\bufnum, b]); +b.normalize; +Synth(\recIn, [\bufnum, c]); +c.normalize; +Synth(\recIn, [\bufnum, d]); +d.normalize; +Synth(\recIn, [\bufnum, e]); +e.normalize; -( // free all control synths for panning -~panner1y.free; -~panner2y.free; -~panner3y.free; -~panner4y.free; +b.plot +c.plot +d.plot +e.plot +// ============================================================================ -~panner1x.free; -~panner2x.free; -~panner3x.free; -~panner4x.free; -) +// granulatorz. +~grainb = Synth(\bgrain, [\out, ~reverBus, \bufnum, b, \amp, 0.01]); +~grainb.set(\amp, 0.5, \amplag, 10) +~grainb.set(\rate, 2) +~grainb.set(\out, ~octoBus1) +~grainb.release(3) -// fixed values +~grainc = Synth(\bgrain, [\out, ~reverBus, \bufnum, c, \amp, 0.01]); +~grainc.set(\amp, 0.02, \amplag, 10) +~grainc.set(\rate, 2) +~grainc.release(10) -~panBus1x.value = 0; -~panBus1y.value = 0; -~panBus1r.value = 10; +~graind = Synth(\bgrain, [\out, ~reverBus, \bufnum, d, \amp, 0.01]); +~graind.set(\amp, 0.5, \amplag, 10) +~graind.release(10) -~panner1y = SynthDef(\randomPan1y, { Out.kr(~panBus1y, LFNoise1.kr(2).range(0,1))}).play; -~panner1y = SynthDef(\oscPan1y, { Out.kr(~panBus1y, SinOsc.kr(2).range(1,0))}).play; -~panner1y.free +~graine = Synth(\bgrain, [\out, ~reverBus, \bufnum, e, \amp, 0.01]); +~graine.set(\amp, 0.1, \amplag, 10) +~graine.release(10) -~panner1x = SynthDef(\pulsePan1x, { Out.kr(~panBus1x, LFPulse.kr(0.3).range(0,1))}).play; -~panner1x.free -//s.sendMsg(\n_free, 1598) -// - -~panBus2x.value = 0; -~panBus2y.value = 0.28; -~panBus2r.value = 1; - -~panner2y = SynthDef(\randomPan2y, { Out.kr(~panBus2y, LFNoise1.kr(2).range(0,1))}).play; -~panner2y = SynthDef(\oscPan2y, { Out.kr(~panBus2y, SinOsc.kr(2).range(1,0))}).play; -~panner2y.free - -~panner2x = SynthDef(\pulsePan2x, { Out.kr(~panBus2x, LFPulse.kr(0.3).range(0,1))}).play; -~panner2x.free - -// - - -~panBus3x.value = 1; -~panBus3y.value = 0.28; -~panBus3r.value = 1; - -~panner3y = SynthDef(\randomPan3y, { Out.kr(~panBus3y, LFNoise1.kr(2).range(0,1))}).play; -~panner3y = SynthDef(\oscPan3y, { Out.kr(~panBus3y, SinOsc.kr(2).range(1,0))}).play; -~panner3y.free - -~panner3x = SynthDef(\pulsePan3x, { Out.kr(~panBus3x, LFPulse.kr(0.3).range(0,1))}).play; -~panner3x.free - -// - - -~panBus4x.value = 1; -~panBus4y.value = 0.28; -~panBus4r.value = 1; - -~panner4y = SynthDef(\randomPan4y, { Out.kr(~panBus4y, LFNoise1.kr(2).range(0,1))}).play; -~panner4y = SynthDef(\oscPan4y, { Out.kr(~panBus4y, SinOsc.kr(2).range(1,0))}).play; -~panner4y.free - -~panner4x = SynthDef(\pulsePan4x, { Out.kr(~panBus4x, LFPulse.kr(0.3).range(0,1))}).play; -~panner4x.free - -// - - - - - -// SYNTHS //////////////////////////////////////////////////////////////////////////////// // noise Cracle @@ -253,13 +97,13 @@ s.plotTree; ~noiseCr1 = Synth(\noiseCrackle, [\out, ~octoBus1, \fadeTime, 30, \lpfa, 1, \hpfa, 0 ]); ~noiseCr1.set(\rq, 0.98); ~noiseCr1.set(\lpfa, 1); -~noiseCr1.set(\hpfa, 0); -~noiseCr1.set(\gate, 0, \fadeTime, 1); +~noiseCr1.set(\hpfa, 1); +~noiseCr1.set(\gate, 0, \fadeTime, 10); ~noiseCr1.release(1) ~noiseCr1.free; ~noiseCr2 = Synth(\noiseCrackle, [\out, ~octoBus2, \fadeTime, 30, \lpfa, 1, \hpfa, 0 ]); -~noiseCr2.set(\gate, 0, \fadeTime, 1); +~noiseCr2.set(\gate, 0, \fadeTime, 20); ~noiseCr2.free; ~noiseCr3 = Synth(\noiseCrackle, [\out, ~octoBus3, \fadeTime, 30, \lpfa, 0, \hpfa, 1 ]); @@ -279,29 +123,33 @@ s.plotTree; ~henonS1 = Synth(\henonSynth1, [\out, ~octoBus3, \amp, 0.4, \fadeTime, 4]); -~henonS1.set(\amp, 0.05); +~henonS1.set(\amp, 1); ~henonS1.set(\hpff, 200); ~henonS1.set(\lpff, 200); -~henonS1.release(1); +~henonS1.release(10); ~henonS1.free; -~henonS2 = Synth(\henonSynth1, [\out, ~octoBus3, \amp, 0.4, \fadeTime, 4]); -~henonS2.set(\amp, 0.05); -~henonS2.set(\gate, 0, \fadeTime, 1); +~henonS2 = Synth(\henonSynth1, [\out, ~octoBus4, \amp, 0.4, \fadeTime, 4]); +~henonS2.set(\amp, 1); +~henonS2.set(\out, ~octoBus4); +~henonS2.set(\gate, 0, \fadeTime, 10); ~henonS2.free; -~darkHenon1 = Synth(\henonLsynth2, [\out, ~octoBus4, \fadeTime, 10]); -~darkHenon1.set(\gate, 0, \fadeTime, 3); +~darkHenon1 = Synth(\henonLsynth2, [\out, ~octoBus1, \fadeTime, 10]); +~darkHenon1.set(\gate, 0, \fadeTime, 10); +~darkHenon1.set(\amp, 0.1); +~darkHenon1.release(10); ~darkHenon1.free; -~darkHenon2 = Synth(\henonLsynth2, [\out, ~octoBus4, \fadeTime, 10]); +~darkHenon2 = Synth(\henonLsynth2, [\out, ~octoBus2, \fadeTime, 10]); +~darkHenon2.set(\amp, 1); ~darkHenon2.set(\gate, 0, \fadeTime, 3); +~darkHenon2.release(30); ~darkHenon2.free; // SOIL ~soil1 = Synth(\granSoil, [\out, ~octoBus1, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]); - ~soil1durBus = Bus.control(s,1); ~soil1durBus.value = 0.001; ~soil1.map(\dur, ~soil1durBus); @@ -309,6 +157,7 @@ s.plotTree; ~soil1DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil1durBus, SinOsc.kr(0.012,1.5pi).range(0.0001, 0.05))} ).play; ~soil1DurOsc.free; +~soil1.set(\amp, 0.5); ~soil1.set(\gate, 0, \fadeTime, 15); // use envelope to fade out ~soil1.release(15); ~soil1.free; @@ -325,19 +174,23 @@ s.plotTree; // -~soil3 = Synth(\granSoil, [\out, ~octoBus2, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]); +~soil3 = Synth(\granSoil, [\out, ~octoBus3, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]); ~soil3durBus = Bus.control(s,1); ~soil3durBus.value = 0.0001; ~soil3.map(\dur, ~soil3durBus); +~soil3DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil3durBus, SinOsc.kr(0.029,1.5pi).range(0.0001, 0.08))} ).play; +~soil3DurOsc.free; ~soil3.release(15); // -~soil4 = Synth(\granSoil, [\out, ~octoBus2, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]); +~soil4 = Synth(\granSoil, [\out, ~octoBus4, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]); ~soil4durBus = Bus.control(s,1); ~soil4durBus.value = 0.01; ~soil4.map(\dur, ~soil4durBus); +~soil4DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil4durBus, SinOsc.kr(0.029,1.5pi).range(0.0001, 0.08))} ).play; +~soil4DurOsc.free; ~soil4.release(15); @@ -380,16 +233,16 @@ var rel=0.1; ~lorenzTrig1 = Synth(\lorenzTrigRing, [\out, ~octoBus1, \freq, 1400, \amp, 0.5, \fadeTime, 0]); ~lorenzTrig1.set(\amp, 1); // use set fadeTime - set \gate = 0? ~lorenzTrig1.release; // use set fadeTime - set \gate = 0? -~lorenzTrig1.release(10); // use set fadeTime - set \gate = 0? +~lorenzTrig1.release(30); // use set fadeTime - set \gate = 0? ~lorenzTrig1.set(\fadeTime, 10, \gate, 0); ~lorenzTrig1.free ~stdTrig1 = Synth(\stndTrigRing, [\out, ~octoBus2, \freq,1900, \amp,0.5,\fadeTime, 10]); -~stdTrig1.release(10); +~stdTrig1.release(30); ~stdTrig1.free ~lorenzTrig2 = Synth(\lorenzTrigRing, [\out, ~octoBus3, \freq, 400, \amp, 0.3, \fadeTime, 10, \min, 5, \max, 20]); -~lorenzTrig2.release(10); +~lorenzTrig2.release(30); ~stdTrig2 = Synth(\stndTrigRing, [\freq, 70, \min, 0, \max, 2, \decay, 2, \ffreq, 200, \amp, 0.4, \out, ~octoBus4, \fadeTime, 20]) ; ~stdTrig2.release(30); @@ -420,8 +273,8 @@ var rel=0.1; // 2110 ~fhnTrig2 = Synth(\fhnTrigRing, [\out, ~octoBus1, \freq, 2110, \amp, 0.5, \min, 2, \max, 20, \amp, 0.5, \fadeTime, 10]); -~fhnTrig2.set(\ffreq, 8000) -~fhnTrig2.release(10) +~fhnTrig2.set(\ffreq, 8000, \ffreqlag, 20) +~fhnTrig2.release(60) ~fhnTrig2 = Node.basicNew(nodeID:1369) @@ -440,9 +293,9 @@ var rel=0.1; ~soil1DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil1durBus, SinOsc.kr(0.012,1.5pi).range(0.0001, 0.05))} ).play; ~soil1DurOsc.free; - +~soil1.set(\amp, 0.1) ~soil1.set(\gate, 0, \fadeTime, 15); // use envelope to fade out -~soil1.release(15); +~soil1.release(30); ~soil1.free; // @@ -461,7 +314,7 @@ var rel=0.1; ~henonS1.set(\amp, 0.90); ~henonS1.set(\hpff, 1000); ~henonS1.set(\lpff, 50); -~henonS1.release(60); +~henonS1.release(10); ~henonS1.free; // @@ -481,15 +334,31 @@ s.sendMsg(\n_free, 1590) +//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + -//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file