diff --git a/scd/octopoda.scd b/scd/octopoda.scd index 373f760..0c3caa0 100644 --- a/scd/octopoda.scd +++ b/scd/octopoda.scd @@ -164,16 +164,86 @@ var timeLine; //( //var timeLine; -/* + timeLine = Routine { "--- starting main routine ...".postln; +SynthDef(\tw, { + //Pan2.ar(FreeVerb.ar( + arg outBus; + var snd, rev, z, y; + snd = 0.5 * TermanWang.ar( + input: 2.0 + SinOsc.ar( + LFNoise1.kr(LFNoise0.kr(LFNoise0.kr(1).range(10,0.1)).range(10,0.1)).exprange(10,10000), 0, + LFNoise1.kr(LFNoise0.kr(LFNoise0.kr(1).range(10,0.1)).range(10,0.1)).exprange(0.1,100.0)), + reset: Impulse.kr(LFNoise1.kr(0.1).exprange(1,10000, 'exponential')), + ratex: 0.2, + ratey:0.2, + alpha:2.0, + beta:2.0, + eta:1.0, + initx:LFNoise1.kr(LFNoise0.kr(LFNoise0.kr(1).range(10,0.1)).range(10,0.1)).range(0.4,1.2), + inity:LFNoise1.kr(LFNoise0.kr(LFNoise0.kr(1).range(10,0.1)).range(10,0.1)).range(2.0,4.0) + ); + snd = LeakDC.ar(snd); + snd = snd * LFPulse.kr(LFNoise0.kr(0.4).range(0.01,0.1), width:LFNoise0.kr(0.5).exprange(0.01,0.1)); + + // reverb predelay time : + z = DelayN.ar(snd*100, 0.048); + // 7 length modulated comb delays in parallel : + y = Mix.ar(Array.fill(7,{ CombL.ar(z, 0.1, LFNoise1.kr(0.01, 0.02, 0.022), 15) })); + // two parallel chains of 4 allpass delays (8 total) : + 4.do({ y = AllpassN.ar(y, 0.020, [0.050.rand, 0.050.rand], 1) }); + + rev = Limiter.ar(y, LFNoise1.kr(0.1).exprange(0.01, 0.3)-0); + snd = snd * LFNoise1.kr(0.05).range(0.1,1); + snd = snd + rev; + + snd = LeakDC.ar(snd); + snd = HPF.ar(snd, 300); + Out.ar(outBus, snd); +}).add; + + +1.wait; + +~tw.free; +~tw = Synth(\tw, [\outBus, ~octoBus1]); +~panBus1y.value = 0; // set a fixed value to a bus +~panBus1x.value = 0; +~panBus1r.value = 0.1; + +1.wait; + +~tw2.free; +~tw2 = Synth(\tw, [\outBus, ~octoBus2]); +~panBus2y.value = 0.28; // set a fixed value to a bus +~panBus2x.value = 0; +~panBus2r.value = 0.1; + +1.wait; + +~tw3.free; +~tw3 = Synth(\tw, [\outBus, ~octoBus3]); +~panBus2y.value = 1; // set a fixed value to a bus +~panBus2x.value = 0; +~panBus2r.value = 0.001; + +1.wait; + +~tw4.free; +~tw4 = Synth(\tw, [\outBus, ~octoBus4]); +~panBus2y.value = 1; // set a fixed value to a bus +~panBus2x.value = 0; +~panBus2r.value = 0.001; + + + "--- end of the TIMELINE ---".postln }; timeLine.play; - */ ); @@ -181,6 +251,10 @@ timeLine.play; // testing stuff! /////////////////////////////////////////////////////////////////////////////////////// + + + + // do stuff with panning: "--- starting panner1y sin Oscilation ...".postln; ~panner1y = SynthDef(\sinPanY1, { Out.kr(~panBus1y, SinOsc.kr(0.01).range(0.3,0.5))}).play; @@ -214,6 +288,50 @@ timeLine.play; // ... etc ///////////////////////////////////////////////////////////////////////////////// + + +Fhn2DC +Fhn2DL +Fhn2DN +FitzHughNagumo.ar +TermanWang.ar + +{Out.ar(0,Pan2.ar(0.5*TermanWang.ar(2.0,Impulse.kr(MouseX.kr(1,1000)),0.1,0.01,1.0,1.0,1.0,MouseX.kr(0.4,1.2), MouseY.kr(2.0,4.0)),0.0))}.play; + +{Out.ar(0,Pan2.ar(0.5*TermanWang.ar(LFNoise1.ar(LFNoise0.kr(0.5,500,500),1.0,3.0),Impulse.kr(MouseX.kr(1,10000, 'exponential')),0.01,0.01,1.0,1.0,1.0,MouseX.kr(0.4,1.2), MouseY.kr(2.0,4.0)),0.0))}.play; + +{Out.ar(0,Pan2.ar(FreeVerb.ar(0.5*TermanWang.ar(2.0+ SinOsc.ar(MouseX.kr(10,10000,'exponential'),0,MouseY.kr(0.1,100.0,'exponential')),Impulse.kr(MouseX.kr(1,10000, 'exponential')),0.01,0.01,1.0,1.0,1.0,MouseX.kr(0.4,1.2), MouseY.kr(2.0,4.0)),0.5)))}.play; + + +Ndef(\tw).clear +Ndef(\tw).play + + + +Ndef(\dneu).play; +Ndef(\dneu).stop; +( +SynthDef(\dneumod, { + arg outBus; + var dt, module, m, snd; + dt = 0.1; + module = Dneuromodule(2, + theta: [LFNoise0.kr(0.2).range(-2, 2), LFNoise0.kr(0.3).range(-2, 2)], + x: [0.1, 0.3], + weights: [-3, 2, -2, 0] + ); + m = Duty.ar(dt, 0, module).lag3(dt/40); + snd = SinOsc.ar(m * 1400 + 1600) * 0.8; + snd = HPF.ar(snd, 200); + snd = snd * LFPulse.kr(LFNoise0.kr(0.4).range(0.1,0.8), width:LFNoise0.kr(0.4).exprange(0.1,1)); + snd = Limiter.ar(snd, 0.8); + Out.ar(outBus, snd); +}).add; +) + + + + ( SynthDef(\fhnTrigRing, { arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1, gate=1, fadeTime=1;