final sonoretum version
parent
b41cd6bf85
commit
92c1fd71f2
|
@ -2,15 +2,15 @@
|
||||||
// a function to position sound in space
|
// a function to position sound in space
|
||||||
~octoPanOut = {
|
~octoPanOut = {
|
||||||
arg in, in_x, in_y, fact;
|
arg in, in_x, in_y, fact;
|
||||||
|
// 5.4m 3.5m
|
||||||
var s1_x=0, s1_y=0, s1_amp,
|
var s1_x=0, s1_y=0, s1_amp,
|
||||||
s2_x=0, s2_y=360, s2_amp,
|
s2_x=540, s2_y=0, s2_amp,
|
||||||
s3_x=0, s3_y=720, s3_amp,
|
s3_x=0, s3_y=350, s3_amp,
|
||||||
s4_x=0, s4_y=1080, s4_amp,
|
s4_x=540, s4_y=350, s4_amp,
|
||||||
s5_x=650, s5_y=1260, s5_amp,
|
s5_x=0, s5_y=700, s5_amp,
|
||||||
s6_x=650, s6_y=900, s6_amp,
|
s6_x=540, s6_y=700, s6_amp,
|
||||||
s7_x=650, s7_y=540, s7_amp,
|
s7_x=0, s7_y=1050, s7_amp,
|
||||||
s8_x=650, s8_y=180, s8_amp ;
|
s8_x=540, s8_y=1050, s8_amp ;
|
||||||
|
|
||||||
var factor = (1 / (5000000 * fact)); // exponential curve of amplification calculated from distance? log????
|
var factor = (1 / (5000000 * fact)); // exponential curve of amplification calculated from distance? log????
|
||||||
//var distance = {|x1,y1,x2,y2| ((x2-x1).squared + (y2-y1).squared).sqrt};
|
//var distance = {|x1,y1,x2,y2| ((x2-x1).squared + (y2-y1).squared).sqrt};
|
||||||
|
|
184
scd/octopoda.scd
184
scd/octopoda.scd
|
@ -12,6 +12,7 @@
|
||||||
╚██████╔╝╚██████╗ ██║ ╚██████╔╝██║ ╚██████╔╝██████╔╝██║ ██║
|
╚██████╔╝╚██████╗ ██║ ╚██████╔╝██║ ╚██████╔╝██████╔╝██║ ██║
|
||||||
╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝
|
╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝
|
||||||
|
|
||||||
|
SONORETUM VERSION FOR 15.DEC 2020 ///////////////////////////////
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#[\internal, \local].do { |s|
|
#[\internal, \local].do { |s|
|
||||||
|
@ -24,6 +25,8 @@
|
||||||
|
|
||||||
Server.default.waitForBoot {
|
Server.default.waitForBoot {
|
||||||
|
|
||||||
|
var timeLine;
|
||||||
|
|
||||||
// library path
|
// library path
|
||||||
var libPath = PathName(thisProcess.nowExecutingPath.dirname +/+ "lib");
|
var libPath = PathName(thisProcess.nowExecutingPath.dirname +/+ "lib");
|
||||||
|
|
||||||
|
@ -35,11 +38,18 @@ Server.default.waitForBoot {
|
||||||
// execute it:
|
// execute it:
|
||||||
this.executeFile(afile.fullPath);
|
this.executeFile(afile.fullPath);
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
|
s.meter;
|
||||||
|
s.plotTree;
|
||||||
|
s.scope(8);
|
||||||
|
|
||||||
|
timeLine = Routine {
|
||||||
|
"--- starting main routine ...".postln;
|
||||||
|
|
||||||
|
1.wait;
|
||||||
|
|
||||||
// octoPan busses //////////////
|
// octoPan busses //////////////
|
||||||
(
|
"loading octoPan busses...".postln;
|
||||||
// free busses and panners when re-trying things?
|
// free busses and panners when re-trying things?
|
||||||
~octoBus1.free; ~octoBus2.free; ~octoBus3.free; ~octoBus4.free;
|
~octoBus1.free; ~octoBus2.free; ~octoBus3.free; ~octoBus4.free;
|
||||||
~panBus1x.free; ~panBus1y.free; ~panBus1r.free;
|
~panBus1x.free; ~panBus1y.free; ~panBus1r.free;
|
||||||
|
@ -87,20 +97,10 @@ Server.default.waitForBoot {
|
||||||
// 8chan reverb bus
|
// 8chan reverb bus
|
||||||
~revBus = Bus.audio(s,8);
|
~revBus = Bus.audio(s,8);
|
||||||
">>> loaded all busses".postln;
|
">>> loaded all busses".postln;
|
||||||
);
|
|
||||||
|
|
||||||
|
1.wait;
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
r = Recorder(s);
|
|
||||||
r.recHeaderFormat = "wav";
|
|
||||||
r.record(numChannels:8);
|
|
||||||
r.stopRecording;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
( ///////////////////////////////////////////////////////////////////////////////
|
|
||||||
var timeLine;
|
|
||||||
"\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>".postln;
|
"\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>".postln;
|
||||||
"--- O C T O P O D A -----".postln;
|
"--- O C T O P O D A -----".postln;
|
||||||
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n".postln;
|
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n".postln;
|
||||||
|
@ -131,8 +131,8 @@ var timeLine;
|
||||||
|
|
||||||
|
|
||||||
// some default oscilations of pan and reverb
|
// some default oscilations of pan and reverb
|
||||||
~panner1y.free; ~panner2y.free; ~panner3y.free; ~panner4y.free;
|
//~panner1y.free; ~panner2y.free; ~panner3y.free; ~panner4y.free;
|
||||||
~panner1x.free; ~panner2x.free; ~panner3x.free; ~panner4x.free;
|
//~panner1x.free; ~panner2x.free; ~panner3x.free; ~panner4x.free;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -150,23 +150,13 @@ var timeLine;
|
||||||
~reverb4wetBus = Bus.control(s, 1); // create control bus
|
~reverb4wetBus = Bus.control(s, 1); // create control bus
|
||||||
~reverb.map(\verb4wet, ~reverb4wetBus); // map an argument to control bus
|
~reverb.map(\verb4wet, ~reverb4wetBus); // map an argument to control bus
|
||||||
|
|
||||||
~wetOsc1.free; ~wetOsc2.free; ~wetOsc3.free; ~wetOsc4.free;
|
//~wetOsc1.free; ~wetOsc2.free; ~wetOsc3.free; ~wetOsc4.free;
|
||||||
~wetOsc1 = SynthDef(\randomVerb1, {Out.kr(~reverb1wetBus, LFNoise2.kr(1).range(0, 0.8)) }).play;
|
~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;
|
~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;
|
~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;
|
~wetOsc4 = SynthDef(\randomVerb4, {Out.kr(~reverb4wetBus, LFNoise2.kr(1).range(0, 0.8)) }).play;
|
||||||
|
|
||||||
// ~wetOsc.free;
|
1.wait;
|
||||||
// ~reverb.set(\verb1wet, 0);
|
|
||||||
// ~reverb.set(\verb1wet, 1);
|
|
||||||
// ~reverb.set(\verb2wet, 1);
|
|
||||||
//);
|
|
||||||
|
|
||||||
//(
|
|
||||||
//var timeLine;
|
|
||||||
|
|
||||||
timeLine = Routine {
|
|
||||||
"--- starting main routine ...".postln;
|
|
||||||
|
|
||||||
SynthDef(\tw, {
|
SynthDef(\tw, {
|
||||||
//Pan2.ar(FreeVerb.ar(
|
//Pan2.ar(FreeVerb.ar(
|
||||||
|
@ -200,14 +190,14 @@ SynthDef(\tw, {
|
||||||
snd = snd + rev;
|
snd = snd + rev;
|
||||||
|
|
||||||
snd = LeakDC.ar(snd);
|
snd = LeakDC.ar(snd);
|
||||||
snd = HPF.ar(snd, 300);
|
//snd = HPF.ar(snd, 300);
|
||||||
Out.ar(outBus, snd);
|
Out.ar(outBus, snd);
|
||||||
}).add;
|
}).add;
|
||||||
|
|
||||||
|
|
||||||
1.wait;
|
1.wait;
|
||||||
|
|
||||||
~tw.free;
|
//~tw.free;
|
||||||
~tw = Synth(\tw, [\outBus, ~octoBus1]);
|
~tw = Synth(\tw, [\outBus, ~octoBus1]);
|
||||||
~panBus1y.value = 0; // set a fixed value to a bus
|
~panBus1y.value = 0; // set a fixed value to a bus
|
||||||
~panBus1x.value = 0;
|
~panBus1x.value = 0;
|
||||||
|
@ -215,7 +205,7 @@ SynthDef(\tw, {
|
||||||
|
|
||||||
1.wait;
|
1.wait;
|
||||||
|
|
||||||
~tw2.free;
|
//~tw2.free;
|
||||||
~tw2 = Synth(\tw, [\outBus, ~octoBus2]);
|
~tw2 = Synth(\tw, [\outBus, ~octoBus2]);
|
||||||
~panBus2y.value = 0.28; // set a fixed value to a bus
|
~panBus2y.value = 0.28; // set a fixed value to a bus
|
||||||
~panBus2x.value = 0;
|
~panBus2x.value = 0;
|
||||||
|
@ -223,7 +213,7 @@ SynthDef(\tw, {
|
||||||
|
|
||||||
1.wait;
|
1.wait;
|
||||||
|
|
||||||
~tw3.free;
|
//~tw3.free;
|
||||||
~tw3 = Synth(\tw, [\outBus, ~octoBus3]);
|
~tw3 = Synth(\tw, [\outBus, ~octoBus3]);
|
||||||
~panBus2y.value = 1; // set a fixed value to a bus
|
~panBus2y.value = 1; // set a fixed value to a bus
|
||||||
~panBus2x.value = 0;
|
~panBus2x.value = 0;
|
||||||
|
@ -231,53 +221,16 @@ SynthDef(\tw, {
|
||||||
|
|
||||||
1.wait;
|
1.wait;
|
||||||
|
|
||||||
~tw4.free;
|
//~tw4.free;
|
||||||
~tw4 = Synth(\tw, [\outBus, ~octoBus4]);
|
~tw4 = Synth(\tw, [\outBus, ~octoBus4]);
|
||||||
~panBus2y.value = 1; // set a fixed value to a bus
|
~panBus2y.value = 1; // set a fixed value to a bus
|
||||||
~panBus2x.value = 0;
|
~panBus2x.value = 0;
|
||||||
~panBus2r.value = 0.001;
|
~panBus2r.value = 0.001;
|
||||||
|
|
||||||
|
//~panner1y.free; ~panner2y.free; ~panner3y.free; ~panner4y.free;
|
||||||
|
//~panner1x.free; ~panner2x.free; ~panner3x.free; ~panner4x.free;
|
||||||
|
|
||||||
"--- end of the TIMELINE ---".postln
|
|
||||||
};
|
|
||||||
|
|
||||||
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;
|
|
||||||
~panBus1x.value = 1;
|
|
||||||
~panBus1r.value = 1;
|
|
||||||
|
|
||||||
"--- return to static duration, abruptly...".postln;
|
|
||||||
~panner1y.free; ~panner2y.free;
|
|
||||||
~panBus1y.value = 0.1;
|
|
||||||
~soil1.set(\dur, 0.0001);
|
|
||||||
wait(1);
|
|
||||||
~soil2.set(\dur, 0.0001);
|
|
||||||
~panBus2y.value = 0.9;
|
|
||||||
|
|
||||||
~panBus1y.value = 0; // set a fixed value to a bus
|
|
||||||
~panBus1x.value = 0;
|
|
||||||
~panBus1r.value = 0.1;
|
|
||||||
|
|
||||||
// or
|
|
||||||
~paner2y.free; ~panner3y.free; ~panner4y.free; ~panner2x.free; ~panner3x.free; ~panner4x.free;
|
|
||||||
|
|
||||||
~panner1y = SynthDef(\randomPanY1, { Out.kr(~panBus1y, LFNoise1.kr(0.1).range(0,1))}).play;
|
~panner1y = SynthDef(\randomPanY1, { Out.kr(~panBus1y, LFNoise1.kr(0.1).range(0,1))}).play;
|
||||||
|
|
||||||
~panner2y = SynthDef(\randomPanY2, { Out.kr(~panBus2y, LFNoise1.kr(2).range(0,1))}).play;
|
~panner2y = SynthDef(\randomPanY2, { Out.kr(~panBus2y, LFNoise1.kr(2).range(0,1))}).play;
|
||||||
~panner3y = SynthDef(\randomPanY3, { Out.kr(~panBus3y, LFNoise1.kr(1).range(0,1))}).play;
|
~panner3y = SynthDef(\randomPanY3, { Out.kr(~panBus3y, LFNoise1.kr(1).range(0,1))}).play;
|
||||||
~panner4y = SynthDef(\randomPanY4, { Out.kr(~panBus4y, LFNoise1.kr(1).range(0,1))}).play;
|
~panner4y = SynthDef(\randomPanY4, { Out.kr(~panBus4y, LFNoise1.kr(1).range(0,1))}).play;
|
||||||
|
@ -285,90 +238,15 @@ timeLine.play;
|
||||||
~panner3x = SynthDef(\randomPanX3, { Out.kr(~panBus3x, LFPulse.kr(0.44).range(0,1))}).play;
|
~panner3x = SynthDef(\randomPanX3, { Out.kr(~panBus3x, LFPulse.kr(0.44).range(0,1))}).play;
|
||||||
~panner4x = SynthDef(\randomPanX4, { Out.kr(~panBus4x, LFPulse.kr(0.22).range(0,1))}).play;
|
~panner4x = SynthDef(\randomPanX4, { Out.kr(~panBus4x, LFPulse.kr(0.22).range(0,1))}).play;
|
||||||
|
|
||||||
// ... etc /////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
"--- end of the TIMELINE ---".postln
|
||||||
|
};
|
||||||
|
|
||||||
|
timeLine.play;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
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;
|
|
||||||
var snd, in, env;
|
|
||||||
|
|
||||||
in = FhnTrig.ar(min,max);
|
|
||||||
snd = Ringz.ar(in, freq, decay);
|
|
||||||
snd = LPF.ar(snd, ffreq);
|
|
||||||
env = EnvGen.kr(
|
|
||||||
Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1),
|
|
||||||
gate, doneAction: Done.freeSelf);
|
|
||||||
|
|
||||||
snd = snd * env * amp;
|
|
||||||
Out.ar(out,snd)
|
|
||||||
}).add;
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
~fhnTrig2 = Synth(\fhnTrigRing, [\out, ~octoBus1, \freq, 2110, \amp, 0.5, \min, 2, \max, 20, \amp, 0.5, \fadeTime, 10]);
|
|
||||||
~fhnTrig2.free;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
~hpfHenon = Synth(\henonLsynth1, [\out, ~octoBus3, \hpfreqmin, 100]);
|
|
||||||
~hpfHenon = Synth(\henonLsynth1, [\out, ~octoBus1, \hpfreqmin, 100]);
|
|
||||||
~hpfHenon.set(\hpfreqmin, 1000)
|
|
||||||
~hpfHenon.free;
|
|
||||||
|
|
||||||
~bassLatoo = Synth(\latooThroBass, [\out, ~octoBus1, \amp, 0.2]);
|
|
||||||
~bassLatoo.free;
|
|
||||||
|
|
||||||
~henonSquare = Synth(\henonSquare, [\out, ~octoBus1, \amp, 0.2]);
|
|
||||||
~henonSquare.set(\gate,0);
|
|
||||||
|
|
||||||
// recording
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue