parent
b41cd6bf85
commit
92c1fd71f2
2 changed files with 240 additions and 362 deletions
@ -1,381 +1,259 @@ |
||||
(/* |
||||
Copyright (c) 2020 Luka Prinčič, All rights reserved. |
||||
This program is free software distributed under |
||||
GNU General Public Licence. See COPYING for more info. |
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - |
||||
Copyright (c) 2020 Luka Prinčič, All rights reserved. |
||||
This program is free software distributed under |
||||
GNU General Public Licence. See COPYING for more info. |
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - |
||||
// TECHNOKINSHIP - OCTOPODA //////////////////////////////////// |
||||
|
||||
██████╗ ██████╗████████╗ ██████╗ ██████╗ ██████╗ ██████╗ █████╗ |
||||
██████╗ ██████╗████████╗ ██████╗ ██████╗ ██████╗ ██████╗ █████╗ |
||||
██╔═══██╗██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗██╔═══██╗██╔══██╗██╔══██╗ |
||||
██║ ██║██║ ██║ ██║ ██║██████╔╝██║ ██║██║ ██║███████║ |
||||
██║ ██║██║ ██║ ██║ ██║██╔═══╝ ██║ ██║██║ ██║██╔══██║ |
||||
╚██████╔╝╚██████╗ ██║ ╚██████╔╝██║ ╚██████╔╝██████╔╝██║ ██║ |
||||
╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ |
||||
|
||||
╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ |
||||
|
||||
*/ |
||||
SONORETUM VERSION FOR 15.DEC 2020 /////////////////////////////// |
||||
|
||||
*/ |
||||
#[\internal, \local].do { |s| |
||||
s = Server.perform(s); |
||||
s.options.numInputBusChannels = 2; |
||||
s.options.numOutputBusChannels = 8; |
||||
s.options.numOutputBusChannels = 8; |
||||
s.options.memSize = 2097152; // 2 gigs |
||||
}; |
||||
|
||||
|
||||
Server.default.waitForBoot { |
||||
|
||||
var timeLine; |
||||
|
||||
// library path |
||||
var libPath = PathName(thisProcess.nowExecutingPath.dirname +/+ "lib"); |
||||
|
||||
// for each files in that lib folder |
||||
// for each files in that lib folder |
||||
libPath.filesDo({|afile| |
||||
// tell me what you're executing: |
||||
postln(" ." + afile.fileName); |
||||
|
||||
// execute it: |
||||
this.executeFile(afile.fullPath); |
||||
this.executeFile(afile.fullPath); |
||||
}); |
||||
}); |
||||
|
||||
|
||||
// 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 = 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; |
||||
); |
||||
|
||||
|
||||
r = Recorder(s); |
||||
r.recHeaderFormat = "wav"; |
||||
r.record(numChannels:8); |
||||
r.stopRecording; |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
( /////////////////////////////////////////////////////////////////////////////// |
||||
var timeLine; |
||||
"\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>".postln; |
||||
"--- O C T O P O D A -----".postln; |
||||
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n".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 |
||||
~panner1y.free; ~panner2y.free; ~panner3y.free; ~panner4y.free; |
||||
~panner1x.free; ~panner2x.free; ~panner3x.free; ~panner4x.free; |
||||
|
||||
|
||||
|
||||
~reverb1wetBus.free; // ~wetOsc.free; // clean up |
||||
~reverb2wetBus.free; // ~wetOsc.free; // clean up |
||||
~reverb3wetBus.free; // ~wetOsc.free; // clean up |
||||
~reverb4wetBus.free; // ~wetOsc.free; // clean up |
||||
|
||||
~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.free; ~wetOsc2.free; ~wetOsc3.free; ~wetOsc4.free; |
||||
~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); |
||||
//); |
||||
|
||||
//( |
||||
//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; |
||||
); |
||||
|
||||
|
||||
|
||||
|
||||
// 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; |
||||
|
||||
~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; |
||||
~panner4y = SynthDef(\randomPanY4, { Out.kr(~panBus4y, LFNoise1.kr(1).range(0,1))}).play; |
||||
~panner2x = SynthDef(\randomPanX2, { Out.kr(~panBus2x, LFPulse.kr(0.3).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; |
||||
|
||||
// ... etc ///////////////////////////////////////////////////////////////////////////////// |
||||
|
||||
|
||||
s.meter; |
||||
s.plotTree; |
||||
s.scope(8); |
||||
|
||||
timeLine = Routine { |
||||
"--- starting main routine ...".postln; |
||||
|
||||
1.wait; |
||||
|
||||
// octoPan busses ////////////// |
||||
"loading octoPan busses...".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; |
||||
|
||||
1.wait; |
||||
////////////////////////////////////////////////////////////////////////////// |
||||
|
||||
"\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>".postln; |
||||
"--- O C T O P O D A -----".postln; |
||||
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n".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 |
||||
//~panner1y.free; ~panner2y.free; ~panner3y.free; ~panner4y.free; |
||||
//~panner1x.free; ~panner2x.free; ~panner3x.free; ~panner4x.free; |
||||
|
||||
|
||||
|
||||
~reverb1wetBus.free; // ~wetOsc.free; // clean up |
||||
~reverb2wetBus.free; // ~wetOsc.free; // clean up |
||||
~reverb3wetBus.free; // ~wetOsc.free; // clean up |
||||
~reverb4wetBus.free; // ~wetOsc.free; // clean up |
||||
|
||||
~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.free; ~wetOsc2.free; ~wetOsc3.free; ~wetOsc4.free; |
||||
~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; |
||||
|
||||
1.wait; |
||||
|
||||
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; |
||||
|
||||
//~panner1y.free; ~panner2y.free; ~panner3y.free; ~panner4y.free; |
||||
//~panner1x.free; ~panner2x.free; ~panner3x.free; ~panner4x.free; |
||||
|
||||
~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; |
||||
~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; |
||||
~panner2x = SynthDef(\randomPanX2, { Out.kr(~panBus2x, LFPulse.kr(0.3).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; |
||||
|
||||
|
||||
"--- 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