gtr+ working with algomom

master
Rob Canning 2023-02-20 09:54:36 +01:00
parent 1e7cc12bdd
commit b8785b9782
6 changed files with 927 additions and 578 deletions

245
gtr.scd
View File

@ -1,45 +1,44 @@
/*RUN*/ /*RUN*/
// RUNME 0 ========================================= // =========================================
(
Server.default.waitForBoot { // see below .bundle timings for starting synths etc. Server.default.waitForBoot { // see below .bundle timings for starting synths etc.
// SETUP ---------------=-------------------------- // SETUP ---------------=--------------------------
b = Buffer.alloc(s, s.sampleRate * 10, 1); // Allocate a 5 second mono buffer b = Buffer.alloc(s, s.sampleRate * 10, 1); // Allocate a 5 second mono buffer
// Open port 57121 for ESP32 UDP OSC // Open port 57121 for ESP32 UDP OSC
thisProcess.openUDPPort(57121); thisProcess.openUDPPort(57121);
// allocate busses // allocate busses
~reverbBus = Bus.audio(s, 1); ~reverbBus = Bus.audio(s, 1);
~ringModBus = Bus.audio(s, 1); ~ringModBus = Bus.audio(s, 1);
~micBus = Bus.audio(s,1); ~micBus = Bus.audio(s,1);
~ptrBus = Bus.audio(s,1); ~ptrBus = Bus.audio(s,1);
//~sourceGrp = Group.new; // create group order
//~fxGrp = Group.after(~sourceGrp); ~micGrp = Group.new;
~ptrGrp = Group.after(~micGrp);
~recGrp = Group.after(~ptrGrp);
~granGrp = Group.after(~recGrp);
~fxGrp = Group.after(~micGrp);
// create group order //load the gui
~micGrp = Group.new; "/home/rob/gtr/GUI.scd".load;
~ptrGrp = Group.after(~micGrp); s.plotTree; s.meter;
~recGrp = Group.after(~ptrGrp);
~granGrp = Group.after(~recGrp); // RUNME 2 ==========================================
~fxGrp = Group.after(~micGrp); // DEFINE SYNTHS ---------------------------------
//load the gui
"/home/rob/gtr/GUI.scd".load;
s.plotTree;
s.meter;
// RUNME 2 ==========================================
s.makeBundle(1.0, { s.makeBundle(1.0, {
// -------------------------------------------------
// DEFINE SYNTHS ---------------------------------
// -------------------------------------------------
// direct signal + reverb -------------------------
///// outs set to 2 /// for recording to ardour .... fork todo
SynthDef("dryIn", { arg in=0, instrPanModeIndex=0, out=2, sensorInstrPan=0, instrPitch=0.7, instrAmp=1;
// direct signal + reverb -------------------------
///// outs set to 2 /// for recording to ardour .... fork todo
SynthDef("dryIn", { arg in=0, instrPanModeIndex=0, out=2, sensorInstrPan=0, instrPitch=0.7, instrAmp=1;
var signal, dry, wet, instrPan, instrPanMode0, instrPanMode1, instrPanMode2, instrPanMode3, instrPanMode4, instrPanMode5; var signal, dry, wet, instrPan, instrPanMode0, instrPanMode1, instrPanMode2, instrPanMode3, instrPanMode4, instrPanMode5;
instrPanMode0 = 0; //LFNoise1.kr(100).range(-0.2, 0.2); instrPanMode0 = 0; //LFNoise1.kr(100).range(-0.2, 0.2);
@ -57,18 +56,18 @@ SynthDef("dryIn", { arg in=0, instrPanModeIndex=0, out=2, sensorInstrPan=0, ins
//wet = PitchShift.ar(signal, pitchRatio: instrPitch, pitchDispersion: 0.3, timeDispersion: 0.1); //wet = PitchShift.ar(signal, pitchRatio: instrPitch, pitchDispersion: 0.3, timeDispersion: 0.1);
Out.ar(out, signal); Out.ar(out, signal);
//Out.ar(0, Mix.ar( [signal, wet] )); //Out.ar(0, Mix.ar( [signal, wet] ));
}).add; }).add;
SynthDef("freeVerb", { SynthDef("freeVerb", {
arg in=0, mix=0.5, room=0.8, damp = 0.5; arg in=0, mix=0.5, room=0.8, damp = 0.5;
var signal, dry, wet; var signal, dry, wet;
dry = In.ar(in); dry = In.ar(in);
wet = FreeVerb.ar(dry, mix:mix, room:room, damp:damp,); wet = FreeVerb.ar(dry, mix:mix, room:room, damp:damp,);
signal = wet * 0.9; signal = wet * 0.9;
Out.ar(2, signal!2); Out.ar(2, signal!2);
}).add; }).add;
SynthDef("ringModulator", { SynthDef("ringModulator", {
arg in=0, modulator=300, mulrate=0.2; arg in=0, modulator=300, mulrate=0.2;
var signal, rm , carrier, multiplier; var signal, rm , carrier, multiplier;
signal = In.ar(in); signal = In.ar(in);
@ -76,16 +75,16 @@ SynthDef("ringModulator", {
rm = signal * SinOsc.ar(modulator, mul:multiplier); rm = signal * SinOsc.ar(modulator, mul:multiplier);
//signal = (rm + signal) * 0.5; //signal = (rm + signal) * 0.5;
Out.ar(2, rm!2); Out.ar(2, rm!2);
}).add; }).add;
SynthDef.new(\mic, { SynthDef.new(\mic, {
arg in=0, out=0, amp=1; arg in=0, out=0, amp=1;
var sig; var sig;
sig = SoundIn.ar(in) * amp; sig = SoundIn.ar(in) * amp;
Out.ar(out, sig); Out.ar(out, sig);
}).add; }).add;
SynthDef.new(\ptr, { SynthDef.new(\ptr, {
arg out=0, buf=0, ptrMode=0, rate=1; arg out=0, buf=0, ptrMode=0, rate=1;
var sig; var sig;
sig = Select.ar(ptrMode, [ sig = Select.ar(ptrMode, [
@ -95,12 +94,12 @@ SynthDef.new(\ptr, {
]); ]);
Out.ar(out, sig); Out.ar(out, sig);
}).add; }).add;
// mono buffer recorder ---------------------------- // mono buffer recorder ----------------------------
// with loop and overdub modes ///////////////////// // with loop and overdub modes /////////////////////
SynthDef("recBuf",{ SynthDef("recBuf",{
arg micIn=0, ptrIn=0, bufnum=0, t_trig=0, l=0, overdub=0; arg micIn=0, ptrIn=0, bufnum=0, t_trig=0, l=0, overdub=0;
var sig, ptr, chain, onsets; var sig, ptr, chain, onsets;
@ -118,7 +117,7 @@ SynthDef("recBuf",{
offset: ptr); offset: ptr);
}).add; }).add;
SynthDef.new(\gran, { SynthDef.new(\gran, {
arg amp=0.5, out=0, buf=0, arg amp=0.5, out=0, buf=0,
atk=1, rel=1, gate=1, atk=1, rel=1, gate=1,
sync=1, dens=40, sync=1, dens=40,
@ -161,27 +160,27 @@ SynthDef.new(\gran, {
sig = sig * env * amp; sig = sig * env * amp;
Out.ar(out, sig); Out.ar(out, sig);
}).add; }).add;
}); //end make bundle }); //end make bundle
// RUNME 3 ========================================== // RUNME 3 ==========================================
s.makeBundle(2.0, { s.makeBundle(2.0, {
// START SYNTHS ------------------------------------- // START SYNTHS -------------------------------------
~mic = Synth(\mic, [\in, 0, \out, ~micBus], ~micGrp); ~mic = Synth(\mic, [\in, 0, \out, ~micBus], ~micGrp);
~pointer = Synth(\ptr, [\buf, b, \out, ~ptrBus], ~ptrGrp); ~pointer = Synth(\ptr, [\buf, b, \out, ~ptrBus], ~ptrGrp);
// todo make togglable between fx and dry feeding sampler // todo make togglable between fx and dry feeding sampler
r = Synth(\recBuf, [\ptrIn, ~ptrBus, \micIn, ~micBus, \buf, b, \t_trig, 0], ~recGrp); // recorder r = Synth(\recBuf, [\ptrIn, ~ptrBus, \micIn, ~micBus, \buf, b, \t_trig, 0], ~recGrp); // recorder
~gtrIn = Synth(\dryIn, [\instrAmp, 1, \out, ~reverbBus], ~micGrp); // dry audio signaL ~gtrIn = Synth(\dryIn, [\instrAmp, 1, \out, ~reverbBus], ~micGrp); // dry audio signaL
~reverbFX = Synth(\freeVerb, [\in, ~reverbBus], ~fxGrp); ~reverbFX = Synth(\freeVerb, [\in, ~reverbBus], ~fxGrp);
~ringMod = Synth(\ringModulator, [\in, ~ringModBus], ~fxGrp); ~ringMod = Synth(\ringModulator, [\in, ~ringModBus], ~fxGrp);
~g = 1.collect({ ~g = 1.collect({
arg n; arg n;
Synth(\gran,[ Synth(\gran,[
\amp, 0.25, \amp, 0.25,
@ -206,7 +205,7 @@ r = Synth(\recBuf, [\ptrIn, ~ptrBus, \micIn, ~micBus, \buf, b, \t_trig, 0], ~re
\ptrRandSamples, 2000, // how much to randomly jump around \ptrRandSamples, 2000, // how much to randomly jump around
\minPtrDelay, 1000, // dont get any closer to the ptr than this \minPtrDelay, 1000, // dont get any closer to the ptr than this
], ~granGrp); ], ~granGrp);
}); });
}); // end makeBundle }); // end makeBundle
@ -214,28 +213,28 @@ r = Synth(\recBuf, [\ptrIn, ~ptrBus, \micIn, ~micBus, \buf, b, \t_trig, 0], ~re
// RUNME 4 ========================================== // RUNME 4 ==========================================
// - - OSC Receivers // ENABLE SENSOR AND SWITCH VALUES // - - OSC Receivers // ENABLE SENSOR AND SWITCH VALUES
( // ---------------------------------------------------- ( // ----------------------------------------------------
r.set(\l, 1); r.set(\l, 1);
~overdubMode= 0; ~overdubMode= 0;
~pitchMode = 0; ~pitchMode = 0;
~posMode = 6; ~posMode = 6;
~densMode= 4; ~densMode= 4;
~impulseMode = 0; ~impulseMode = 0;
~gdurMode=0; ~gdurMode=0;
~gpanMode=0; ~gpanMode=0;
~channelmode=0; ~channelmode=0;
~instrPanMode=0; ~instrPanMode=0;
~btn0val = -1; ~btn1val = -1; ~btn2val = -1; ~btn3val = -1; ~btn0val = -1; ~btn1val = -1; ~btn2val = -1; ~btn3val = -1;
~btn4val = -1; ~btn5val = -1; ~btn6val = -1; ~btn7val = -1; ~btn4val = -1; ~btn5val = -1; ~btn6val = -1; ~btn7val = -1;
~btn8val = -1; // shift buttons ~btn8val = -1; // shift buttons
~btn9val = -1; ~btn10val = -1; ~btn11val = -1; ~btn12val = -1; ~btn9val = -1; ~btn10val = -1; ~btn11val = -1; ~btn12val = -1;
~btn13val = -1; ~btn14val = -1; ~btn15val = -1; ~btn16val = -1; ~btn13val = -1; ~btn14val = -1; ~btn15val = -1; ~btn16val = -1;
(( // accel gyro quaternion mapping /////////////////// (( // accel gyro quaternion mapping ///////////////////
// msg[1] msg[2] msg[3] X Y Z ==> ROLL, PITCH, YAW // msg[1] msg[2] msg[3] X Y Z ==> ROLL, PITCH, YAW
@ -244,7 +243,7 @@ r.set(\l, 1);
if ( ~pitchMode == 7, if ( ~pitchMode == 7,
{ {
//"it's 7".postln; //"it's 7".postln;
// msg.postln; // msg.postln;
~g.do({arg n; n.set( \rateRand, 1)}; ); ~g.do({arg n; n.set( \rateRand, 1)}; );
~g.do({arg n; n.set( \rate, msg[2].linlin(-0.5, 0.5, 0.125,2); ~g.do({arg n; n.set( \rate, msg[2].linlin(-0.5, 0.5, 0.125,2);
//\rateRand, msg[3].linlin(0, -0.5, 1, 10); //\rateRand, msg[3].linlin(0, -0.5, 1, 10);
@ -267,20 +266,20 @@ r.set(\l, 1);
}; , '/euler'); }; , '/euler');
); );
// ---------------------------------------------------- // ----------------------------------------------------
// send message back to nodejs // send message back to nodejs
m = NetAddr("127.0.0.1", 57100); m = NetAddr("127.0.0.1", 57100);
// on off osconoff accelerometer data // on off osconoff accelerometer data
m.sendMsg("/xyzc", 1); m.sendMsg("/xyzc", 1);
m.sendMsg("/xyzc", 0); m.sendMsg("/xyzc", 0);
// ---------------------------------------------------- // ----------------------------------------------------
// button press mapping /////////////////////////////// // button press mapping ///////////////////////////////
// ---------------------------------------------------- // ----------------------------------------------------
n = NetAddr("127.0.0.1", NetAddr.langPort); n = NetAddr("127.0.0.1", NetAddr.langPort);
p = OSCdef(\keys, { arg msg, time, addr, recvPort; p = OSCdef(\keys, { arg msg, time, addr, recvPort;
// /// PRESETS !!!!!!!!!!!!!!!!!!!!!!! // /// PRESETS !!!!!!!!!!!!!!!!!!!!!!!
// //
@ -418,19 +417,20 @@ p = OSCdef(\keys, { arg msg, time, addr, recvPort;
//[1,2,3].choose; //[1,2,3].choose;
case case
{~densMode == 0 }{{~densModeGui.value_(0) }.defer; ~g.do({arg n; n.set(\dens, 1, )}); } {~densMode == 0 }{{~densModeGui.value_(0) }.defer; ~g.do({arg n; n.set(\dens, 0, )}); }
{~densMode == 1 }{{~densModeGui.value_(1) }.defer; ~g.do({arg n; n.set(\dens, 2, )}); } {~densMode == 1 }{{~densModeGui.value_(1) }.defer; ~g.do({arg n; n.set(\dens, 1, )}); }
{~densMode == 2 }{{~densModeGui.value_(2) }.defer; ~g.do({arg n; n.set(\dens, 3, )});} {~densMode == 2 }{{~densModeGui.value_(2) }.defer; ~g.do({arg n; n.set(\dens, 2, )}); }
{~densMode == 3 }{{~densModeGui.value_(3) }.defer; ~g.do({arg n; n.set(\dens, 5, )});} {~densMode == 3 }{{~densModeGui.value_(3) }.defer; ~g.do({arg n; n.set(\dens, 3, )});}
{~densMode == 4 }{{~densModeGui.value_(4) }.defer; ~g.do({arg n; n.set(\dens, 8, )});} {~densMode == 4 }{{~densModeGui.value_(4) }.defer; ~g.do({arg n; n.set(\dens, 5, )});}
{~densMode == 5 }{{~densModeGui.value_(5) }.defer; ~g.do({arg n; n.set(\dens, 13, )});} {~densMode == 5 }{{~densModeGui.value_(5) }.defer; ~g.do({arg n; n.set(\dens, 8, )});}
{~densMode == 6 }{{~densModeGui.value_(6) }.defer; ~g.do({arg n; n.set(\dens, 21, )});} {~densMode == 6 }{{~densModeGui.value_(6) }.defer; ~g.do({arg n; n.set(\dens, 13, )});}
{~densMode == 7 }{{~densModeGui.value_(7) }.defer; ~g.do({arg n; n.set(\dens, 34, )}); } {~densMode == 7 }{{~densModeGui.value_(7) }.defer; ~g.do({arg n; n.set(\dens, 21, )});}
{~densMode == 8 }{{~densModeGui.value_(8) }.defer; ~g.do({arg n; n.set(\dens, 55, )}); } {~densMode == 8 }{{~densModeGui.value_(8) }.defer; ~g.do({arg n; n.set(\dens, 34, )}); }
{~densMode == 9 }{{~densModeGui.value_(9) }.defer; ~g.do({arg n; n.set(\dens, 89, )}); } {~densMode == 9 }{{~densModeGui.value_(9) }.defer; ~g.do({arg n; n.set(\dens, 55, )}); }
{~densMode == 10 }{{~densModeGui.value_(10) }.defer; ~g.do({arg n; n.set(\dens, 144, )}); } {~densMode == 10 }{{~densModeGui.value_(10) }.defer; ~g.do({arg n; n.set(\dens, 89, )}); }
{~densMode == 11 }{{~densModeGui.value_(11) }.defer; ~g.do({arg n; n.set(\dens, 233, )}); } {~densMode == 11 }{{~densModeGui.value_(11) }.defer; ~g.do({arg n; n.set(\dens, 144, )}); }
{~densMode == 12 }{{~densModeGui.value_(12) }.defer; ~g.do({arg n; n.set(\dens, 377, )}); }; {~densMode == 12 }{{~densModeGui.value_(12) }.defer; ~g.do({arg n; n.set(\dens, 233, )}); }
{~densMode == 13 }{{~densModeGui.value_(13) }.defer; ~g.do({arg n; n.set(\dens, 377, )}); };
case case
{~gpanMode == 0 }{{~gPanModeGui.value_(0) }.defer; ~g.do({arg n; n.set(\panRand, 0.25, \pan, 0)}); } {~gpanMode == 0 }{{~gPanModeGui.value_(0) }.defer; ~g.do({arg n; n.set(\panRand, 0.25, \pan, 0)}); }
@ -509,10 +509,14 @@ p = OSCdef(\keys, { arg msg, time, addr, recvPort;
// INCREASE IMPULSE RATE --------------------------------------- // INCREASE IMPULSE RATE ---------------------------------------
// todo - counter wrap around -- to ping pong count up and down // todo - counter wrap around -- to ping pong count up and down
// if counter is > then + otherwise minus counter // if counter is > then + otherwise minus counter
if (msg[15]==1, if (msg[15]==1,
{ {
( ~btn6val = (~btn6val + 1) % 13 ) ; ( ~btn6val = (~btn6val + 1) % 14 ) ;
switch(~btn6val, switch(~btn6val,
0, { ~densMode = 0; "DENSITY MODE 0".postln; }, 0, { ~densMode = 0; "DENSITY MODE 0".postln; },
1, { ~densMode = 1; "DENSITY MODE 1".postln; }, 1, { ~densMode = 1; "DENSITY MODE 1".postln; },
2, { ~densMode = 2; "DENSITY MODE 2".postln; }, 2, { ~densMode = 2; "DENSITY MODE 2".postln; },
@ -526,13 +530,32 @@ p = OSCdef(\keys, { arg msg, time, addr, recvPort;
10, { ~densMode = 10; "DENSITY MODE 10".postln; }, 10, { ~densMode = 10; "DENSITY MODE 10".postln; },
11, { ~densMode = 11; "DENSITY MODE 11".postln; }, 11, { ~densMode = 11; "DENSITY MODE 11".postln; },
12, { ~densMode = 12; "DENSITY MODE 12".postln; }, 12, { ~densMode = 12; "DENSITY MODE 12".postln; },
13, { ~densMode = 13; "DENSITY MODE 13".postln; },
) )
}); });
if (msg[16]==1,
{
( ~btn7val = (~btn7val + 1) % 2 ) ;
switch( ~btn7val,
0, { ~densMode = 0; "DENSITY TOGGLE 0".postln; },
1, { ~btn6val = (~btn6val - 1); "DENSITY TOGGLE 1".postln;
},
)
});
// BUTTON X ----- G PANNING MODE // BUTTON X ----- G PANNING MODE
// TODO FIX MAPPINGS - GUI AND REALITY DO NOT MATCH // TODO FIX MAPPINGS - GUI AND REALITY DO NOT MATCH
/*
if (msg[16]==1, if (msg[16]==1,
{ {
( ~btn7val = (~btn7val + 1) % 9 ) ; ( ~btn7val = (~btn7val + 1) % 9 ) ;
@ -549,12 +572,18 @@ p = OSCdef(\keys, { arg msg, time, addr, recvPort;
) )
}); });
*/
}, /// SHIFT 0 LOGIC ENDS HERE -------------------------------------------- }, /// SHIFT 0 LOGIC ENDS HERE --------------------------------------------
{ // SHIFT IN STATE 1 ======================= .......................... { // SHIFT IN STATE 1 ======================= ..........................
// GTR INPUT ======================= // GTR INPUT =======================
/*
if (msg[11]==1, if (msg[11]==1,
{ {
( ~btn10val = (~btn10val + 1) % 9 ) ; ( ~btn10val = (~btn10val + 1) % 9 ) ;
@ -572,11 +601,15 @@ p = OSCdef(\keys, { arg msg, time, addr, recvPort;
) )
}); });
*/
// BUTTON X && X RESET/ZERO SENSORS [in firmware just here for notificaton] // BUTTON X && X RESET/ZERO SENSORS [in firmware just here for notificaton]
if (msg[12] == 1, { " ===== EULER ZEROED! =====".postln }, {}); if (msg[12] == 1, { " ===== EULER ZEROED! =====".postln }, {});
// BUTTON X ----- GRANULAR POSITION MODE // BUTTON X ----- GRANULAR POSITION MODE
if (msg[13]==1, if (msg[13]==1,
{ {
( ~btn12val = (~btn12val + 1) % 8 ) ; ( ~btn12val = (~btn12val + 1) % 8 ) ;
@ -593,6 +626,7 @@ p = OSCdef(\keys, { arg msg, time, addr, recvPort;
}); });
// BUTTON X ----- GRANULAR PITCH MODE // BUTTON X ----- GRANULAR PITCH MODE
if (msg[14]==1, if (msg[14]==1,
{ {
( ~btn13val = ((~btn13val + 1) % 8 ) ) ; ( ~btn13val = ((~btn13val + 1) % 8 ) ) ;
@ -611,6 +645,7 @@ p = OSCdef(\keys, { arg msg, time, addr, recvPort;
//~durBtn = 1; //~durBtn = 1;
// BUTTON X ----- GRAIN DURATION MODE // BUTTON X ----- GRAIN DURATION MODE
if (msg[15]==1, if (msg[15]==1,
{ {
( ~btn14val = (~btn14val + 1) % 8 ) ; ( ~btn14val = (~btn14val + 1) % 8 ) ;
@ -627,6 +662,7 @@ p = OSCdef(\keys, { arg msg, time, addr, recvPort;
}); });
// BUTTON X ----- GRANULAR IMPULSE MODE // BUTTON X ----- GRANULAR IMPULSE MODE
if (msg[16]==1, if (msg[16]==1,
{ {
( ~btn15val = (~btn15val + 1) % 2 ) ; ( ~btn15val = (~btn15val + 1) % 2 ) ;
@ -638,11 +674,14 @@ p = OSCdef(\keys, { arg msg, time, addr, recvPort;
}); // SHIFT ONE LOGIC ENDS HERE ================ }); // SHIFT ONE LOGIC ENDS HERE ================
} , '/keys'); } , '/keys');
// } , '/localhostInLevels'); // } , '/localhostInLevels');
); );
); );
}); // end makeBundle for OSC code }); // end makeBundle for OSC code
}; // end wait for boot }; // end wait for boot
// todo countdown on density voices // todo countdown on density voices
)

View File

@ -5,10 +5,16 @@ OSCFunc.trace(false); // Turn posting off
// LIVE CODE / PERFORMABLE PARAMETERS ///////////////// // LIVE CODE / PERFORMABLE PARAMETERS /////////////////
// ---------------------------------------------------- // ----------------------------------------------------
// GUITAR
~gtrIn.set(\in, 0); r.set(\in, 0); ~mic.set(\in, 0); ~gtrIn.set(\in, 0); r.set(\in, 0); ~mic.set(\in, 0);
// GONG
~gtrIn.set(\in, 1); r.set(\in, 1); ~mic.set(\in, 1);
// MOTHER TOP
~gtrIn.set(\in, 2); r.set(\in, 2); ~mic.set(\in, 2); ~gtrIn.set(\in, 2); r.set(\in, 2); ~mic.set(\in, 2);
// MOTHER BOTTOM
~gtrIn.set(\in, 3); r.set(\in, 3); ~mic.set(\in, 3); ~gtrIn.set(\in, 3); r.set(\in, 3); ~mic.set(\in, 3);
// set recorder loop and overdub modes //////////// // set recorder loop and overdub modes ////////////

View File

@ -1,6 +1,6 @@
/*RUN*/ /*RUN*/
"/home/rob/gtr/motherPatterns.scd".load; "/home/rob/algomom/sc/motherPatterns.scd".load;
MIDIClient.init; MIDIClient.init;

View File

@ -1,143 +1,187 @@
<!DOCTYPE patchbay> <!DOCTYPE patchbay>
<patchbay name="recording_jackpatchbay" version="0.9.1"> <patchbay name="recording_jackpatchbay" version="0.9.9">
<output-sockets> <output-sockets>
<socket name="system 1" client="system" type="jack-audio" exclusive="on"> <socket name="slcommon" type="jack-audio" client="sooperlooper" exclusive="off">
<plug>common_out_1</plug>
<plug>common_out_2</plug>
</socket>
<socket name="system 2" type="jack-audio" client="system" exclusive="off">
<plug>capture_2</plug>
</socket>
<socket name="ardour GONG" type="jack-audio" client="ardour" exclusive="off">
<plug>GONG\/audio_out\ 2</plug>
<plug>GONG\/audio_out\ 1</plug>
</socket>
<socket name="Hydrogen 1" type="jack-audio" client="Hydrogen" exclusive="off">
<plug>out_L</plug>
<plug>out_R</plug>
</socket>
<socket name="system 1" type="jack-audio" client="system" exclusive="on">
<plug>capture_1</plug> <plug>capture_1</plug>
<plug>capture_2</plug> <plug>capture_2</plug>
<plug>capture_3</plug> <plug>capture_3</plug>
<plug>capture_4</plug> <plug>capture_4</plug>
</socket> </socket>
<socket name="system 3 4" client="system" type="jack-audio" exclusive="off"> <socket name="system 3 4" type="jack-audio" client="system" exclusive="off">
<plug>capture_3</plug> <plug>capture_3</plug>
<plug>capture_4</plug> <plug>capture_4</plug>
</socket> </socket>
<socket name="system 2 3 4" client="system" type="jack-audio" exclusive="off"> <socket name="system 2 3 4" type="jack-audio" client="system" exclusive="off">
<plug>capture_2</plug> <plug>capture_2</plug>
<plug>capture_3</plug> <plug>capture_3</plug>
<plug>capture_4</plug> <plug>capture_4</plug>
</socket> </socket>
<socket name="ardour sc4ch" client="ardour" type="jack-audio" exclusive="off"> <socket name="ardour sc4ch" type="jack-audio" client="ardour" exclusive="off">
<plug>SC\ 4CHAN\/audio_out\ 1</plug> <plug>SC\ 4CHAN\/audio_out\ 1</plug>
<plug>SC\ 4CHAN\/audio_out\ 2</plug> <plug>SC\ 4CHAN\/audio_out\ 2</plug>
<plug>SC\ 4CHAN\/audio_out\ 3</plug> <plug>SC\ 4CHAN\/audio_out\ 3</plug>
<plug>SC\ 4CHAN\/audio_out\ 4</plug> <plug>SC\ 4CHAN\/audio_out\ 4</plug>
</socket> </socket>
<socket name="gx_head_amp 1" client="gx_head_amp" type="jack-audio" exclusive="off"> <socket name="gx_head_amp 1" type="jack-audio" client="gx_head_amp" exclusive="off">
<plug>out_0</plug> <plug>out_0</plug>
</socket> </socket>
<socket name="gx_head_fx" client="gx_head_fx" type="jack-audio" exclusive="off"> <socket name="gx_head_fx" type="jack-audio" client="gx_head_fx" exclusive="off">
<plug>out_0</plug> <plug>out_0</plug>
<plug>out_1</plug> <plug>out_1</plug>
</socket> </socket>
<socket name="SC2CH" client="SuperCollider" type="jack-audio" exclusive="off"> <socket name="SC2CH" type="jack-audio" client="SuperCollider" exclusive="off">
<plug>out_1</plug> <plug>out_1</plug>
<plug>out_2</plug> <plug>out_2</plug>
</socket> </socket>
<socket name="SC 3-4" client="SuperCollider" type="jack-audio" exclusive="off"> <socket name="SC 3-4" type="jack-audio" client="SuperCollider" exclusive="off">
<plug>out_3</plug> <plug>out_3</plug>
<plug>out_4</plug> <plug>out_4</plug>
</socket> </socket>
<socket name="SuperCollider 4ch" client="SuperCollider" type="jack-audio" exclusive="off"> <socket name="SuperCollider 4ch" type="jack-audio" client="SuperCollider" exclusive="off">
<plug>out_1</plug> <plug>out_1</plug>
<plug>out_2</plug> <plug>out_2</plug>
<plug>out_3</plug> <plug>out_3</plug>
<plug>out_4</plug> <plug>out_4</plug>
</socket> </socket>
<socket name="ardour master out" client="ardour" type="jack-audio" exclusive="off"> <socket name="ardour HYDROGEN" type="jack-audio" client="ardour" exclusive="off">
<plug>HYDROGEN\ DRUMS\/audio_out\ 1</plug>
<plug>HYDROGEN\ DRUMS\/audio_out\ 2</plug>
</socket>
<socket name="ardour master out" type="jack-audio" client="ardour" exclusive="off">
<plug>Master\/audio_out\ 1</plug> <plug>Master\/audio_out\ 1</plug>
<plug>Master\/audio_out\ 2</plug> <plug>Master\/audio_out\ 2</plug>
</socket> </socket>
<socket name="ardour sc stereo" client="ardour" type="jack-audio" exclusive="off"> <socket name="ardour sc stereo" type="jack-audio" client="ardour" exclusive="off">
<plug>SUPERCOLLIDER\/audio_out\ 1</plug> <plug>SUPERCOLLIDER\/audio_out\ 1</plug>
<plug>SUPERCOLLIDER\/audio_out\ 2</plug> <plug>SUPERCOLLIDER\/audio_out\ 2</plug>
<plug>SC\ GTR\/audio_out\ 1</plug> <plug>SC\ GTR\/audio_out\ 1</plug>
<plug>SC\ GTR\/audio_out\ 2</plug> <plug>SC\ GTR\/audio_out\ 2</plug>
</socket> </socket>
<socket name="ardour sc gtr" client="ardour" type="jack-audio" exclusive="off"> <socket name="ardour sc gtr" type="jack-audio" client="ardour" exclusive="off">
<plug>SC\ GTR\/audio_out\ 1</plug> <plug>SC\ GTR\/audio_out\ 1</plug>
<plug>SC\ GTR\/audio_out\ 2</plug> <plug>SC\ GTR\/audio_out\ 2</plug>
</socket> </socket>
<socket name="ardour MOTHER32 TOP" client="ardour" type="jack-audio" exclusive="off"> <socket name="ardour MOTHER32 TOP" type="jack-audio" client="ardour" exclusive="off">
<plug>MOTHER32\ TOP\/audio_out\ 1</plug> <plug>MOTHER32\ TOP\/audio_out\ 1</plug>
<plug>MOTHER32\ TOP\/audio_out\ 2</plug> <plug>MOTHER32\ TOP\/audio_out\ 2</plug>
</socket> </socket>
<socket name="MOTHER32 BOTTOM" client="ardour" type="jack-audio" exclusive="off"> <socket name="MOTHER32 BOTTOM" type="jack-audio" client="ardour" exclusive="off">
<plug>MOTHER32\ BOTTOM\/audio_out\ 1</plug> <plug>MOTHER32\ BOTTOM\/audio_out\ 1</plug>
<plug>MOTHER32\ BOTTOM\/audio_out\ 2</plug> <plug>MOTHER32\ BOTTOM\/audio_out\ 2</plug>
</socket> </socket>
<socket name="ardour metronome" client="ardour" type="jack-audio" exclusive="off"> <socket name="ardour metronome" type="jack-audio" client="ardour" exclusive="off">
<plug>Click\/audio_out\ 1</plug> <plug>Click\/audio_out\ 1</plug>
<plug>Click\/audio_out\ 2</plug> <plug>Click\/audio_out\ 2</plug>
</socket> </socket>
<socket name="SuperCollider MIDI 0" client="SuperCollider" type="alsa-midi" exclusive="off"> <socket name="SuperCollider MIDI 0" type="alsa-midi" client="SuperCollider" exclusive="off">
<plug>out0</plug> <plug>out0</plug>
<plug>out1</plug> <plug>out1</plug>
<plug>out2</plug> <plug>out2</plug>
<plug>out3</plug> <plug>out3</plug>
</socket> </socket>
<socket name="ardour fx bus 1" client="ardour" type="jack-audio" exclusive="off"> <socket name="ardour fx bus 1" type="jack-audio" client="ardour" exclusive="off">
<plug>delay\/audio_out\ 1</plug> <plug>delay\/audio_out\ 1</plug>
<plug>delay\/audio_out\ 2</plug> <plug>delay\/audio_out\ 2</plug>
</socket> </socket>
<socket name="sl-ardour" type="jack-audio" client="ardour" exclusive="off">
<plug>sooperlooper\/audio_out\ 1</plug>
<plug>sooperlooper\/audio_out\ 2</plug>
</socket>
<socket name="nanoKONTROL 1" type="alsa-midi" client="nanoKONTROL2" exclusive="off">
<plug>nanoKONTROL2\ nanoKONTROL2\ _\ CTR</plug>
</socket>
</output-sockets> </output-sockets>
<input-sockets> <input-sockets>
<socket name="gx_head_amp" client="gx_head_amp" type="jack-audio" exclusive="off"> <socket name="ardour sl" type="jack-audio" client="ardour" exclusive="off">
<plug>sooperlooper\/audio_in\ 1</plug>
<plug>sooperlooper\/audio_in\ 2</plug>
</socket>
<socket name="ardour GONG" type="jack-audio" client="ardour" exclusive="off">
<plug>GONG\/audio_in\ 1</plug>
</socket>
<socket name="HYDROGEN" type="jack-audio" client="ardour" exclusive="off">
<plug>HYDROGEN\ DRUMS\/audio_in\ 1</plug>
<plug>HYDROGEN\ DRUMS\/audio_in\ 2</plug>
</socket>
<socket name="gx_head_amp" type="jack-audio" client="gx_head_amp" exclusive="off">
<plug>in_0</plug> <plug>in_0</plug>
</socket> </socket>
<socket name="SuperCollider 2 3 4" client="SuperCollider" type="jack-audio" exclusive="off"> <socket name="SuperCollider 2 3 4" type="jack-audio" client="SuperCollider" exclusive="off">
<plug>in_2</plug> <plug>in_2</plug>
<plug>in_3</plug> <plug>in_3</plug>
<plug>in_4</plug> <plug>in_4</plug>
</socket> </socket>
<socket name="gx_head_fx 1" client="gx_head_fx" type="jack-audio" exclusive="off"> <socket name="gx_head_fx 1" type="jack-audio" client="gx_head_fx" exclusive="off">
<plug>in_0</plug> <plug>in_0</plug>
</socket> </socket>
<socket name="SC 4CH" client="SuperCollider" type="jack-audio" exclusive="off"> <socket name="SC 4CH" type="jack-audio" client="SuperCollider" exclusive="off">
<plug>in_1</plug> <plug>in_1</plug>
<plug>in_2</plug> <plug>in_2</plug>
<plug>in_3</plug> <plug>in_3</plug>
<plug>in_4</plug> <plug>in_4</plug>
</socket> </socket>
<socket name="ardour gtrx input" client="ardour" type="jack-audio" exclusive="off"> <socket name="ardour gtrx input" type="jack-audio" client="ardour" exclusive="off">
<plug>\ GuitarX\/audio_in\ 1</plug> <plug>\ GuitarX\/audio_in\ 1</plug>
<plug>\ GuitarX\/audio_in\ 2</plug> <plug>\ GuitarX\/audio_in\ 2</plug>
</socket> </socket>
<socket name="ardour SC2CH IN" client="ardour" type="jack-audio" exclusive="off"> <socket name="ardour SC2CH IN" type="jack-audio" client="ardour" exclusive="off">
<plug>SUPERCOLLIDER\/audio_in\ 1</plug> <plug>SUPERCOLLIDER\/audio_in\ 1</plug>
<plug>SUPERCOLLIDER\/audio_in\ 2</plug> <plug>SUPERCOLLIDER\/audio_in\ 2</plug>
</socket> </socket>
<socket name="ardour SC GTR" client="ardour" type="jack-audio" exclusive="off"> <socket name="ardour SC GTR" type="jack-audio" client="ardour" exclusive="off">
<plug>SC\ GTR\/audio_in\ 1</plug> <plug>SC\ GTR\/audio_in\ 1</plug>
<plug>SC\ GTR\/audio_in\ 2</plug> <plug>SC\ GTR\/audio_in\ 2</plug>
</socket> </socket>
<socket name="ardour mother32s" client="ardour" type="jack-audio" exclusive="off"> <socket name="ardour mother32s" type="jack-audio" client="ardour" exclusive="off">
<plug>MOTHER32\ TOP\/audio_in\ 1</plug> <plug>MOTHER32\ TOP\/audio_in\ 1</plug>
<plug>MOTHER32\ BOTTOM\/audio_in\ 1</plug> <plug>MOTHER32\ BOTTOM\/audio_in\ 1</plug>
</socket> </socket>
<socket name="sc2chan" client="ardour" type="jack-audio" exclusive="off"> <socket name="sc2chan" type="jack-audio" client="ardour" exclusive="off">
<plug>SUPERCOLLIDER\/audio_in\ 1</plug> <plug>SUPERCOLLIDER\/audio_in\ 1</plug>
<plug>SUPERCOLLIDER\/audio_in\ 2</plug> <plug>SUPERCOLLIDER\/audio_in\ 2</plug>
</socket> </socket>
<socket name="ardour sc4ch" client="ardour" type="jack-audio" exclusive="off"> <socket name="ardour sc4ch" type="jack-audio" client="ardour" exclusive="off">
<plug>SC\ 4CHAN\/audio_in\ 1</plug> <plug>SC\ 4CHAN\/audio_in\ 1</plug>
<plug>SC\ 4CHAN\/audio_in\ 2</plug> <plug>SC\ 4CHAN\/audio_in\ 2</plug>
<plug>SC\ 4CHAN\/audio_in\ 3</plug> <plug>SC\ 4CHAN\/audio_in\ 3</plug>
<plug>SC\ 4CHAN\/audio_in\ 4</plug> <plug>SC\ 4CHAN\/audio_in\ 4</plug>
</socket> </socket>
<socket name="ardour master in" client="ardour" type="jack-audio" exclusive="off"> <socket name="ardour master in" type="jack-audio" client="ardour" exclusive="off">
<plug>Master\/audio_in\ 1</plug> <plug>Master\/audio_in\ 1</plug>
<plug>Master\/audio_in\ 2</plug> <plug>Master\/audio_in\ 2</plug>
</socket> </socket>
<socket name="system 1" client="system" type="jack-audio" exclusive="off"> <socket name="sl-midi" type="alsa-midi" client="sooperlooper" exclusive="off">
<plug>sooperlooper</plug>
</socket>
<socket name="sl-common" type="jack-audio" client="sooperlooper" exclusive="off">
<plug>common_in_1</plug>
<plug>common_in_2</plug>
</socket>
<socket name="system 1" type="jack-audio" client="system" exclusive="off">
<plug>playback_1</plug> <plug>playback_1</plug>
<plug>playback_2</plug> <plug>playback_2</plug>
<plug>playback_3</plug> <plug>playback_3</plug>
<plug>playback_4</plug> <plug>playback_4</plug>
</socket> </socket>
<socket name="UMC404HD\ 192k 1" client="UMC404HD\ 192k" type="alsa-midi" exclusive="off"> <socket name="UMC404HD\ 192k 1" type="alsa-midi" client="UMC404HD\ 192k" exclusive="off">
<plug>UMC404HD\ 192k\ UMC404HD\ 192k\ MID</plug> <plug>UMC404HD\ 192k\ UMC404HD\ 192k\ MID</plug>
</socket> </socket>
<socket name="MidiSport\ 4x 1" client="MidiSport\ 4x4" type="alsa-midi" exclusive="off"> <socket name="MidiSport\ 4x 1" type="alsa-midi" client="MidiSport\ 4x4" exclusive="off">
<plug>MidiSport\ 4x4\ MIDI\ 1</plug> <plug>MidiSport\ 4x4\ MIDI\ 1</plug>
<plug>MidiSport\ 4x4\ MIDI\ 2</plug> <plug>MidiSport\ 4x4\ MIDI\ 2</plug>
<plug>MidiSport\ 4x4\ MIDI\ 3</plug> <plug>MidiSport\ 4x4\ MIDI\ 3</plug>
@ -146,23 +190,32 @@
</input-sockets> </input-sockets>
<slots/> <slots/>
<cables> <cables>
<cable type="jack-audio" input="gx_head_amp" output="system 1"/> <cable type="jack-audio" output="system 2" input="ardour GONG"/>
<cable type="jack-audio" input="ardour mother32s" output="system 3 4"/> <cable type="jack-audio" output="system 2" input="sl-common"/>
<cable type="jack-audio" input="SuperCollider 2 3 4" output="system 2 3 4"/> <cable type="jack-audio" output="ardour GONG" input="ardour master in"/>
<cable type="jack-audio" input="gx_head_fx 1" output="gx_head_amp 1"/> <cable type="jack-audio" output="Hydrogen 1" input="HYDROGEN"/>
<cable type="jack-audio" input="SC 4CH" output="gx_head_fx"/> <cable type="jack-audio" output="system 1" input="gx_head_amp"/>
<cable type="jack-audio" input="ardour gtrx input" output="gx_head_fx"/> <cable type="jack-audio" output="system 3 4" input="ardour mother32s"/>
<cable type="jack-audio" input="ardour SC2CH IN" output="SC2CH"/> <cable type="jack-audio" output="system 2 3 4" input="SuperCollider 2 3 4"/>
<cable type="jack-audio" input="ardour SC GTR" output="SC 3-4"/> <cable type="jack-audio" output="gx_head_amp 1" input="gx_head_fx 1"/>
<cable type="jack-audio" input="ardour sc4ch" output="SuperCollider 4ch"/> <cable type="jack-audio" output="gx_head_fx" input="SC 4CH"/>
<cable type="jack-audio" input="system 1" output="ardour master out"/> <cable type="jack-audio" output="gx_head_fx" input="ardour gtrx input"/>
<cable type="jack-audio" input="ardour master in" output="ardour sc stereo"/> <cable type="jack-audio" output="gx_head_fx" input="sl-common"/>
<cable type="jack-audio" input="ardour master in" output="ardour sc gtr"/> <cable type="jack-audio" output="SC2CH" input="ardour SC2CH IN"/>
<cable type="jack-audio" input="ardour master in" output="ardour MOTHER32 TOP"/> <cable type="jack-audio" output="SC 3-4" input="ardour SC GTR"/>
<cable type="jack-audio" input="ardour master in" output="MOTHER32 BOTTOM"/> <cable type="jack-audio" output="SuperCollider 4ch" input="ardour sc4ch"/>
<cable type="jack-audio" input="system 1" output="ardour metronome"/> <cable type="jack-audio" output="ardour HYDROGEN" input="ardour master in"/>
<cable type="alsa-midi" input="MidiSport\ 4x 1" output="SuperCollider MIDI 0"/> <cable type="jack-audio" output="ardour master out" input="system 1"/>
<cable type="jack-audio" input="ardour master in" output="ardour fx bus 1"/> <cable type="jack-audio" output="ardour sc stereo" input="ardour master in"/>
<cable type="jack-audio" output="ardour sc gtr" input="ardour master in"/>
<cable type="jack-audio" output="ardour MOTHER32 TOP" input="ardour master in"/>
<cable type="jack-audio" output="MOTHER32 BOTTOM" input="ardour master in"/>
<cable type="jack-audio" output="ardour metronome" input="system 1"/>
<cable type="alsa-midi" output="SuperCollider MIDI 0" input="MidiSport\ 4x 1"/>
<cable type="jack-audio" output="ardour fx bus 1" input="ardour master in"/>
<cable type="jack-audio" output="slcommon" input="ardour sl"/>
<cable type="jack-audio" output="sl-ardour" input="ardour master in"/>
<cable type="alsa-midi" output="nanoKONTROL 1" input="sl-midi"/>
</cables> </cables>
</patchbay> </patchbay>

View File

@ -4,11 +4,8 @@
~r0 = Pn(1/8, 16); ~r0 = Pn(1/8, 16);
TempoClock.default.tempo = 60/60; TempoClock.default.tempo = 60/60;
TempoClock.default.tempo = 30/60; TempoClock.default.tempo = 30/60;
~rx0 = Pwrand([1/8, 1/4, 1/2, 4],[80,50,20,20].normalizeSum, 1); ~rx0 = Pwrand([1/8, 1/4, 1/2, 4],[80,50,20,20].normalizeSum, 1);
~rx1 = Pwrand([1/8, 1/4, 1/2, 1],[80,50,20,20].normalizeSum, 1); ~rx1 = Pwrand([1/8, 1/4, 1/2, 1],[80,50,20,20].normalizeSum, 1);
~rx2 = Pwrand([1/8, 1/4, 1/2],[80,50,20].normalizeSum, 1); ~rx2 = Pwrand([1/8, 1/4, 1/2],[80,50,20].normalizeSum, 1);

View File

@ -0,0 +1,254 @@
<?xml version="1.0"?>
<SLSession version="1.7.8">
<Globals tempo="130.5989487" eighth_per_cycle="16" common_dry="0" common_wet="1" input_gain="1" sync_source="1" auto_disable_latency="1" jack_timebase_master="0" output_midi_clock="0" use_midi_start="0" use_midi_stop="0" send_midi_start_on_trigger="0" smart_eighths="1"/>
<Loopers>
<Looper index="0" channels="1" loop_secs="40" discrete_io="yes" discrete_prefader="yes" use_common_ins="yes" use_common_outs="yes" relative_sync="no" auto_latency="yes" tempo_stretch="no" stretch_ratio="0.8957680464" pitch_shift="0" loop_audio="/home/rob/gtr/sooperlooper/8ch_looper.slsess_loop_00.wav">
<Panner linked="no" link_direction="0" bypassed="no">
<StreamPanner x="0.519685" type="Equal Power Stereo" muted="no"/>
<Output x="0.000000" y="0.000000"/>
<Output x="1.000000" y="0.000000"/>
</Panner>
<Controls>
<Control name="rec_thresh" value="0"/>
<Control name="dry" value="0"/>
<Control name="wet" value="1"/>
<Control name="feedback" value="1"/>
<Control name="rate" value="1"/>
<Control name="scratch_pos" value="0"/>
<Control name="delay_trigger" value="0"/>
<Control name="use_feedback_play" value="1"/>
<Control name="quantize" value="0"/>
<Control name="round" value="0"/>
<Control name="redo_is_tap" value="0"/>
<Control name="sync" value="1"/>
<Control name="use_rate" value="0"/>
<Control name="fade_samples" value="66"/>
<Control name="playback_sync" value="1"/>
<Control name="use_safety_feedback" value="1"/>
<Control name="input_latency" value="256"/>
<Control name="output_latency" value="0"/>
<Control name="trigger_latency" value="256"/>
<Control name="mute_quantized" value="0"/>
<Control name="overdub_quantized" value="0"/>
<Control name="round_integer_tempo" value="0"/>
</Controls>
</Looper>
<Looper index="1" channels="1" loop_secs="40" discrete_io="yes" discrete_prefader="yes" use_common_ins="yes" use_common_outs="yes" relative_sync="no" auto_latency="yes" tempo_stretch="no" stretch_ratio="2.450594664" pitch_shift="-5" loop_audio="/home/rob/gtr/sooperlooper/8ch_looper.slsess_loop_01.wav">
<Panner linked="no" link_direction="0" bypassed="no">
<StreamPanner x="0.527559" type="Equal Power Stereo" muted="no"/>
<Output x="0.000000" y="0.000000"/>
<Output x="1.000000" y="0.000000"/>
</Panner>
<Controls>
<Control name="rec_thresh" value="0"/>
<Control name="dry" value="0"/>
<Control name="wet" value="1"/>
<Control name="feedback" value="1"/>
<Control name="rate" value="4"/>
<Control name="scratch_pos" value="0"/>
<Control name="delay_trigger" value="0"/>
<Control name="use_feedback_play" value="0"/>
<Control name="quantize" value="0"/>
<Control name="round" value="0"/>
<Control name="redo_is_tap" value="0"/>
<Control name="sync" value="1"/>
<Control name="use_rate" value="0"/>
<Control name="fade_samples" value="66"/>
<Control name="playback_sync" value="1"/>
<Control name="use_safety_feedback" value="1"/>
<Control name="input_latency" value="256"/>
<Control name="output_latency" value="0"/>
<Control name="trigger_latency" value="256"/>
<Control name="mute_quantized" value="0"/>
<Control name="overdub_quantized" value="0"/>
<Control name="round_integer_tempo" value="0"/>
</Controls>
</Looper>
<Looper index="2" channels="1" loop_secs="40" discrete_io="yes" discrete_prefader="yes" use_common_ins="yes" use_common_outs="yes" relative_sync="no" auto_latency="yes" tempo_stretch="no" stretch_ratio="0.9326922894" pitch_shift="12" loop_audio="/home/rob/gtr/sooperlooper/8ch_looper.slsess_loop_02.wav">
<Panner linked="no" link_direction="0" bypassed="no">
<StreamPanner x="0.582677" type="Equal Power Stereo" muted="no"/>
<Output x="0.000000" y="0.000000"/>
<Output x="1.000000" y="0.000000"/>
</Panner>
<Controls>
<Control name="rec_thresh" value="0"/>
<Control name="dry" value="1"/>
<Control name="wet" value="1"/>
<Control name="feedback" value="1"/>
<Control name="rate" value="1"/>
<Control name="scratch_pos" value="0"/>
<Control name="delay_trigger" value="0"/>
<Control name="use_feedback_play" value="0"/>
<Control name="quantize" value="0"/>
<Control name="round" value="0"/>
<Control name="redo_is_tap" value="0"/>
<Control name="sync" value="1"/>
<Control name="use_rate" value="0"/>
<Control name="fade_samples" value="66"/>
<Control name="playback_sync" value="0"/>
<Control name="use_safety_feedback" value="1"/>
<Control name="input_latency" value="256"/>
<Control name="output_latency" value="0"/>
<Control name="trigger_latency" value="256"/>
<Control name="mute_quantized" value="0"/>
<Control name="overdub_quantized" value="0"/>
<Control name="round_integer_tempo" value="0"/>
</Controls>
</Looper>
<Looper index="3" channels="1" loop_secs="40" discrete_io="yes" discrete_prefader="yes" use_common_ins="yes" use_common_outs="yes" relative_sync="no" auto_latency="yes" tempo_stretch="no" stretch_ratio="1" pitch_shift="0" loop_audio="/home/rob/gtr/sooperlooper/8ch_looper.slsess_loop_03.wav">
<Panner linked="no" link_direction="0" bypassed="no">
<StreamPanner x="1.000000" type="Equal Power Stereo" muted="no"/>
<Output x="0.000000" y="0.000000"/>
<Output x="1.000000" y="0.000000"/>
</Panner>
<Controls>
<Control name="rec_thresh" value="0"/>
<Control name="dry" value="0"/>
<Control name="wet" value="1"/>
<Control name="feedback" value="1"/>
<Control name="rate" value="1"/>
<Control name="scratch_pos" value="0"/>
<Control name="delay_trigger" value="0"/>
<Control name="use_feedback_play" value="0"/>
<Control name="quantize" value="0"/>
<Control name="round" value="0"/>
<Control name="redo_is_tap" value="0"/>
<Control name="sync" value="1"/>
<Control name="use_rate" value="0"/>
<Control name="fade_samples" value="66"/>
<Control name="playback_sync" value="0"/>
<Control name="use_safety_feedback" value="1"/>
<Control name="input_latency" value="256"/>
<Control name="output_latency" value="0"/>
<Control name="trigger_latency" value="256"/>
<Control name="mute_quantized" value="0"/>
<Control name="overdub_quantized" value="0"/>
<Control name="round_integer_tempo" value="0"/>
</Controls>
</Looper>
<Looper index="4" channels="1" loop_secs="40" discrete_io="yes" discrete_prefader="yes" use_common_ins="yes" use_common_outs="yes" relative_sync="no" auto_latency="yes" tempo_stretch="no" stretch_ratio="1" pitch_shift="0" loop_audio="/home/rob/gtr/sooperlooper/8ch_looper.slsess_loop_04.wav">
<Panner linked="no" link_direction="0" bypassed="no">
<StreamPanner x="0.500000" type="Equal Power Stereo" muted="no"/>
<Output x="0.000000" y="0.000000"/>
<Output x="1.000000" y="0.000000"/>
</Panner>
<Controls>
<Control name="rec_thresh" value="0"/>
<Control name="dry" value="0"/>
<Control name="wet" value="1"/>
<Control name="feedback" value="1"/>
<Control name="rate" value="1"/>
<Control name="scratch_pos" value="0"/>
<Control name="delay_trigger" value="0"/>
<Control name="use_feedback_play" value="0"/>
<Control name="quantize" value="0"/>
<Control name="round" value="0"/>
<Control name="redo_is_tap" value="0"/>
<Control name="sync" value="1"/>
<Control name="use_rate" value="0"/>
<Control name="fade_samples" value="66"/>
<Control name="playback_sync" value="0"/>
<Control name="use_safety_feedback" value="1"/>
<Control name="input_latency" value="256"/>
<Control name="output_latency" value="0"/>
<Control name="trigger_latency" value="256"/>
<Control name="mute_quantized" value="0"/>
<Control name="overdub_quantized" value="0"/>
<Control name="round_integer_tempo" value="0"/>
</Controls>
</Looper>
<Looper index="5" channels="1" loop_secs="40" discrete_io="yes" discrete_prefader="yes" use_common_ins="yes" use_common_outs="yes" relative_sync="no" auto_latency="yes" tempo_stretch="no" stretch_ratio="1" pitch_shift="0" loop_audio="/home/rob/gtr/sooperlooper/8ch_looper.slsess_loop_05.wav">
<Panner linked="no" link_direction="0" bypassed="no">
<StreamPanner x="0.500000" type="Equal Power Stereo" muted="no"/>
<Output x="0.000000" y="0.000000"/>
<Output x="1.000000" y="0.000000"/>
</Panner>
<Controls>
<Control name="rec_thresh" value="0"/>
<Control name="dry" value="0"/>
<Control name="wet" value="1"/>
<Control name="feedback" value="0.98936176300048828125"/>
<Control name="rate" value="1"/>
<Control name="scratch_pos" value="0"/>
<Control name="delay_trigger" value="0"/>
<Control name="use_feedback_play" value="0"/>
<Control name="quantize" value="0"/>
<Control name="round" value="0"/>
<Control name="redo_is_tap" value="0"/>
<Control name="sync" value="1"/>
<Control name="use_rate" value="0"/>
<Control name="fade_samples" value="66"/>
<Control name="playback_sync" value="0"/>
<Control name="use_safety_feedback" value="1"/>
<Control name="input_latency" value="256"/>
<Control name="output_latency" value="0"/>
<Control name="trigger_latency" value="256"/>
<Control name="mute_quantized" value="0"/>
<Control name="overdub_quantized" value="0"/>
<Control name="round_integer_tempo" value="0"/>
</Controls>
</Looper>
<Looper index="6" channels="1" loop_secs="40" discrete_io="yes" discrete_prefader="yes" use_common_ins="yes" use_common_outs="yes" relative_sync="no" auto_latency="yes" tempo_stretch="no" stretch_ratio="1" pitch_shift="0" loop_audio="/home/rob/gtr/sooperlooper/8ch_looper.slsess_loop_06.wav">
<Panner linked="no" link_direction="0" bypassed="no">
<StreamPanner x="0.500000" type="Equal Power Stereo" muted="no"/>
<Output x="0.000000" y="0.000000"/>
<Output x="1.000000" y="0.000000"/>
</Panner>
<Controls>
<Control name="rec_thresh" value="0"/>
<Control name="dry" value="0"/>
<Control name="wet" value="1"/>
<Control name="feedback" value="1"/>
<Control name="rate" value="1"/>
<Control name="scratch_pos" value="0"/>
<Control name="delay_trigger" value="0"/>
<Control name="use_feedback_play" value="0"/>
<Control name="quantize" value="0"/>
<Control name="round" value="0"/>
<Control name="redo_is_tap" value="0"/>
<Control name="sync" value="1"/>
<Control name="use_rate" value="0"/>
<Control name="fade_samples" value="66"/>
<Control name="playback_sync" value="0"/>
<Control name="use_safety_feedback" value="1"/>
<Control name="input_latency" value="256"/>
<Control name="output_latency" value="0"/>
<Control name="trigger_latency" value="256"/>
<Control name="mute_quantized" value="0"/>
<Control name="overdub_quantized" value="0"/>
<Control name="round_integer_tempo" value="0"/>
</Controls>
</Looper>
<Looper index="7" channels="1" loop_secs="40" discrete_io="yes" discrete_prefader="yes" use_common_ins="yes" use_common_outs="yes" relative_sync="no" auto_latency="yes" tempo_stretch="no" stretch_ratio="1" pitch_shift="-10" loop_audio="/home/rob/gtr/sooperlooper/8ch_looper.slsess_loop_07.wav">
<Panner linked="no" link_direction="0" bypassed="no">
<StreamPanner x="0.500000" type="Equal Power Stereo" muted="no"/>
<Output x="0.000000" y="0.000000"/>
<Output x="1.000000" y="0.000000"/>
</Panner>
<Controls>
<Control name="rec_thresh" value="0"/>
<Control name="dry" value="0"/>
<Control name="wet" value="1"/>
<Control name="feedback" value="1"/>
<Control name="rate" value="1"/>
<Control name="scratch_pos" value="0"/>
<Control name="delay_trigger" value="0"/>
<Control name="use_feedback_play" value="0"/>
<Control name="quantize" value="0"/>
<Control name="round" value="0"/>
<Control name="redo_is_tap" value="0"/>
<Control name="sync" value="1"/>
<Control name="use_rate" value="0"/>
<Control name="fade_samples" value="66"/>
<Control name="playback_sync" value="0"/>
<Control name="use_safety_feedback" value="1"/>
<Control name="input_latency" value="256"/>
<Control name="output_latency" value="0"/>
<Control name="trigger_latency" value="256"/>
<Control name="mute_quantized" value="0"/>
<Control name="overdub_quantized" value="0"/>
<Control name="round_integer_tempo" value="0"/>
</Controls>
</Looper>
</Loopers>
</SLSession>