Created
April 3, 2012 19:23
-
-
Save LFSaw/2294886 to your computer and use it in GitHub Desktop.
AS pole
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
( | |
q = q ? (); | |
MIDIMKtl.find; | |
q.nnkns = [ | |
MIDIMKtl(\nnkn20), | |
MIDIMKtl(\nnkn21), | |
MIDIMKtl(\nnkn22), | |
]; | |
q.nnkns.do{|ktl| | |
ktl.midiOut.latency = 0; | |
}; | |
q.setKtlVerbose = {|q, state = true| | |
q.nnkns.do{|ktl| | |
ktl.verbose_(state); | |
}; | |
}; | |
/* | |
q.setKtlVerbose(true); | |
q.setKtlVerbose(false); // */ | |
{ | |
var gainSlider = \sl8; | |
var wetSlider = \sl7; | |
var freqEQKnob = \kn8; | |
var paraEQKnob = \kn7; | |
var higBut = \bs8; | |
var midBut = \bm8; | |
var lowBut = \br8; | |
var state = \vol!3; | |
q.nnkns.do{|nnkn, i| | |
// toggle | |
nnkn.addFuncElem(higBut, \toggle, {|elem| | |
(elem.value == 1).if({ | |
state[i] = \hig | |
}, { | |
state[i] = \vol | |
}) | |
}); | |
nnkn.addFuncElem(midBut, \toggle, {|elem| | |
(elem.value == 1).if({ | |
state[i] = \mid | |
}, { | |
state[i] = \vol | |
}) | |
}); | |
nnkn.addFuncElem(lowBut, \toggle, {|elem| | |
(elem.value == 1).if({ | |
state[i] = \low | |
}, { | |
state[i] = \vol | |
}) | |
}); | |
// wet | |
nnkn.addFuncElem(wetSlider, \adjust, {|elem| | |
q.wets[i] = \wets.asSpec.map(elem.value); | |
Ndef(\postAuxMix).setn(\wets, q.wets, \t_poll, 1) | |
}); | |
// gainSlider | |
nnkn.addFuncElem(gainSlider, \adjust, {|elem| | |
switch(state[i], | |
\hig, { | |
q.higGain[i] = \higGain.asSpec.map(elem.value).postln; | |
Ndef(\preAuxMix).setn(\higGain, q.higGain, \t_poll, 0); | |
}, | |
\mid, { | |
q.midGain[i] = \midGain.asSpec.map(elem.value).postln; | |
Ndef(\preAuxMix).setn(\midGain, q.midGain, \t_poll, 0); | |
}, | |
\low, { | |
q.lowGain[i] = \lowGain.asSpec.map(elem.value).postln; | |
Ndef(\preAuxMix).setn(\lowGain, q.lowGain, \t_poll, 0); | |
}, | |
\vol, { | |
q.postGains[i] = \postGains.asSpec.map(elem.value).postln; | |
Ndef(\postAuxMix).setn(\postGains, q.postGains, \t_poll, 0); | |
} | |
) | |
}); | |
// freqEQKnob | |
nnkn.addFuncElem(freqEQKnob, \adjust, {|elem| | |
switch(state[i], | |
\hig, { | |
q.higFreq[i] = \higFreq.asSpec.map(elem.value); | |
Ndef(\preAuxMix).setn(\higFreq, q.higFreq, \t_poll, 0); | |
}, | |
\mid, { | |
q.midFreq[i] = \midFreq.asSpec.map(elem.value); | |
Ndef(\preAuxMix).setn(\midFreq, q.midFreq, \t_poll, 0); | |
}, | |
\low, { | |
q.lowFreq[i] = \lowFreq.asSpec.map(elem.value); | |
Ndef(\preAuxMix).setn(\lowFreq, q.lowFreq, \t_poll, 0); | |
}, | |
\vol, { | |
q.preGains[i] = \preGains.asSpec.map(elem.value).postln; | |
Ndef(\preAuxMix).setn(\preGains, q.preGains, \t_poll, 0); | |
} | |
) | |
}); | |
// paraEQKnob | |
nnkn.addFuncElem(paraEQKnob, \adjust, {|elem| | |
switch(state[i], | |
\hig, { | |
q.higPara[i] = \higPara.asSpec.map(elem.value); | |
Ndef(\preAuxMix).setn(\higPara, q.higPara, \t_poll, 0); | |
}, | |
\mid, { | |
q.midPara[i] = \midPara.asSpec.map(elem.value); | |
Ndef(\preAuxMix).setn(\midPara, q.midPara, \t_poll, 0); | |
}, | |
\low, { | |
q.lowPara[i] = \lowPara.asSpec.map(elem.value); | |
Ndef(\preAuxMix).setn(\lowPara, q.lowPara, \t_poll, 0); | |
}, | |
\vol, { | |
q.otherGain[i] = \otherGain.asSpec.map(elem.value); | |
Ndef(\postAuxMix).setn(\otherGain, q.otherGain, \t_poll, 0); | |
} | |
) | |
}); | |
} | |
}.value; | |
////////////////////////////////// | |
{ | |
// redux | |
var gainSlider = \sl1; | |
var foldKnob = \kn1; | |
var bitBut = \bs1; | |
var state = \vol!3; | |
q.nnkns.do{|nnkn, i| | |
// toggle | |
nnkn.addFuncElem(bitBut, \toggle, {|elem| | |
(elem.value == 1).if({ | |
state[i] = \bit | |
}, { | |
state[i] = \vol | |
}) | |
}); | |
// gainSlider | |
nnkn.addFuncElem(gainSlider, \adjust, {|elem| | |
switch(state[i], | |
\bit, { | |
q.reduxBits[i] = \reduxBits.asSpec.map(elem.value); | |
Ndef(\redux).setn(\bits, q.reduxBits, \t_poll, 0); | |
}, | |
\vol, { | |
q.reduxVolume[i] = \vol.asSpec.map(elem.value); | |
Ndef(\redux).setn(\vol, q.reduxVolume, \t_poll, 0); | |
} | |
) | |
}); | |
// foldKnob | |
nnkn.addFuncElem(foldKnob, \adjust, {|elem| | |
switch(state[i], | |
\bit, { | |
q.reduxDownsamp[i] = \reduxDown.asSpec.map(elem.value); | |
Ndef(\redux).setn(\downsamp, q.reduxDownsamp, \t_poll, 0); | |
}, | |
\vol, { | |
q.reduxFold[i] = \foldFac.asSpec.map(elem.value); | |
Ndef(\redux).setn(\foldfac, q.reduxFold, \t_poll, 0); | |
} | |
) | |
}); | |
} | |
}.value; | |
////////////////////////////////// | |
{ | |
// klank | |
var gainSlider = \sl2; | |
var foldKnob = \kn2; | |
var bitBut = \bs2; | |
var state = \vol!3; | |
q.nnkns.do{|nnkn, i| | |
// toggle | |
nnkn.addFuncElem(bitBut, \toggle, {|elem| | |
(elem.value == 1).if({ | |
state[i] = \bit | |
}, { | |
state[i] = \vol | |
}) | |
}); | |
// gainSlider | |
nnkn.addFuncElem(gainSlider, \adjust, {|elem| | |
switch(state[i], | |
\bit, { | |
q.klankBaseFreq[i] = \baseFreq.asSpec.map(elem.value); | |
Ndef(\klank).setn(\baseFreq, q.klankBaseFreq, \t_poll, 0); | |
}, | |
\vol, { | |
q.klankVolume[i] = \vol.asSpec.map(elem.value); | |
Ndef(\klank).setn(\vol, q.klankVolume, \t_poll, 0); | |
} | |
) | |
}); | |
// foldKnob | |
nnkn.addFuncElem(foldKnob, \adjust, {|elem| | |
switch(state[i], | |
\bit, { | |
q.klankSpread[i] = \spread.asSpec.map(elem.value); | |
Ndef(\klank).setn(\spread, q.klankSpread, \t_poll, 0); | |
}, | |
\vol, { | |
q.klankFold[i] = \foldFac.asSpec.map(elem.value); | |
Ndef(\klank).setn(\foldfac, q.klankFold, \t_poll, 0); | |
} | |
) | |
}); | |
} | |
}.value; | |
{ | |
// pShift | |
var gainSlider = \sl3; | |
var foldKnob = \kn3; | |
var bitBut = \bs3; | |
var state = \vol!3; | |
q.nnkns.do{|nnkn, i| | |
// toggle | |
nnkn.addFuncElem(bitBut, \toggle, {|elem| | |
(elem.value == 1).if({ | |
state[i] = \bit | |
}, { | |
state[i] = \vol | |
}) | |
}); | |
// gainSlider | |
nnkn.addFuncElem(gainSlider, \adjust, {|elem| | |
switch(state[i], | |
\bit, { | |
q.pShiftShift[i] = \pShift.asSpec.map(elem.value); | |
Ndef(\pShift).setn(\pShift, q.pShiftShift, \t_poll, 0); | |
}, | |
\vol, { | |
q.pShiftVolume[i] = \vol.asSpec.map(elem.value); | |
Ndef(\pShift).setn(\vol, q.pShiftVolume, \t_poll, 0); | |
} | |
) | |
}); | |
// foldKnob | |
nnkn.addFuncElem(foldKnob, \adjust, {|elem| | |
switch(state[i], | |
\bit, { | |
q.pShiftWindow[i] = \pWindowSize.asSpec.map(elem.value); | |
Ndef(\pShift).setn(\pWindowSize, q.pShiftWindow, \t_poll, 0); | |
}, | |
\vol, { | |
q.pShiftFold[i] = \foldFac.asSpec.map(elem.value); | |
Ndef(\pShift).setn(\foldfac, q.pShiftFold, \t_poll, 0); | |
} | |
) | |
}); | |
} | |
}.value; | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment