new controler mappings

master
Rob Canning 2022-11-22 12:42:06 +01:00
parent 9543dbd72e
commit f1c1167ebe
2 changed files with 350 additions and 204 deletions

View File

@ -46,7 +46,6 @@ StaticText(~inputGui, Rect(0,0,230,40))
});
~recModeGui = Button(~inputGui, Rect(100, 110, 140, 90))
.states_([
["TRIGGER \n ACTIVE", Color.black, Color.green],
@ -61,7 +60,6 @@ StaticText(~inputGui, Rect(0,0,230,40))
});
StaticText(~inputGui, Rect(100,200,130,30))
.string_("OVERDUB LEVEL").background_(Color.clear)
.stringColor_(Color.white)
@ -119,22 +117,22 @@ VLayout(
StaticText(~grainGui, Rect(50,50,300,40)).string_("PLAYHEAD MODE").background_(Color.clear).stringColor_(Color.black).font_(Font.default.size_(30));
~positionModeGui = QPopUpMenu(~grainGui, Rect(10, 50, 300, 40))
.items_(["Static", "Looping","Randomise","Constrained", "Sensor"])
.items_([0, "Static", "Looping","Randomise","Constrained", "Sensor", 6, 7])
.font_(Font.default.size_(35)).background_(Color.yellow);
StaticText(~grainGui, Rect(50,50,300,40)).string_("PITCH MODE").background_(Color.clear).stringColor_(Color.black).font_(Font.default.size_(30));
~pitchModeGui = QPopUpMenu.new(~grainGui, Rect(10,100,300,40))
.items_(["no transpose","sensor","octave randomisation", "array 2", "array 3", "array 4", "RND 1", "RND 2", "RND 3", ])
.items_([0,1,2,3,4,5,6,7])
.font_(Font.default.size_(35))
.stringColor_(Color.black).background_(Color.yellow);
StaticText(~grainGui, Rect(50,50,300,40)).string_("DURATION MODE").background_(Color.clear).stringColor_(Color.black).font_(Font.default.size_(30));
~durModeGui = QPopUpMenu.new(~grainGui, Rect(10,150,300,40))
.items_(["0.1","0.2","0.1 - 1", "0.1 - 1", "0.5 - 1", "0.1 - 3"])
.items_([0, 1,2,3,4,5,6,7])
.font_(Font.default.size_(35))
.value_(~gdurmode)
.value_(0)
.stringColor_(Color.black).background_(Color.yellow);
StaticText(~grainGui, Rect(50,50,300,40)).string_("DENSITY / VOICES").background_(Color.clear).stringColor_(Color.black).font_(Font.default.size_(30));
@ -142,15 +140,13 @@ VLayout(
~densityModeGui = QPopUpMenu.new(~grainGui, Rect(10,200,300,40))
.items_(["1", "2","4","8","16","32","64","128"])
.font_(Font.default.size_(35)).background_(Color.yellow)
.value_(6);
.font_(Font.default.size_(35)).background_(Color.yellow);
StaticText(~grainGui, Rect(50,50,300,40)).string_("IMPULSE MODE").background_(Color.clear).stringColor_(Color.black).font_(Font.default.size_(30));
~impulseModeGui = QPopUpMenu.new(~grainGui, Rect(10,250,300,40))
.items_(["Impulse","Dust","Array"])
.font_(Font.default.size_(35)).background_(Color.yellow)
.value_(0);
.font_(Font.default.size_(35)).background_(Color.yellow);
~gPanModeGui = QPopUpMenu(~grainGui, Rect(10, 300, 220, 30))
.items_(["OFF","STEREO FRONT","STEREO BACK", "STEREO PAN", "STEREO RND", "QUAD", "QUAD ROTATE", "QUAD RANDOM" ]).font_(Font.default.size_(24));

538
gtr.scd
View File

@ -1,4 +1,4 @@
'
// RUNME 0 =========================================
// todo countdown on density voices
@ -107,9 +107,9 @@ SynthDef("ringModulator", {
// ---------~positionmode = 1; -------------------------------------------
// ---------~positionMode = 1; -------------------------------------------
( // Granulator --------------------------------------r.get(\in).postln;
/*( // Granulator --------------------------------------r.get(\in).postln;
// ----------------------------------------------------
@ -201,7 +201,7 @@ SynthDef(\buf_grain, { | out=0, gate = 1, amp = 0.5,
Out.ar(0, signal);
}).add;
);
);*/
(
~micBus = Bus.audio(s,1);
@ -236,16 +236,20 @@ SynthDef.new(\rec, {
SynthDef("recBuf",{
arg in=0, out=0, ptrIn=0, bufnum=0, t_trig=0, l=0, overdub=0;
var sig, ptr, chain, onsets;
sig = In.ar(in, 1);
ptr = In.ar(ptrIn, 1);
sig = SoundIn.ar(in, 1);
// ptr = In.ar(ptrIn, 1);
// Onsets
//chain = FFT(LocalBuf(512), sig);
//onsets = Onsets.kr(chain, MouseX.kr(0,1), \rcomplex);
RecordBuf.ar(sig, bufnum, loop:l,
recLevel: 1,
preLevel: overdub,
doneAction: 0, trigger:t_trig, offset: ptr,);
doneAction: 0, trigger:t_trig,
//offset: ptr,
);
}).add;
);
@ -281,7 +285,7 @@ SynthDef.new(\gran, {
sig = GrainBuf.ar(
2,
4,
densCtrl,
durCtrl,
buf,
@ -304,12 +308,12 @@ SynthDef.new(\gran, {
)
( // New Granulator --------------------------------------
/*( // New Granulator --------------------------------------
SynthDef(\buf_grain, { | out=0, gate = 1, amp = 0.5,
sndbuf, envbuf, pan=0, imp=50,
pitchmodeindex=0, sensorpitch=1, sensorgdur=0.1, sensorgpan=0,
positionmodeindex=0, gdurmodeindex=0, gpanmodeindex=0,
pitchmodeindex=0, sensorpitch=1, sensordensity=1, sensorgdur=0.1, sensorgpan=0,
positionmodeindex=0, gdurmodeindex=0, gpanmodeindex=0, densitymodeindex=0,
sensorposition=0, impulsemodeindex=0, sensorimpulse=0,
signalChannelIndex=1, dseqarrayIndex=1,
rlow= -1, rhigh=10 |
@ -319,6 +323,7 @@ SynthDef(\buf_grain, { | out=0, gate = 1, amp = 0.5,
gdurmode0, gdurmode1, gdurmode2, gdurmode3, gdurmode4, gdurmode5, gdurmode6, gdur,
gpanmode0, gpanmode1, gpanmode2, gpan,
positionmode0, positionmode1, positionmode2, positionmode3, position,
densmode0,densmode1,densmode2,densmode3,densmode4,densmode5,densmode6,densmode7, density,
impulsemode0, impulsemode1, impulse,
xdseq, dseq_array1, dseq_array2, dseq_array3, dseq_array4, dseq_array5, dseq_array6,
stereosignal, quadsignalL, quadsignalR, quadsignal, signalchannels;
@ -336,14 +341,29 @@ SynthDef(\buf_grain, { | out=0, gate = 1, amp = 0.5,
[gdurmode0, gdurmode1, gdurmode2, gdurmode3, gdurmode4, gdurmode5, gdurmode6, sensorgdur]);
// grain pan mode STEREO, QUAD, ROTATING
gpanmode0 = LFNoise1.kr(100).range(-0.2, 0.2);
gpanmode1 = LFSaw.kr(0.33).bipolar.range(-1,1);
gpanmode2 = LFNoise1.kr(100).range(-1, 1);
gpan = Select.kr(gpanmodeindex,
[gpanmode0, gpanmode1, gpanmode2, sensorgpan]);
// grain pitch mode -untransposed, random, or sensor controlled
// density mode
dens0 = 1;
dens1 = 2;
dens2 = 4;
dens3 = 8;
dens4 = 16;
dens5 = 32;
dens6 = 64;
dens7 = 128;
density = Select.kr(densitymodeindex,
[dens0,dens1,dens2,dens3,dens4,dens5,dens6,dens7]);
// grain pitch mode -untransposed, random, or sensor controlled
pitchmode0 = 1;
//pitchmode1 = Demand.kr(Impulse.kr(imp), 0, Dseq([1,-1, 2, 1, -1.5, 1, 1.33, 1, -0.5, 1, 3, 1, 2.37, 1, -0.33, 1], inf));
pitchmode1 = Demand.kr(Impulse.kr(imp), 0, Drand([1,1, 1,1,1,1, 2, 3, 3, 0.5, 0.5], inf));
@ -378,7 +398,8 @@ SynthDef(\buf_grain, { | out=0, gate = 1, amp = 0.5,
Out.ar(0, signal);
}).add;
)
)*/
@ -390,36 +411,66 @@ SynthDef(\buf_grain, { | out=0, gate = 1, amp = 0.5,
// ----------------------------------------------------
r = Synth(\recBuf, [\in, 0, \out, 0, \bufnum, b, \t_trig, 0]); // recorder
~g1 = Synth(\buf_grain, [\sndbuf, b, \amp, 0.5, \envbuf, -1, \gate, 1, doneAction: 2, ], ~fxGroup); // granulate
(
b.zero;
~g = 1.collect({
arg n;
Synth(\gran,[
\amp, n.linlin(0,4, -3,-20).dbamp,
\buf, b, // which buffer
\out, 0,
\atk, 1,
\rel, 1,
\gate, 1,
\sync, 1,
\dens, exprand(2,80),
\baseDur, 1, //0.08
\durRand, 5,
\rate, 1,
\rateRand, 2,
\pan, 0,
\panRand, 1.5,
\grainEnv, -1,
\ptrBus, ~ptrBus,
\ptrSampleDelay, n.linlin(0,4, 20000, s.sampleRate*2),
\ptrRandSamples, 2000,
\minPtrDelay, 1000,
], ~granGrp);
});
);
~gtrIn = Synth(\dryIn, [\instrAmp, 1, \out, ~reverbBus], ~sourceGroup); // dry audio signaL
~reverbFX = Synth(\freeVerb, [\in, ~reverbBus], ~fxGroup);
~ringMod = Synth(\ringModulator, [\in, ~ringModBus], ~fxGroup);
));
r.get(\in).value;
//~ringMod.set(\in, 9);
//~gtrIn.set(\out, 0);
//~gtrIn.set(\out, ~ringModBus);
//~gtrIn.set(\out, ~reverbBus);
//~gtrIn.set(\out, [~reverbBus, ~ringModBus]);
b.plot;
~ringMod.set(\modulator, 0);
~ringMod.set(\mulrate, 0);
// RUNME 4 ==========================================
// ----------------------------------------------
OSCFunc.trace(true); // Turn posting on
OSCFunc.trace(false); // Turn posting off
(( // OSC Receivers // ENABLE SENSOR AND SWITCH VALUES <--
// ----------------------------------------------------
~overdubmode= 0; ~pitchmode = 0; ~positionmode = 0; ~impulsemode = 1;
~gdurmode=0; ~gpanmode=0; ~channelmode=0;
~overdubMode= 0; ~pitchMode = 0; ~positionMode = 0; ~impulseMode = 1;
~gdurMode=0; ~gpanMode=0; ~channelmode=0;
~instrPanMode=0;
~btnstate = [];
@ -443,26 +494,29 @@ OSCFunc.trace(false); // Turn posting off
o = OSCdef(\test, { arg msg, time, addr, recvPort, rlow, rhigh;
// PAN ------- X Roll
~g1.set(\pan, msg[1].linlin(-0.3, 0.3, -1, 1));
~g1.set(\gpanmodeindex, ~gpanmode );
~g1.set(\gpanmodeindex, ~gpanMode );
// PITCH ------- Y Pitch
~g1.set(\sensorpitch, msg[3]+1 * 2);
~g1.set(\pitchmodeindex, ~pitchmode );
~g1.set(\pitchmodeindex, ~pitchMode );
// POSITION ------- Z Yaw
~g1.set(\sensorposition, msg[1].linlin(-0.2, 0.6, 0.05, 3.99));
~g1.set(\positionmodeindex, ~positionmode );
~g1.set(\positionmodeindex, ~positionMode );
// RATE ------- X (roll [with PAN])
~g1.set(\sensorimpulse, msg[2].linlin(-1, 1, 5, 50));
~g1.set(\impulsemodeindex, ~impulsemode );
~g1.set(\impulsemodeindex, ~impulseMode );
~g1.set(\sensorgdur, msg[2].linlin(-1, 1, 0.1, 1));
~g1.set(\gdurmodeindex, ~gdurmode );
~g1.set(\gdurmodeindex, ~gdurMode );
~g1.set(\sensordensity, msg[2].linlin(-1, 1, 0.1, 1));
~g1.set(\densitymodeindex, ~gdurMode );
~g1.set(\sensorgpan, msg[2]);
~g1.set(\gpanmodeindex, ~gpanmode );
~g1.set(\gpanmodeindex, ~gpanMode );
//~g1.set(\sensorgpan, msg[2].linlin(-1, 1, -1, 1));
//~g1.set(\signalChannelIndex, ~channelmode );
@ -508,9 +562,35 @@ OSCFunc.trace(false); // Turn posting off
~btnstate = [~btnsA, ~btnsB, ~btnsC];
if (msg[9] == 1 && msg[10] == 1, {~btnstate.postln;});
if (msg[9] == 1 && msg[10] == 1, {
( ~btn0val = (~btn0val + 1) % 5 ) ;
switch( ~btn0val,
0, { "PONTALISTIFANTASTICO".postln;
~g.do({arg n; n.set(\baseDur, 0.5 )});
~g.do({arg n; n.set(\durRand, 1)});
~g.do({arg n; n.set(\dens, 32)});
~g.do({arg n; n.set(\rate, 1)});
~g.do({arg n; n.set(\rateRand, 32)});
~g.do({arg n; n.set(\sync, 1)});
~g.do({arg n; n.set(\ptrRandSamples, 6400000, )});
},
1, { "DRONAUSAURUS".postln;
~g.do({arg n; n.set([\baseDur, 1, \durRand, 2, \dens, 100, \rate, 1, \rateRand, 1, \sync, 0, \ptrRandSamples, 200000, ])}); },
2, { "MINIMAL5THsISM".postln;
~g.do({arg n; n.set([\baseDur, 0, \durRand, 6, \dens, 1, \rate, 1, \rateRand, 1.1, \sync, 1, \ptrRandSamples, 200000, ])}); },
3, { "PONTALISTIFANTASTICO====".postln;
~g.do({arg n; n.set([\baseDur, 0, \durRand, 6, \dens, 1, \rate, 1, \rateRand, 1.1, \sync, 1, \ptrRandSamples, 200000, ])}); },
4, { "PONTALISTIFANTASTICO+++++++++".postln;
~g.do({arg n; n.set([\baseDur, 0, \durRand, 6, \dens, 1, \rate, 1, \rateRand, 1.1, \sync, 1, \ptrRandSamples, 200000, ])}); },
);
});
//msg.println;
// ==============================
// BUTTON MAPPING
// ==============================
@ -521,17 +601,21 @@ OSCFunc.trace(false); // Turn posting off
if (msg[9] == 0, {
// BUTTON X ----- TRIGGER ONESHOT BUFFER RECORD
if (msg[10] == 1, { r.set( \in, 0, \l, 0, \t_trig, 1);
"/////////// SAMPLING!".postln; { ~recTrigButton.value_(0) }.defer }, { { ~recTrigButton.value_(1) }.defer } );
if (msg[10] == 1, {
r.set( \in, 0, \l, 0, \t_trig, 1); "/////////// SAMPLING!".postln; { ~recTrigButton.value_(0) }.defer;
}, {
{~recTrigButton.value_(1) }.defer
} );
// BUTTON X ----> LOOP RECORDING MODE ON/OFF
if (msg[11]==1,
{
( ~btn2val = (~btn2val + 1) % 3 ) ;
switch( ~btn2val,
0, { r.set(\l, 0); "RECORD LOOPING OFF".postln; { ~recModeGui.value_(0) }.defer },
1, { r.set(\l, 1); "RECORD LOOPING ON".postln; { ~recModeGui.value_(1) }.defer },
2, { r.set(\l, 1); "ONSET DETECTION ON".postln; { ~recModeGui.value_(2) }.defer },
0, { r.set(\l, 0); "RECORD LOOPING OFF".postln; { ~recModeGui.value_(0) }.defer; },
1, { r.set(\l, 1); "RECORD LOOPING ON".postln; { ~recModeGui.value_(1) }.defer; },
2, { r.set(\l, 0); "ONSET DETECTION ON".postln; { ~recModeGui.value_(2) }.defer; },
);
});
@ -540,107 +624,140 @@ OSCFunc.trace(false); // Turn posting off
{
( ~btn3val = (~btn3val + 1) % 6 ) ;
switch( ~btn3val,
0, { r.set(\overdub, 0); "SAMPLE OVERDUB OFF".postln; { ~overdubModeGui.value_(0) }.defer },
1, { r.set(\overdub, 0.3); "SAMPLE OVERDUB ON 30%".postln; { ~overdubModeGui.value_(1) }.defer },
2, { r.set(\overdub, 0.5); "SAMPLE OVERDUB ON 50%".postln; { ~overdubModeGui.value_(2) }.defer },
3, { r.set(\overdub, 0.75); "SAMPLE OVERDUB ON 75%".postln; { ~overdubModeGui.value_(3) }.defer },
4, { r.set(\overdub, 0.90); "SAMPLE OVERDUB ON 90%".postln; { ~overdubModeGui.value_(4) }.defer },
5, { r.set(\overdub, 1); "SAMPLE OVERDUB ON 100%".postln; { ~overdubModeGui.value_(5) }.defer },
0, { ~overdubMode = 0; "SAMPLE OVERDUB OFF".postln; },
1, { ~overdubMode = 1; "SAMPLE OVERDUB ON 30%".postln; },
2, { ~overdubMode = 2; "SAMPLE OVERDUB ON 50%".postln; },
3, { ~overdubMode = 3; "SAMPLE OVERDUB ON 75%".postln; },
4, { ~overdubMode = 4; "SAMPLE OVERDUB ON 90%".postln; },
5, { ~overdubMode = 5; "SAMPLE OVERDUB ON 100%".postln; },
)
});
case
{~gdurmode == 0 }{{~durModeGui.value_(0) }.defer}
{~gdurmode == 1 }{{~durModeGui.value_(1) }.defer}
{~gdurmode == 2 }{{~durModeGui.value_(2) }.defer}
{~gdurmode == 3 }{{~durModeGui.value_(3) }.defer}
{~gdurmode == 4 }{{~durModeGui.value_(4) }.defer}
{~gdurmode == 5 }{{~durModeGui.value_(5) }.defer}
{~gdurmode == 6 }{{~durModeGui.value_(6) }.defer}
{~gdurmode == 7 }{{~durModeGui.value_(7) }.defer};
///// GUI UPDATER CODE /////////////////////////////////////////////////////////////////
//// sampler gui
case
{~pitchmode == 0 }{{~pitchModeGui.value_(0) }.defer}
{~pitchmode == 1 }{{~pitchModeGui.value_(1) }.defer}
{~pitchmode == 2 }{{~pitchModeGui.value_(2) }.defer}
{~pitchmode == 3 }{{~pitchModeGui.value_(3) }.defer}
{~pitchmode == 4 }{{~pitchModeGui.value_(4) }.defer}
{~pitchmode == 5 }{{~pitchModeGui.value_(5) }.defer}
{~pitchmode == 6 }{{~pitchModeGui.value_(6) }.defer}
{~pitchmode == 7 }{{~pitchModeGui.value_(7) }.defer};
{~overdubMode == 0 }{{~overdubModeGui.value_(0) }.defer; r.set(\overdub, 0); }
{~overdubMode == 1 }{{~overdubModeGui.value_(1) }.defer; r.set(\overdub, 0.3); }
{~overdubMode == 2 }{{~overdubModeGui.value_(2) }.defer; r.set(\overdub, 0.5); }
{~overdubMode == 3 }{{~overdubModeGui.value_(3) }.defer; r.set(\overdub, 0.75); }
{~overdubMode == 4 }{{~overdubModeGui.value_(4) }.defer; r.set(\overdub, 0.9); }
{~overdubMode == 5 }{{~overdubModeGui.value_(5) }.defer; r.set(\overdub, 1); }
{~overdubMode == 6 }{{~overdubModeGui.value_(6) }.defer; r.set(\overdub, 0); }
{~overdubMode == 7 }{{~overdubModeGui.value_(7) }.defer; r.set(\overdub, 0); };
// ~recTrigButton
// ~recModeGui
// granular gui
//
case
{~pitchMode == 0 }{{~pitchModeGui.value_(0) }.defer; ~g.do({arg n; n.set(\rateRand, 1, \rate, 1) }); }
{~pitchMode == 1 }{{~pitchModeGui.value_(1) }.defer; ~g.do({arg n; n.set(\rate, 2, \rateRand, 1) }); }
{~pitchMode == 2 }{{~pitchModeGui.value_(2) }.defer; ~g.do({arg n; n.set(\rate, 0.25, \rateRand, 1) }); }
{~pitchMode == 3 }{{~pitchModeGui.value_(3) }.defer; ~g.do({arg n; n.set(\rate, 1, \rateRand, 1.1) }); }
{~pitchMode == 4 }{{~pitchModeGui.value_(4) }.defer; ~g.do({arg n; n.set(\rate, 0.15, \rateRand, 3, \amp, 1.5) }); }
{~pitchMode == 5 }{{~pitchModeGui.value_(5) }.defer; ~g.do({arg n; n.set(\rate, 0.15, \rateRand, 100) }); }
{~pitchMode == 6 }{{~pitchModeGui.value_(6) }.defer; ~g.do({arg n; n.set(\rate, 100, \rateRand, 1000) }); }
{~pitchMode == 7 }{{~pitchModeGui.value_(7) }.defer; ~g.do({arg n; n.set(\rate, 0.015, \rateRand, 10000) }); };
//
case
{~gdurMode == 0 }{{~durModeGui.value_(0) }.defer}
{~gdurMode == 1 }{{~durModeGui.value_(1) }.defer}
{~gdurMode == 2 }{{~durModeGui.value_(2) }.defer}
{~gdurMode == 3 }{{~durModeGui.value_(3) }.defer}
{~gdurMode == 4 }{{~durModeGui.value_(4) }.defer}
{~gdurMode == 5 }{{~durModeGui.value_(5) }.defer}
{~gdurMode == 6 }{{~durModeGui.value_(6) }.defer}
{~gdurMode == 7 }{{~durModeGui.value_(7) }.defer};
case
{~durationmode == 0 }{{~durationModeGui.value_(0) }.defer}
{~durationmode == 1 }{{~durationModeGui.value_(1) }.defer}
{~durationmode == 2 }{{~durationModeGui.value_(2) }.defer}
{~durationmode == 3 }{{~durationModeGui.value_(3) }.defer}
{~durationmode == 4 }{{~durationModeGui.value_(4) }.defer}
{~durationmode == 5 }{{~durationModeGui.value_(5) }.defer}
{~durationmode == 6 }{{~durationModeGui.value_(6) }.defer}
{~durationmode == 7 }{{~durationModeGui.value_(7) }.defer};
{~positionMode == 0 }{{~positionModeGui.value_(0) }.defer; ~g.do({arg n; n.set(\ptrRandSamples, 1) }); }
{~positionMode == 1 }{{~positionModeGui.value_(1) }.defer; ~g.do({arg n; n.set(\ptrRandSamples, 4000) }); }
{~positionMode == 2 }{{~positionModeGui.value_(2) }.defer; ~g.do({arg n; n.set(\ptrRandSamples, 8000) }); }
{~positionMode == 3 }{{~positionModeGui.value_(3) }.defer; ~g.do({arg n; n.set(\ptrRandSamples, 16000) }); }
{~positionMode == 4 }{{~positionModeGui.value_(4) }.defer; ~g.do({arg n; n.set(\ptrRandSamples, 32000) }); }
{~positionMode == 5 }{{~positionModeGui.value_(5) }.defer; ~g.do({arg n; n.set(\ptrRandSamples, 64000) }); }
{~positionMode == 6 }{{~positionModeGui.value_(6) }.defer; ~g.do({arg n; n.set(\ptrRandSamples, 128000) }); }
{~positionMode == 7 }{{~positionModeGui.value_(7) }.defer; ~g.do({arg n; n.set(\ptrRandSamples, 256000) }); };
case
{~positionmode == 0 }{{~positionModeGui.value_(0) }.defer}
{~positionmode == 1 }{{~positionModeGui.value_(1) }.defer}
{~positionmode == 2 }{{~positionModeGui.value_(2) }.defer}
{~positionmode == 3 }{{~positionModeGui.value_(3) }.defer}
{~positionmode == 4 }{{~positionModeGui.value_(4) }.defer}
{~positionmode == 5 }{{~positionModeGui.value_(5) }.defer}
{~positionmode == 6 }{{~positionModeGui.value_(6) }.defer}
{~positionmode == 7 }{{~positionModeGui.value_(7) }.defer};
{~densMode == 0 }{{~densityModeGui.value_(0) }.defer; ~g.do({arg n; n.set(\dens, 1)});}
{~densMode == 1 }{{~densityModeGui.value_(1) }.defer; ~g.do({arg n; n.set(\dens, 2)}); }
{~densMode == 2 }{{~densityModeGui.value_(2) }.defer; ~g.do({arg n; n.set(\dens, 4)});}
{~densMode == 3 }{{~densityModeGui.value_(3) }.defer; ~g.do({arg n; n.set(\dens, 8)});}
{~densMode == 4 }{{~densityModeGui.value_(4) }.defer; ~g.do({arg n; n.set(\dens, 16)});}
{~densMode == 5 }{{~densityModeGui.value_(5) }.defer; ~g.do({arg n; n.set(\dens, 32)});}
{~densMode == 6 }{{~densityModeGui.value_(6) }.defer; ~g.do({arg n; n.set(\dens, 64)});}
{~densMode == 7 }{{~densityModeGui.value_(7) }.defer; ~g.do({arg n; n.set(\dens, 128)}); };
case
{~gpanmode == 0 }{{~panModeGui.value_(0) }.defer}
{~gpanmode == 1 }{{~panModeGui.value_(1) }.defer}
{~gpanmode == 2 }{{~panModeGui.value_(2) }.defer}
{~gpanmode == 3 }{{~panModeGui.value_(3) }.defer}
{~gpanmode == 4 }{{~panModeGui.value_(4) }.defer}
{~gpanmode == 5 }{{~panModeGui.value_(5) }.defer}
{~gpanmode == 6 }{{~panModeGui.value_(6) }.defer}
{~gpanmode == 7 }{{~panModeGui.value_(7) }.defer};
{~gpanMode == 0 }{{~gPanModeGui.value_(0) }.defer; ~g.do({arg n; n.set(\panRand, 0.25, \pan, 0)}); }
{~gpanMode == 1 }{{~gPanModeGui.value_(1) }.defer; ~g.do({arg n; n.set(\panRand, 0.25, \pan, 0)}); }
{~gpanMode == 2 }{{~gPanModeGui.value_(2) }.defer; ~g.do({arg n; n.set(\pan, 0, \panRand, 1)}); }
{~gpanMode == 3 }{{~gPanModeGui.value_(3) }.defer; ~g.do({arg n; n.set(\panRand, 0)}); }
{~gpanMode == 4 }{{~gPanModeGui.value_(4) }.defer; ~g.do({arg n; n.set(\panRand, 0)}); }
{~gpanMode == 5 }{{~gPanModeGui.value_(5) }.defer; ~g.do({arg n; n.set(\panRand, 0)}); }
{~gpanMode == 6 }{{~gPanModeGui.value_(6) }.defer; ~g.do({arg n; n.set(\panRand, 0)}); }
{~gpanMode == 7 }{{~gPanModeGui.value_(7) }.defer; ~g.do({arg n; n.set(\panRand, 0)}); };
case
{~instrPanMode == 0 }{{~instrPanModeGui.value_(0) }.defer}
{~instrPanMode == 1 }{{~instrPanModeGui.value_(1) }.defer}
{~instrPanMode == 2 }{{~instrPanModeGui.value_(2) }.defer}
{~instrPanMode == 3 }{{~instrPanModeGui.value_(3) }.defer}
{~instrPanMode == 4 }{{~instrPanModeGui.value_(4) }.defer}
{~instrPanMode == 5 }{{~instrPanModeGui.value_(5) }.defer}
{~instrPanMode == 6 }{{~instrPanModeGui.value_(6) }.defer}
{~instrPanMode == 7 }{{~instrPanModeGui.value_(7) }.defer};
{~impulseMode == 0 }{{~impulseModeGui.value_(0) }.defer; ~g.do({arg n; n.set(\sync, 0)}); }
{~impulseMode == 1 }{{~impulseModeGui.value_(1) }.defer; ~g.do({arg n; n.set(\sync, 1)}); };
////////////////// instrument mode gui
case
{~impulsemode == 0 }{{~impulseModeGui.value_(0) }.defer}
{~impulsemode == 1 }{{~impulseModeGui.value_(1) }.defer}
{~impulsemode == 2 }{{~impulseModeGui.value_(2) }.defer}
{~instrPanMode == 0 }{{~instrPanModeGui.value_(0) }.defer }
{~instrPanMode == 1 }{{~instrPanModeGui.value_(1) }.defer }
{~instrPanMode == 2 }{{~instrPanModeGui.value_(2) }.defer }
{~instrPanMode == 3 }{{~instrPanModeGui.value_(3) }.defer }
{~instrPanMode == 4 }{{~instrPanModeGui.value_(4) }.defer }
{~instrPanMode == 5 }{{~instrPanModeGui.value_(5) }.defer }
{~instrPanMode == 6 }{{~instrPanModeGui.value_(6) }.defer }
{~instrPanMode == 7 }{{~instrPanModeGui.value_(7) }.defer };
case
{~fxMode == 0 }{{~fxModeGui.value_(0) }.defer; ~gtrIn.set(\out, ~ringModBus); ~ringMod.set(\modulator, 0, \mulrate, 0); }
{~fxMode == 1 }{{~fxModeGui.value_(1) }.defer; ~gtrIn.set(\out, ~ringModBus); ~ringMod.set(\modulator, 77, \mulrate, 0.1); }
{~fxMode == 2 }{{~fxModeGui.value_(2) }.defer; ~gtrIn.set(\out, ~ringModBus); ~ringMod.set(\modulator, 277, \mulrate, 10.1);}
{~fxMode == 3 }{{~fxModeGui.value_(3) }.defer; ~gtrIn.set(\out, [~reverbBus, ~ringModBus]); ~ringMod.set(\modulator, 277, \mulrate, 10.1);}
{~fxMode == 4 }{{~fxModeGui.value_(4) }.defer; ~gtrIn.set(\out, ~reverbBus); }
{~fxMode == 5 }{{~fxModeGui.value_(5) }.defer; ~gtrIn.set(\out, ~ringModBus); ~ringMod.set(\modulator, 0, \mulrate, 0); }
{~fxMode == 6 }{{~fxModeGui.value_(6) }.defer; ~gtrIn.set(\out, ~ringModBus); ~ringMod.set(\modulator, 0, \mulrate, 0); }
{~fxMode == 7 }{{~fxModeGui.value_(7) }.defer; ~gtrIn.set(\out, ~ringModBus); ~ringMod.set(\modulator, 0, \mulrate, 0); };
//////////////////////////////////////////////////////////////////////////////
// BUTTON X ----> toggle fx
if (msg[13]==1,
{
( ~btn4val = (~btn4val + 1) % 4 ) ;
( ~btn4val = (~btn4val + 1) % 8 ) ;
switch( ~btn4val,
0, { r.set(\l, 0); "dry".postln; { ~gtrIn.set(\out, ~ringModBus); ~ringMod.set(\modulator, 0, \mulrate, 0); ~fxModeGui.value_(0) }.defer },
1, { r.set(\l, 1); "ring mod".postln; { ~gtrIn.set(\out, ~ringModBus); ~ringMod.set(\modulator, 77, \mulrate, 0.1); ~fxModeGui.value_(1) }.defer },
2, { r.set(\l, 1); "reverb".postln; { ~gtrIn.set(\out, ~reverbBus); ~fxModeGui.value_(2) }.defer },
3, { r.set(\l, 1); "reverb + ringmod".postln; { ~gtrIn.set(\out, [~reverbBus, ~ringModBus]); ~fxModeGui.value_(3) }.defer },
0, { ~fxMode=0; "fx0".postln; },
1, { ~fxMode=1; "fx1".postln; },
2, { ~fxMode=2; "fx2".postln; },
3, { ~fxMode=3; "fx3".postln; },
4, { ~fxMode=4; "fx4".postln; },
5, { ~fxMode=5; "fx5".postln; },
6, { ~fxMode=6; "fx6".postln; },
7, { ~fxMode=7; "fx7".postln; },
);
});
/////////////////// RESET RANDOM PITCH TO FIXED PITCH IN ONE TAP
if (msg[14]==1,
{
( ~btn5val = (~btn5val + 1) % 2 ) ;
switch( ~btn5val,
0, { ~pitchmode = 0; "PITCH RESET TO UNTRANSPOSED MODE".postln; { ~pitchModeGui.value_(0) }.defer },
1, { ~pitchmode = 1; "PITCH IN SENSOR MODE".postln; { ~pitchModeGui.value_(1) }.defer }
0, { ~pitchMode = 0; "PITCH RESET TO UNTRANSPOSED MODE".postln; },
1, { ~pitchMode = 1; "PITCH IN SENSOR MODE".postln; }
);
});
@ -650,14 +767,14 @@ OSCFunc.trace(false); // Turn posting off
{
( ~btn6val = (~btn6val + 1) % 8 ) ;
switch(~btn6val,
0, { ~g1.set(\imp, 1); "IMPULSE = 1".postln; { ~densityModeGui.value_(0) }.defer },
1, { ~g1.set(\imp, 2); "IMPULSE = 2".postln; { ~densityModeGui.value_(1) }.defer },
2, { ~g1.set(\imp, 4); "IMPULSE = 4".postln; { ~densityModeGui.value_(2) }.defer },
3, { ~g1.set(\imp, 8); "IMPULSE = 8".postln; { ~densityModeGui.value_(3) }.defer },
4, { ~g1.set(\imp, 16); "IMPULSE = 16".postln; { ~densityModeGui.value_(4) }.defer },
5, { ~g1.set(\imp, 32); "IMPULSE = 32".postln; { ~densityModeGui.value_(5) }.defer },
6, { ~g1.set(\imp, 64); "IMPULSE = 64".postln; { ~densityModeGui.value_(6) }.defer },
7, { ~g1.set(\imp, 64); "IMPULSE = 64".postln; { ~densityModeGui.value_(7) }.defer },
0, { ~densMode = 0; "DENSITY MODE 0".postln; ~g.do({arg n; n.set(\amp, 1, \dens, 1 )}); },
1, { ~densMode = 1; "DENSITY MODE 1".postln; ~g.do({arg n; n.set(\amp, 0.9, \dens, 4 )}); },
2, { ~densMode = 2; "DENSITY MODE 2".postln; ~g.do({arg n; n.set(\amp, 0.5, \dens, 8 )}); },
3, { ~densMode = 3; "DENSITY MODE 3".postln; ~g.do({arg n; n.set(\amp, 0.8, \dens, 16 )}); },
4, { ~densMode = 4; "DENSITY MODE 4".postln; ~g.do({arg n; n.set(\amp, 0.8, \dens, 32 )}); },
5, { ~densMode = 5; "DENSITY MODE 5".postln; ~g.do({arg n; n.set(\amp, 0.9, \dens, 64 )}); },
6, { ~densMode = 6; "DENSITY MODE 6".postln; ~g.do({arg n; n.set(\amp, 0.75, \dens, 128 )}); },
7, { ~densMode = 7; "DENSITY MODE 7".postln; ~g.do({arg n; n.set(\amp, 0.5, \dens, 256 )}); },
)
});
@ -667,15 +784,15 @@ OSCFunc.trace(false); // Turn posting off
{
( ~btn7val = (~btn7val + 1) % 9 ) ;
switch( ~btn7val,
0, { ~gpanmode = 0 ; "SIGNAL OFF".postln; { ~gPanModeGui.value_(0)}.defer },
1, { ~gpanmode = 1 ; "DRY FRONT {STERE0}".postln; { ~gPanModeGui.value_(1)}.defer },
2, { ~gpanmode = 2 ; "DRY BACK {STERE0}".postln; { ~gPanModeGui.value_(2)}.defer },
3, { ~gpanmode = 3 ; "L/R PAN {STEREO}".postln; { ~gPanModeGui.value_(3)}.defer },
4, { ~gpanmode = 4 ; "DRY RaND {STEREO}".postln; { ~gPanModeGui.value_(4)}.defer },
5, { ~gpanmode = 5 ; "DRY ROTATE {QUAD}".postln; { ~gPanModeGui.value_(5)}.defer },
6, { ~gpanmode = 6 ; "DRY RaND {QUAD}".postln; { ~gPanModeGui.value_(6)}.defer },
7, { ~gpanmode = 7 ; "DRY SENSOR {QUAD}".postln; { ~gPanModeGui.value_(7)}.defer },
8, { ~gpanmode = 8 ; "PAN RANDOM QUAD".postln; { ~gPanModeGui.value_(8)}.defer },
0, { ~gpanMode = 0 ; "SIGNAL OFF".postln; },
1, { ~gpanMode = 1 ; "DRY FRONT {STERE0}".postln; },
2, { ~gpanMode = 2 ; "DRY BACK {STERE0}".postln; },
3, { ~gpanMode = 3 ; "L/R PAN {STEREO}".postln; },
4, { ~gpanMode = 4 ; "DRY RaND {STEREO}".postln; },
5, { ~gpanMode = 5 ; "DRY ROTATE {QUAD}".postln; },
6, { ~gpanMode = 6 ; "DRY RaND {QUAD}".postln; },
7, { ~gpanMode = 7 ; "DRY SENSOR {QUAD}".postln; },
8, { ~gpanMode = 8 ; "PAN RANDOM QUAD".postln; },
)
});
@ -690,17 +807,18 @@ OSCFunc.trace(false); // Turn posting off
{
( ~btn10val = (~btn10val + 1) % 9 ) ;
switch(~btn10val,
0, { ~gtrIn.set(\instrAmp, 0 ); "DRY SIGNAL OFF".postln;{ ~instrPanModeGui.value_(0)}.defer },
1, { ~gtrIn.set(\in, 0, \instrAmp, 1 ); ~instrPanMode=0; "DRY FRONT {STERE0}".postln; { ~instrPanModeGui.value_(1)}.defer },
2, { ~gtrIn.set(\in, 0 ); ~instrPanMode=1; "DRY BACK {STERE0}".postln; { ~instrPanModeGui.value_(2)}.defer },
3, { ~gtrIn.set(\in, 0 ); ~instrPanMode=2; "DRY RaND {STEREO}".postln; { ~instrPanModeGui.value_(3)}.defer },
4, { ~gtrIn.set(\in, 0 ); ~instrPanMode=3; "L/R PAN {STEREO}".postln; { ~instrPanModeGui.value_(4)}.defer },
5, { ~gtrIn.set(\in, 0 ); ~instrPanMode=4; "DRY ROTATE {QUAD}".postln; { ~instrPanModeGui.value_(5)}.defer },
6, { ~gtrIn.set(\in, 0 ); ~instrPanMode=5; "DRY RaND {QUAD}".postln; { ~instrPanModeGui.value_(6)}.defer },
7, { ~gtrIn.set(\in, 0 ); ~instrPanMode=6; "DRY SENSOR {QUAD}".postln; { ~instrPanModeGui.value_(7)}.defer },
8, { ~gtrIn.set(\in, 0 ); ~instrPanMode=7; "DRY SENSOR {QUAD}".postln; { ~instrPanModeGui.value_(8)}.defer },
0, { ~gtrIn.set(\instrAmp, 0 ); "DRY SIGNAL OFF".postln; },
1, { ~instrPanMode=0; "DRY FRONT {STERE0}".postln; },
2, { ~instrPanMode=1; "DRY BACK {STERE0}".postln; },
3, { ~instrPanMode=2; "DRY RaND {STEREO}".postln; },
4, { ~instrPanMode=3; "L/R PAN {STEREO}".postln; },
5, { ~instrPanMode=4; "DRY ROTATE {QUAD}".postln; },
6, { ~instrPanMode=5; "DRY RaND {QUAD}".postln; },
7, { ~instrPanMode=6; "DRY SENSOR {QUAD}".postln; },
8, { ~instrPanMode=7; "DRY SENSOR {QUAD}".postln; },
)
});
@ -713,34 +831,32 @@ OSCFunc.trace(false); // Turn posting off
// BUTTON X ----- GRANULAR POSITION MODE
if (msg[13]==1,
{
( ~btn12val = (~btn12val + 1) % 5 ) ;
( ~btn12val = (~btn12val + 1) % 8 ) ;
switch(~btn12val,
0, { ~positionmode = 0; "PLAYHEAD MODE FIXED".postln; { ~positionModeGui.value_(0) }.defer },
1, { ~positionmode = 1; "PLAYHEAD MODE LOOPING".postln; { ~positionModeGui.value_(1) }.defer },
2, { ~positionmode = 2; "PLAYHEAD MODE RANDOM".postln; { ~positionModeGui.value_(2) }.defer },
3, { ~positionmode = 3; "PLAYHEAD CONSTRAINED RND".postln; { ~positionModeGui.value_(3) }.defer },
4, { ~positionmode = 4; "PLAYHEAD MODE SENSOR".postln; { ~positionModeGui.value_(4) }.defer },
0, { ~positionMode = 0; "~positionMode 0 ".postln; },
1, { ~positionMode = 1; "~positionMode 1 ".postln; },
2, { ~positionMode = 2; "~positionMode 2".postln; },
3, { ~positionMode = 3; "~positionMode 3".postln; },
4, { ~positionMode = 5; "~positionMode 4".postln; },
5, { ~positionMode = 6; "~positionMode 5".postln; },
6, { ~positionMode = 7; "~positionMode 6 ".postln; },
7, { ~positionMode = 8; "~positionMode 7 ".postln; },
)
});
// BUTTON X ----- GRANULAR PITCH MODE
if (msg[14]==1,
{
( ~btn13val = ((~btn13val + 1) % 9 ) ) ;
( ~btn13val = ((~btn13val + 1) % 8 ) ) ;
switch(~btn13val,
0, { ~pitchmode = 0; "pitch array 0".postln; { ~pitchModeGui.value_(0) }.defer },
1, { ~pitchmode = 1; "pitch array 1".postln; { ~pitchModeGui.value_(1) }.defer },
2, { ~pitchmode = 2; "pitch array 2".postln; { ~pitchModeGui.value_(2) }.defer },
3, { ~pitchmode = 3; "pitch array 3".postln; { ~pitchModeGui.value_(3) }.defer },
4, { ~pitchmode = 4; "pitch array 4".postln; { ~pitchModeGui.value_(4) }.defer },
5, { ~pitchmode = 5; "pitch array 5".postln; { ~pitchModeGui.value_(5) }.defer },
6, { ~pitchmode = 6; "pitch array 6".postln; { ~pitchModeGui.value_(6) }.defer },
7, { ~pitchmode = 7; ~g1.set(\rlow, -0.8 ); ~g1.set(\rhigh, 1.5);
"PITCH MODE RANDOM 4".postln; { ~pitchModeGui.value_(7) }.defer },
8, { ~pitchmode = 7; ~g1.set(\rlow, -3 ); ~g1.set(\rhigh, 3);
"PITCH MODE RANDOM 5".postln; { ~pitchModeGui.value_(8) }.defer },
9, { ~pitchmode = 7; ~g1.set(\rlow, -8 ); ~g1.set(\rhigh, 8);
"PITCH MODE RANDOM 6".postln; { ~pitchModeGui.value_(9) }.defer },
0, { ~pitchMode = 0; "pitch mode 0".postln; },
1, { ~pitchMode = 1; "pitch mode 1".postln; },
2, { ~pitchMode = 2; "pitch mode 2".postln; },
3, { ~pitchMode = 3; "pitch mode 3".postln; },
4, { ~pitchMode = 4; "pitch mode 4".postln; },
5, { ~pitchMode = 5; "pitch mode 5".postln; },
6, { ~pitchMode = 6; "pitch mode 6".postln; },
7, { ~pitchMode = 7; "pitch mode 7".postln; },
)
});
@ -751,55 +867,105 @@ OSCFunc.trace(false); // Turn posting off
{
( ~btn14val = (~btn14val + 1) % 8 ) ;
switch(~btn14val,
0, { ~gdurmode = 0; "DURATION MODE 0".postln; { ~durModeGui.value_(0) }.defer },
1, { ~gdurmode = 1; "DURATION MODE 1".postln; { ~durModeGui.value_(1) }.defer },
2, { ~gdurmode = 2; "DURATION MODE 2".postln; { ~durModeGui.value_(2) }.defer },
3, { ~gdurmode = 3; "DURATION MODE 3".postln; { ~durModeGui.value_(3) }.defer },
4, { ~gdurmode = 4; "DURATION MODE 4".postln; { ~durModeGui.value_(4) }.defer },
5, { ~gdurmode = 5; "DURATION MODE 5".postln; { ~durModeGui.value_(5) }.defer },
6, { ~gdurmode = 6; "DURATION MODE 6".postln; { ~durModeGui.value_(6) }.defer },
7, { ~gdurmode = 7; "DURATION MODE: SENSOR".postln; { ~durModeGui.value_(7) }.defer },
0, { ~gdurMode = 0; "DURATION MODE 0".postln; },
1, { ~gdurMode = 1; "DURATION MODE 1".postln; },
2, { ~gdurMode = 2; "DURATION MODE 2".postln; },
3, { ~gdurMode = 3; "DURATION MODE 3".postln; },
4, { ~gdurMode = 4; "DURATION MODE 4".postln; },
5, { ~gdurMode = 5; "DURATION MODE 5".postln; },
6, { ~gdurMode = 6; "DURATION MODE 6".postln; },
7, { ~gdurMode = 7; "DURATION MODE: SENSOR".postln; },
)
});
// BUTTON X ----- GRANULAR IMPULSE MODE
if (msg[16]==1,
{
( ~btn15val = (~btn15val + 1) % 3 ) ;
( ~btn15val = (~btn15val + 1) % 2 ) ;
switch( ~btn15val,
0, { ~g1.set(\impulsemodeindex, 0 ); "IMPULSE MODE FIXED".postln; { ~impulseModeGui.value_(0) }.defer },
1, { ~g1.set(\impulsemodeindex, 1 ); "IMPULSE MODE DUST".postln; { ~impulseModeGui.value_(1) }.defer },
2, { ~g1.set(\impulsemodeindex, 2 ); "IMPULSE MODE SENSOR".postln; { ~impulseModeGui.value_(2) }.defer },
0, { ~impulseMode = 0; ~g1.set(\impulsemodeindex, 0 ); "IMPULSE MODE FIXED".postln; },
1, { ~impulseMode = 1; ~g1.set(\impulsemodeindex, 1 ); "IMPULSE MODE DUST".postln; },
)
});
}); // SHIFT ONE LOGIC ENDS HERE ================
// } , '/keys');
} , '/localhostInLevels');
} , '/keys');
// } , '/localhostInLevels');
));
~gdurmode = 2;
~gdurMode = 2;
// ----------------------------------------------------
// LIVE CODE / PERFORMABLE PARAMETERS /////////////////
// ----------------------------------------------------
// set recorder loop and overdub modes ////////////
// start recording (without button)
r.set(\in, 0, \l, 0, \overdub, 0, \t_trig, 1);
r.set(\l, 0); // looping record on/off 0/1 - MAPPED TO SWITCH 3
r.set(\overdub, 0.9); // overdub mode 0 - 0.99 - MAPPED TO SWITCH 4
~ptrGrp.set(\rate, 0.2);
~g.set(\gate, 0);
~g.do({arg n; n.set(\gate, 1 )});
~g.do({arg n; n.set(\rate, 1 )});
\amp, n.linlin(0,4, -3,-20).dbamp,
~g.do({arg n; n.set(\amp, 1, \rateRand, 1000 )});
~g.do({arg n; n.set(\amp, 1, \rateRand, 1 )});
~g.do({arg n; n.set(\amp, 0, \dens, 128 )});
~g.do({arg n; n.set(\rateRand, 0)});
~g.do({arg n; n.set(\panRand, 1)});
~g.do({arg n; n.set(\sync, 1 )});
~g.do({arg n; n.set(\atk, exprand(0.1, 1) )});
~g.do({arg n; n.set(\rel, 1 )});
~g.do({arg n; n.set(\dens, exprand(1,80) )});
~g.do({arg n; n.set(\dens,1)});
~g.do({arg n; n.set(\panRand, 1 )});
\ptrSampleDelay, n.linlin(0,4, 20000, s.sampleRate*2),
~g.do({arg n; n.set(\ptrSampleDelay, s.sampleRate * 1) });
~g.do({arg n; n.set(\ptrRandSamples, 200000 )});
~g.do({arg n; n.set(\minPtrDelay, 100000 )});
~g.do({arg n; n.set([\baseDur, 0.013])});
~g.do({arg n; n.set([\durRand, 10.2])});
~g.do({arg n; n.set([\baseDur, 0, \durRand, 6, \dens, 1, \rate, 1, \rateRand, 1.1, \sync, 1, \ptrRandSamples, 200000, ])});
~g.do({arg n; n.set([\baseDur, 0.08, \durRand, 1])});
~g.do({arg n; n.set([\baseDur, 1.08, \durRand, 3, \sync, 0, \dens, 25 ])});
~rec.set(\overdubLevel, 0.1);
////////////////////////////////////////////////////////////////////////
thisProcess.platform.recordingsDir;// find where the recordings are written to
s.record(numChannels:4); // record
// set recorder loop and overdub modes ////////////
// start recording (without button)
r.set(\in, 0, \l, 0, \t_trig, 1);
r.set(\l, 1); // looping record on/off 0/1 - MAPPED TO SWITCH 3
r.set(\overdub, 0.9); // overdub mode 0 - 0.99 - MAPPED TO SWITCH 4
/////////////////////
~g1.set(\pitchmodeindex, 1); // pitchmode
~g1.set(\gdurmodeindex, 1); // grain duration mode
@ -811,34 +977,19 @@ r.set(\overdub, 0.9); // overdub mode 0 - 0.99 - MAPPED TO SWITCH 4
~ringMod.set(\modulator, 0); // 0 to disable
/// random pitch/rate low and high values
~g1.set(\rlow, 10); // APPLIES ONLY TO PITCH MODE 7
~g1.set(\rhigh, 1);
~dseqarrayIndex=0;
~g1.set(\dseqarrayIndex, 0);
~g1.set(\gpan, -1 );
~channelmode = 1;
//~ringMod.set(\in, 0);
//~gtrIn.set(\out, 0);
//~gtrIn.set(\out, ~ringModBus);
~gtrIn.set(\out, ~ringModBus);
//~gtrIn.set(\out, ~reverbBus);
//~gtrIn.set(\out, [~reverbBus, ~ringModBus]);
~ringMod.set(\modulator, 77, \mulrate, 0.1);
~ringMod.set(\modulator, 177, \mulrate, 0.1);
~ringMod.set(\modulator, 0, \mulrate, 0);
~ringMod.set(\mulrate, 0);
~gtrIn.set(\instrAmp, 1);
// fix doneaction
~g1.set(\gate, 1); // granulator on
~g1.set(\gate, 0); // granulator off
@ -850,7 +1001,7 @@ a = Scale.major;
// -----------------------------------------------
~btn4val = 2;
~gdurmode = 4;
~gdurMode = 4;
// list all open ports
// -----------------------------------------------
@ -864,4 +1015,3 @@ n = NetAddr("127.0.0.1", NetAddr.langPort);