diff --git a/dev/notes.scd b/dev/notes.scd index 32a4587..ece2250 100644 --- a/dev/notes.scd +++ b/dev/notes.scd @@ -77,7 +77,7 @@ s.scope // Quarks.gui ); - +m = ServerMeter.new(s, 0, 2); @@ -123,7 +123,7 @@ t.tempo; //////////////////////////////////////////////////////////////////////////// ( // basic synth SynthDef SynthDef(\blipo, { | out, freq = 440, amp = 0.1, nharms = 10, pan = 0, gate = 1, sustain, attack=0.1 | - var audio = Blip.ar(freq * (SinOsc.kr(3).range(1,1.01)), nharms, amp); + var audio = Blip.ar(freq * (SinOsc.kr(3).range(1,1.001)), nharms, amp); var env = Linen.kr(gate, attackTime: attack, releaseTime: sustain, doneAction: Done.freeSelf); OffsetOut.ar(out, Pan2.ar(audio, pan, env) ); }).add; @@ -168,8 +168,8 @@ Pbindf( \instrument, \blipo, \degree, (Pflatten(1, Plorenz()) * 18).asInteger, \mtranspose, Prand([Pn(0,24),Pn(2,24),Pn(4,24)], inf), - \detune, Prand([0,1,0.5,1.5], inf), - \scale, Scale.minor(\just), + \detune, Prand([0,0.5], inf), + \scale, Scale.minor, \legato, Prand((4..7),inf) * 0.2, \pan, Prand((-10..10),inf) * 0.1, \out, ~revbus @@ -181,6 +181,17 @@ Pbindf( +{SinOsc.ar()}.play + + + + + + + + + + @@ -1053,3 +1064,24 @@ x.free + + + + + + + + + + + + + + + + + + + + +// Hello everyone!!! \ No newline at end of file diff --git a/lib/0-func-octoPanOut.scd b/lib/0-func-octoPanOut.scd index b87229d..879da78 100644 --- a/lib/0-func-octoPanOut.scd +++ b/lib/0-func-octoPanOut.scd @@ -37,18 +37,38 @@ SynthDef("octoPanner", { - arg inBus, x=0, y=0.14, radius=1; + arg inBus, x=0, y=0.14, radius=1, outBus; var snd = In.ar(inBus,1); snd = ~octoPanOut.value(snd, x, y, radius); - - Out.ar(0, snd); + + Out.ar(outBus, snd); }).add; +); +( +SynthDef("reverBusser", { + arg inBus, outBus, verb1wet=0, verb2wet=0, verb3wet=0, verb4wet=0; + var verb1, verb2, verb3, verb4; + var snd = In.ar(inBus, 8); - - -) + verb1 = JPverb.ar(snd.at([0,1]) * verb1wet); + verb2 = JPverb.ar(snd.at([2,3]) * verb2wet); + verb3 = JPverb.ar(snd.at([4,5]) * verb3wet); + verb4 = JPverb.ar(snd.at([6,7]) * verb4wet); + + snd.put(0, snd.at(0) + verb1.at(0) ); + snd.put(1, snd.at(1) + verb1.at(1) ); + snd.put(2, snd.at(2) + verb2.at(0) ); + snd.put(3, snd.at(3) + verb2.at(1) ); + snd.put(4, snd.at(4) + verb3.at(0) ); + snd.put(5, snd.at(5) + verb3.at(1) ); + snd.put(6, snd.at(6) + verb4.at(0) ); + snd.put(7, snd.at(7) + verb4.at(1) ); + + Out.ar(outBus, snd); +}).add; +); diff --git a/lib/buffers.scd b/lib/buffers.scd index 584fe68..f85e403 100644 --- a/lib/buffers.scd +++ b/lib/buffers.scd @@ -1,4 +1,4 @@ ( ~forestSoilBuf = Buffer.read(s, - PathName(thisProcess.nowExecutingPath).pathOnly +/+ "smp/403312__marco-luzi__forest-soil_norm-mono.wav" ); + PathName(thisProcess.nowExecutingPath).pathOnly +/+ "../smp/403312__marco-luzi__forest-soil_norm-mono.wav" ); ); diff --git a/lib/henonSynthDef.scd b/lib/henonSynthDef.scd index a3ef4e7..4e18286 100644 --- a/lib/henonSynthDef.scd +++ b/lib/henonSynthDef.scd @@ -50,10 +50,11 @@ SynthDef(\henonLsynth1, { ( // henonLsynth = dark brooding melodic drone-noise SynthDef(\henonLsynth2, { - arg out; + arg out, gate=1, fadeTime=1; var sig, sinfreq, env; - env = EnvGen.kr(Env(levels: [0,1,1,0], times: [40, 170, 40], curve: \sin), doneAction: 2); + env = EnvGen.kr(Env(levels: [0,1,0], times: [fadeTime, fadeTime], curve: \sin, releaseNode: 1), + gate, doneAction: 2); sinfreq = LFPulse.kr( freq: 0.9, width:0.1); sinfreq = sinfreq.range( @@ -74,7 +75,7 @@ SynthDef(\henonLsynth2, { sig = sig * env; - //sig = Mix.new(sig); + sig = Mix.new(sig); Out.ar(out, sig); }).add; diff --git a/rhizosphere.scd b/rhizosphere.scd index acfbb66..0777a29 100644 --- a/rhizosphere.scd +++ b/rhizosphere.scd @@ -51,6 +51,7 @@ Server.default.waitForBoot { ~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); @@ -88,37 +89,67 @@ Server.default.waitForBoot { ~panBus4x.value = 0; ~panBus4r.value = 0.1; +// 8chan reverb bus +~revBus = Bus.audio(s,8); +">>> loaded all busses".postln; ); ( var timeLine, r; // CmdPeriod frees these, but not the busses, so only these need to be re-inst. + +"--- freeing old octoPanners ...".postln; ~octoPanner1.free; ~octoPanner2.free; ~octoPanner3.free; ~octoPanner4.free; -~octoPanner1 = Synth("octoPanner", [\inBus, ~octoBus1], addAction: \addToTail); + +"--- 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], addAction: \addToTail); +~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], addAction: \addToTail); +~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], addAction: \addToTail); +~octoPanner4 = Synth("octoPanner", [\inBus, ~octoBus4, \outBus, ~revBus], addAction: \addToTail); ~octoPanner4.map(\x, ~panBus4x); ~octoPanner4.map(\y, ~panBus4y); -~octoPanner4.map(\radius, ~panBus4r); +~octoPanner4.map(\radius, ~panBus4r); + +~reverb = Synth("reverBusser", [\inBus, ~revBus, \outBus, 0], addAction: \addToTail); timeLine = Routine { "--- starting main routine ...".postln; - 1.wait; + //1.wait; + + /* +~panBus1y.value = 0.2; // set a fixed value to a bus +~panBus1x.value = 0; + + + ~darkHenon1 = Synth(\henonLsynth2, [\out, ~octoBus1, \fadeTime, 3]); + ~darkHenon1.set(\gate, 0); + ~darkHenon1.free + ~darkHenon1.set(\gate, 0); + ~darkHenon1.set(\amp, 0); + ~noiseCr1.set(\fadeTime, 20, \gate, 0); + + ~darkHenon2 = Synth(\henonLsynth2, [\out, ~octoBus2]); + + ~darkHenon1.free + ~darkHenon2.free + + + */ + /* ***** ************************ @@ -180,7 +211,6 @@ timeLine = Routine { ~markov8.set(\gate, 0); ~markov9.set(\gate, 0); wait(1); - **********/ ~markov7 = Synth(\markovS1, [ \out, ~octoBus1, \freq, 141, \tsize, 3, \amp, 0.5, \clip, 0.9, \fadeTime, 0.01 ]); @@ -249,6 +279,7 @@ timeLine = Routine { ~noiseCr1.set(\fadeTime, 20, \gate,0); + **********/ /* @@ -281,31 +312,6 @@ timeLine.play; ); - - - - - - - - - - - -// 'set' values - disconnects mapping! -~octoPanner1.set(\x, 0, \y, 0.14, \radius, 0.1); - -( // send oscilations to control bus -~panner1y.free; -~panner1y = {Out.kr(~panBus1y, LFNoise0.kr(9).range(0,0.28))}.play; -~panner1y = SynthDef(\randomPanY, { Out.kr(~panBus1y, LFNoise0.kr(9).range(0,0.28))}).play; -// convert to SynthDef + Synth for common oscilations? -) - - - - - ( // metering/analysis s.meter; s.scope; @@ -313,18 +319,45 @@ s.plotTree; FreqScope.new(400, 200, 0, server: s); ) ///////////////////////////////////// + +// testing stuff! /////////////////////////////////////////////////////////////////////////////////////// + +~lorenzTrig1 = Synth(\lorenzTrigRing, [\out, ~octoBus1, \freq, 1400, \amp, 0.5]); +~reverb.set(\verb1wet, 0.3); +~reverb.set(\verb2wet, 1); + +// 'set' values - disconnects mapping! +~octoPanner1.set(\x, 0, \y, 0.28, \radius, 0.001); + +~panner1y.free; +~panner1y = {Out.kr(~panBus1y, SinOsc.kr(0.1).range(0,0.28))}.play; +~panner1y = SynthDef(\randomPanY, { Out.kr(~panBus1y, LFNoise0.kr(9).range(0,0.28))}).play; +// convert to SynthDef + Synth for common oscilations? + +~lorenzTrig1.free; +///////////////////////////////////////////////////////////////////////////////////////////////////////// + + + + + + // synths ~henonS1 = Synth(\henonSynth1, [\out, ~octoBus1], ~octoPanner1, \addBefore); ~henonS1 = Synth(\henonSynth1, [\out, ~octoBus1], addAction:\addToHead);// addToHead is default action ~henonS1 = Synth(\henonSynth1, [\out, ~octoBus1]); +~Henons1 = Synth(\henonSynth1, [\out, 0]); ~henonS1.free; ~darkHenon = Synth(\henonLsynth2, [\out, ~octoBus2], ~octoPanner2, \addBefore); ~darkHenon = Synth(\henonLsynth2, [\out, ~octoBus2]); +~darkHenon = Synth(\henonLsynth2, [\out, 0]); ~darkHenon.free; ~hpfHenon = Synth(\henonLsynth1, [\out, ~octoBus3, \hpfreqmin, 100]); +~hpfHenon = Synth(\henonLsynth1, [\out, ~octoBus1, \hpfreqmin, 100]); +~hpfHenon.set(\hpfreqmin, 1000) ~hpfHenon.free; ~distbleeps = Synth(\latooTriggers, [\out, ~octoBus1, \trigA, 1.1], ~octoPanner1, \addBefore); @@ -338,6 +371,8 @@ FreqScope.new(400, 200, 0, server: s); ~henonSquare.set(\gate,0); ~latooWan1 = Synth(\latooWanderings, [\out, ~octoBus4, \fadeTime, 0.1]); +~latooWan1.set(\out,1) +~latooWan1.set(\amp,1) ~latooWan1.set(\gate, 0, \fadeTime, 10); ~latooWan1.free; @@ -354,10 +389,14 @@ FreqScope.new(400, 200, 0, server: s); ~noiseCr1 = Synth(\noiseCrackle, [\out, ~octoBus1, \fadeTime, 5 ]); +~noiseCr1 = Synth(\noiseCrackle, [\out, 0, \fadeTime, 5 ]); +~noiseCr2 = Synth(\noiseCrackle, [\out, 1, \fadeTime, 5 ]); ~noiseCr1.set(\lpfa,1,\hpfa,0); +~noiseCr1.set(\hpfa,1,\lpfa,0); ~noiseCr1.set(\amp,0.3); ~noiseCr1.set(\fadeTime, 20, \gate,0); +~noiseCr2.set(\fadeTime, 20, \gate,0); ~noiseCr1.free; @@ -380,7 +419,7 @@ FreqScope.new(400, 200, 0, server: s); ~latooTrig1 = Synth(\latooTrigRing, [\out, ~octoBus1, \freq, 300], ~octoPanner1, \addBefore); ~latooTrig1.free; -~lorenzTrig1 = Synth(\lorenzTrigRing, [\out, ~octoBus1, \freq, 1400, \amp, 0.5], ~octoPanner1, \addBefore); +~lorenzTrig1 = Synth(\lorenzTrigRing, [\out, ~octoBus1, \freq, 1400, \amp, 0.5]); ~lorenzTrig1.free; ~fhnTrig1 = Synth(\fhnTrigRing, [\out, ~octoBus1, \freq, 2100, \amp, 0.5], ~octoPanner1, \addBefore); @@ -395,8 +434,8 @@ FreqScope.new(400, 200, 0, server: s); ~soil1.set(\rate, 0.2); ~soil1.set(\out, 1); ~soil1.set(\dur, 0.01); -~soil1.set(\amp, 3); - +~soil1.set(\amp, 0.1); +~soil1.set(\out, 1); ~soil1.set(\envbuf, ~planotaBuf); // send SinOscilation to a argument via bus @@ -409,6 +448,8 @@ FreqScope.new(400, 200, 0, server: s); ~soil2 = Synth(\granSoil, [\out, ~octoBus2, \sndbuf, ~forestSoilBuf]); ~soil2.map(\dur, ~foreskrBus); +~soil2.set(\amp, 0.1) + ~soil1.set(\gate, 0, \fadeTime, 2); // use envelope to fade out ~soil2.set(\gate, 0, \fadeTime, 2); // use envelope to fade out