From 9543dbd72e1bc8625cf32a5d3be73ab2e378f5c0 Mon Sep 17 00:00:00 2001 From: Rob Canning Date: Sun, 20 Nov 2022 01:07:41 +0100 Subject: [PATCH] adapting gui to new granular method --- gtr-gui-manual.scd | 4 + gtr.scd | 371 ++++++++++++++++++++++++++++++++++++++------- start_jackd.sh | 4 +- 3 files changed, 319 insertions(+), 60 deletions(-) diff --git a/gtr-gui-manual.scd b/gtr-gui-manual.scd index 45bbbf5..dbaedf8 100644 --- a/gtr-gui-manual.scd +++ b/gtr-gui-manual.scd @@ -134,6 +134,7 @@ VLayout( ~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"]) .font_(Font.default.size_(35)) + .value_(~gdurmode) .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)); @@ -151,6 +152,9 @@ VLayout( .font_(Font.default.size_(35)).background_(Color.yellow) .value_(0); + ~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)); + ~outAmpModeGui = QSlider(~grainGui, Rect(55, 60, 240, 40)).value_(0.5) .action_({ ~g1.set(\amp, ~outAmpModeGui.value); diff --git a/gtr.scd b/gtr.scd index 3a63266..c0c4eb4 100644 --- a/gtr.scd +++ b/gtr.scd @@ -1,6 +1,8 @@ + // RUNME 0 ========================================= // todo countdown on density voices + ( s.reboot{ s.options.numBuffers = 1024 * 256; // increase this if you need to load more samples s.options.sampleRate = 44100; // also tried with 44000 value @@ -14,7 +16,7 @@ // RUNME 1 ========================================= -( // SETUP ----------------------------------------- +( // SETUP ---------------=-------------------------- // Allocate a 4 second mono buffer b = Buffer.alloc(s, s.sampleRate * 4.0, 1); ~b1 = Buffer.alloc(s, s.sampleRate * 4.0, 1); @@ -45,7 +47,13 @@ s.plotTree; // RUNME 2 ========================================== // ------------------------------------------------- -(( // DEFINE SYNTHS --------------------------------- <-- + + +(( // DEFINE SYNTHS --------------------------------- + +s.meter; + + // ------------------------------------------------- ( // direct signal + reverb ------------------------- @@ -79,9 +87,9 @@ SynthDef("freeVerb", { arg in=0; var signal, dry, wet; dry = In.ar(in); - wet = FreeVerb.ar(dry, mix:0.5, room:1, damp:0); + wet = FreeVerb.ar(dry, mix:0.5, room:0.99, damp:0.5,); signal = wet * 0.9; - Out.ar(0, signal); + Out.ar(0, signal!2); }).add; ); @@ -97,27 +105,12 @@ SynthDef("ringModulator", { ); -( // mono buffer recorder ---------------------------- -// with loop and overdub modes ///////////////////// -// make record togglable between looping, direct or onset detection trigger -SynthDef("recBuf",{ - arg in=0, out=0, bufnum=0, t_trig=0, l=0, overdub=0; - var sig, chain, onsets; - sig = SoundIn.ar(in); - // Onsets - chain = FFT(LocalBuf(512), sig); - onsets = Onsets.kr(chain, MouseX.kr(0,1), \rcomplex); - - RecordBuf.ar(sig, bufnum, loop:l, - preLevel: overdub, - doneAction: 0, trigger:t_trig,); -}).add; -); // ---------~positionmode = 1; ------------------------------------------- -( // Granulator -------------------------------------- +( // Granulator --------------------------------------r.get(\in).postln; + // ---------------------------------------------------- // a custom envelope @@ -126,6 +119,193 @@ SynthDef("recBuf",{ //z = Buffer.sendCollection(s, winenv.discretize, 1); // ~rndpos = LFNoise2.kr(0.1).range(0, 1); +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, + sensorposition=0, impulsemodeindex=0, sensorimpulse=0, + signalChannelIndex=1, dseqarrayIndex=1, + rlow= -1, rhigh=10 | + + var signal, env, freqdev, pos, + pitchmode0, pitchmode1, pitchmode2,pitchmode3,pitchmode4,pitchmode5, pitchmode6, pitch, + gdurmode0, gdurmode1, gdurmode2, gdurmode3, gdurmode4, gdurmode5, gdurmode6, gdur, + gpanmode0, gpanmode1, gpanmode2,gpanmode3, gpanmode4, gpanmode5,gpanmode6, gpanmode7, gpanmode8, gpan, + positionmode0, positionmode1, positionmode2, positionmode3, position, + impulsemode0, impulsemode1, impulse, + xdseq, dseq_array1, dseq_array2, dseq_array3, dseq_array4, dseq_array5, dseq_array6, + stereosignal, quadsignalL, quadsignalR, quadsignal, signalchannels; + + // grain duration mode -untransposed, random, or sensor controlled + gdurmode0 = 0.2; + gdurmode1 = 0.5; + gdurmode2 = LFNoise1.kr.range(0.1, 0.3); + gdurmode3 = LFNoise1.kr.range(0.1, 0.6); + gdurmode4 = LFNoise1.kr.range(1, 2); + gdurmode5 = LFNoise1.kr.range(1, 4); + gdurmode6 = LFNoise1.kr.range(4, 4); + + gdur = Select.kr(gdurmodeindex, + [gdurmode0, gdurmode1, gdurmode2, gdurmode3, gdurmode4, gdurmode5, gdurmode6, sensorgdur]); + + // grain pan mode STEREO, QUAD, ROTATING + gpanmode0 = 0; //LFNoise1.kr(100).range(-0.2, 0.2); + gpanmode1 = 1; //LFNoise1.kr(100).range(-0.2, 0.2); + gpanmode2 = SinOsc.kr(0.33).range(-0.2, 0.2); + gpanmode3 = LFNoise1.kr(10).range(-0.2, 0.2); + gpanmode4 = LFSaw.kr(0.33).bipolar.range(-1,1); + gpanmode5 = LFNoise1.kr(10).range(-1, 1); + gpanmode6 = LFNoise1.kr(10).range(-1, 1); + gpanmode7 = LFNoise1.kr(10).range(-1, 1); + gpanmode8 = LFNoise1.kr(10).range(-1, 1); + gdurmode6 = LFNoise1.kr.range(4, 4); + gdurmode6 = LFNoise1.kr.range(4, 4); + + + gpan = Select.kr(gpanmodeindex, + [gpanmode0, gpanmode1, gpanmode2, gpanmode3, gpanmode4, gpanmode5, gpanmode6, gpanmode7, gpanmode8, sensorgpan]); + + // 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)); + pitchmode2 = Demand.kr(Impulse.kr(imp), 0, Drand(Scale.minor.degrees.midiratio, inf) * Drand([0.5, 0.25,1,2], inf)); + pitchmode3 = Demand.kr(Impulse.kr(imp), 0, Dseq([1,-1, -0.5, 1, 1.33, 1], inf)); + pitchmode4 = Demand.kr(Impulse.kr(imp), 0, Drand([0.5, 0.25,1,2], inf)); + pitchmode5 = Demand.kr(Impulse.kr(imp), 0, Drand(Scale.diminished.degrees.midiratio, inf)); + pitchmode6 = LFNoise1.kr(imp).range(rlow, rhigh); + + pitch = Select.kr(pitchmodeindex, + [pitchmode0, sensorpitch, pitchmode1, pitchmode2 ,pitchmode3, pitchmode4, pitchmode5, pitchmode6]); + + // granular playhead mode - fixed random or sensor controlled + positionmode0 = 0.2; + positionmode1 = (Phasor.ar(0.01, 1 * BufRateScale.ir(b), 0, BufSamples.ir(b)) + LFNoise1.ar(100).bipolar(0.1 * SampleRate.ir) ) / BufSamples.ir(b); + positionmode2 = LFNoise1.kr.range(0.05, (BufSamples.ir(b)-1) - 1000 ); + positionmode3 = LFNoise1.kr.range(0.1, 3.8 ); + + position = Select.kr(positionmodeindex, + [positionmode0, positionmode1, positionmode2, positionmode3, sensorposition]); + + // grain impulse frequency mode - random, metric or sensor based impulse modes + impulsemode0 = Impulse.kr(imp); + impulsemode1 = Dust.kr(imp); + impulse = Select.kr(impulsemodeindex, + [impulsemode0, impulsemode1, sensorimpulse]); + + env = EnvGen.kr( Env([0, 1, 0], [1, 1], \sin, 1), gate, levelScale: amp, doneAction: 2); + + signal = TGrains.ar(4, impulse, b, pitch, position, gdur, gpan, amp, 4) * env; + + Out.ar(0, signal); + +}).add; +); + +( +~micBus = Bus.audio(s,1); +~ptrBus = Bus.audio(s,1); +); + +( +SynthDef.new(\mic, { + arg in=0, out=0, amp=1; + var sig; + sig = SoundIn.ar(in) * amp; + Out.ar(out, sig); +}).add; + +SynthDef.new(\ptr, { + arg out=0, buf=0; + var sig; + sig = Phasor.ar(0, BufRateScale.kr(buf), 0, BufFrames.kr(buf)); + Out.ar(out, sig); +}).add; + +SynthDef.new(\rec, { + arg ptrIn=0, micIn=0, buf=0; + var ptr, sig; + ptr = In.ar(ptrIn, 1); + sig = In.ar(micIn, 1); + BufWr.ar(sig, buf, ptr); +}).add; + +( // mono buffer recorder ---------------------------- +// with loop and overdub modes ///////////////////// +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); + + // Onsets + //chain = FFT(LocalBuf(512), sig); + //onsets = Onsets.kr(chain, MouseX.kr(0,1), \rcomplex); + + RecordBuf.ar(sig, bufnum, loop:l, + preLevel: overdub, + doneAction: 0, trigger:t_trig, offset: ptr,); +}).add; +); + + + +SynthDef.new(\gran, { + arg amp=0.5, out=0, buf=0, + atk=1, rel=1, gate=1, + sync=1, dens=40, + baseDur=0.05, durRand=1, + rate=1, rateRand=1, + pan=0, panRand=0, + grainEnv=(-1), ptrBus=0, ptrSampleDelay=20000, + ptrRandSamples=5000, minPtrDelay=1000; + + var sig, env, densCtrl, durCtrl, rateCtrl, panCtrl, ptr, ptrRand, totalDelay, maxGrainDur; + + env= EnvGen.kr(Env.asr(atk,1,rel),gate, doneAction:2); + densCtrl = Select.ar(sync, [Dust.ar(dens), Impulse.ar(dens)]); + durCtrl = baseDur * LFNoise1.ar(100).exprange(1/durRand, durRand); + rateCtrl = rate * LFNoise1.ar(100).exprange(1/rateRand, rateRand); + panCtrl = pan + LFNoise1.kr(100).bipolar(panRand); + + ptrRand = LFNoise1.ar(100).bipolar(ptrRandSamples); + totalDelay = max(ptrSampleDelay - ptrRand, minPtrDelay); // make sure value doesnt go below this value, which would cross discontinuity point + + ptr = In.ar(ptrBus, 1); + ptr = ptr - totalDelay; // how far ptr lags behind discontinuity point + ptr = ptr / BufFrames.kr(buf); //normalise to 0 - 1 range + + maxGrainDur = (totalDelay / rateCtrl) / SampleRate.ir; + durCtrl = min(durCtrl, maxGrainDur); + + + sig = GrainBuf.ar( + 2, + densCtrl, + durCtrl, + buf, + rateCtrl, + ptr, + 2, + panCtrl, + grainEnv + ); + + sig = sig * env * amp; + Out.ar(out, sig); + +}).add; + +) + + + + +) + +( // 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, @@ -162,20 +342,7 @@ SynthDef(\buf_grain, { | out=0, gate = 1, amp = 0.5, gpan = Select.kr(gpanmodeindex, [gpanmode0, gpanmode1, gpanmode2, sensorgpan]); - // grain pitch mode -untransposed, random, or sensor controlled - - Scale.minor.degrees.midiratio; - -/* dseq_array1 = Dseq([1,-1, 2, 1, -1.5, 1, 1.33, 1, -0.5, 1, 3, 1, 2.37, 1, -0.33, 1], inf); - dseq_array2 = Dseq([1,-1, -0.5, 1, 1.33, 1], inf); - dseq_array3 = Drand([(1..5).mirror.midiratio], inf); - dseq_array4 = Drand(Scale.minor.degrees.midiratio, inf); - dseq_array5 = Dseq([1,-1, -0.5, 1, 1.33, 1], inf);*/ - // - - // xdseq = [dseq_array1, dseq_array2,dseq_array3, dseq_array4, dseq_array5]; - - //dseqarrayIndex =1; + // 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)); @@ -211,27 +378,32 @@ SynthDef(\buf_grain, { | out=0, gate = 1, amp = 0.5, Out.ar(0, signal); }).add; -); ) + + + + + (( // RUNME 3 ========================================== // START SYNTHS --------------------------------- // ---------------------------------------------------- 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 - ~gtrIn = Synth(\dryIn, [\instrAmp, 1, \out, ~ringModBus], ~sourceGroup); // dry audio signaL + ~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]); +//~ringMod.set(\in, 9); +//~gtrIn.set(\out, 0); +//~gtrIn.set(\out, ~ringModBus); +//~gtrIn.set(\out, ~reverbBus); +//~gtrIn.set(\out, [~reverbBus, ~ringModBus]); ~ringMod.set(\modulator, 0); ~ringMod.set(\mulrate, 0); @@ -377,6 +549,72 @@ OSCFunc.trace(false); // Turn posting off ) }); + 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 + {~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}; + + 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}; + + 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}; + + 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}; + + + 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}; + + + case + {~impulsemode == 0 }{{~impulseModeGui.value_(0) }.defer} + {~impulsemode == 1 }{{~impulseModeGui.value_(1) }.defer} + {~impulsemode == 2 }{{~impulseModeGui.value_(2) }.defer} // BUTTON X ----> toggle fx @@ -392,7 +630,6 @@ OSCFunc.trace(false); // Turn posting off ); }); - ~gtrIn.set(\out, ~ringModBus); @@ -425,13 +662,20 @@ OSCFunc.trace(false); // Turn posting off }); // BUTTON X ----- G PANNING MODE + // TODO FIX MAPPINGS - GUI AND REALITY DO NOT MATCH if (msg[16]==1, { - ( ~btn7val = (~btn7val + 1) % 3 ) ; + ( ~btn7val = (~btn7val + 1) % 9 ) ; switch( ~btn7val, - 0, { ~gpanmode = 0 ; "PAN STEREO".postln; }, - 1, { ~gpanmode = 1 ; "PAN QUAD ROTATIONS".postln; }, - 2, { ~gpanmode = 2 ; "PAN RANDOM QUAD".postln; }, + 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 }, ) }); @@ -486,11 +730,11 @@ OSCFunc.trace(false); // Turn posting off 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 0".postln; { ~pitchModeGui.value_(2) }.defer }, - 3, { ~pitchmode = 3; "pitch array 0".postln; { ~pitchModeGui.value_(3) }.defer }, - 4, { ~pitchmode = 4; "pitch array 2".postln; { ~pitchModeGui.value_(4) }.defer }, - 5, { ~pitchmode = 5; "pitch array 3".postln; { ~pitchModeGui.value_(5) }.defer }, - 6, { ~pitchmode = 6; "pitch array 4".postln; { ~pitchModeGui.value_(6) }.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); @@ -532,9 +776,17 @@ OSCFunc.trace(false); // Turn posting off }); // SHIFT ONE LOGIC ENDS HERE ================ - } , '/keys'); +// } , '/keys'); + } , '/localhostInLevels'); + )); + + + +~gdurmode = 2; + + // ---------------------------------------------------- // LIVE CODE / PERFORMABLE PARAMETERS ///////////////// // ---------------------------------------------------- @@ -572,11 +824,11 @@ r.set(\overdub, 0.9); // overdub mode 0 - 0.99 - MAPPED TO SWITCH 4 ~channelmode = 1; -~ringMod.set(\in, 9); -~gtrIn.set(\out, 0); -~gtrIn.set(\out, ~ringModBus); -~gtrIn.set(\out, ~reverbBus); -~gtrIn.set(\out, [~reverbBus, ~ringModBus]); +//~ringMod.set(\in, 0); +//~gtrIn.set(\out, 0); +//~gtrIn.set(\out, ~ringModBus); +//~gtrIn.set(\out, ~reverbBus); +//~gtrIn.set(\out, [~reverbBus, ~ringModBus]); ~ringMod.set(\modulator, 77, \mulrate, 0.1); ~ringMod.set(\modulator, 0, \mulrate, 0); @@ -597,7 +849,8 @@ a = Scale.major; ///////////////////////////////////////////////// // ----------------------------------------------- - +~btn4val = 2; +~gdurmode = 4; // list all open ports // ----------------------------------------------- diff --git a/start_jackd.sh b/start_jackd.sh index 82cab05..ad37481 100755 --- a/start_jackd.sh +++ b/start_jackd.sh @@ -1,3 +1,5 @@ # /usr/bin/jackd -u -dalsa -dhw:USB -r44100 -p512 -n3 -S - /usr/bin/jackd -u -dalsa -r44100 -p256 -n3 -D -Chw:U192k -Phw:U192k +killall -9 jackd + +/usr/bin/jackd -u -dalsa -r44100 -p256 -n3 -D -Chw:U192k -Phw:U192k