From: Eugene Petkevich Date: Wed, 1 Jun 2022 16:27:11 +0000 (+0300) Subject: Add free functions X-Git-Url: https://git.zuelum.org/?a=commitdiff_plain;h=e1bd9520d853962808a40bf9fe0514f4093f8d2b;p=scprojects.git Add free functions --- diff --git a/extensions/classes/midimix.sc b/extensions/classes/midimix.sc index a64373b..ce8d9d4 100644 --- a/extensions/classes/midimix.sc +++ b/extensions/classes/midimix.sc @@ -107,7 +107,7 @@ MidiMix101 : MidiHandler { wheelStopTime = wheelLastTime; // MIDI out channel selector (back of the device) // velocity is the channel - MIDIdef.noteOn(\chanrot++name, {|...args| + MIDIdef.noteOn((\chanrot++name).asSymbol, {|...args| channel = args[0]; chanrot.value(*args); }, 14, srcID: idin); @@ -210,6 +210,19 @@ MidiMix101 : MidiHandler { "Шаҫиху готов к использованию 😊".postln; } + free { + [ + \chanrot, \mode, + \rangeControl, \biRangeControl, + \rotaryControl, \wheelControl, + \buttonDown, \buttonUp, + \wheelStart, \wheelStop + ].do{|prefix| + var defName = (prefix ++ name).asSymbol; + MIDIdef(defName).free; + }; + } + // == LED control led {|control, value=true| value = ledValues[value] ? value; diff --git a/extensions/classes/midipedals.sc b/extensions/classes/midipedals.sc index 8c39e19..b999387 100644 --- a/extensions/classes/midipedals.sc +++ b/extensions/classes/midipedals.sc @@ -27,11 +27,21 @@ MidiPedals : MidiHandler { "Нычосё и Щюҙуԉы готов к использованию 😊".postln; } + free { + [ + \sustain, \expression + ].do{|prefix| + var defName = (prefix ++ name).asSymbol; + MIDIdef(defName).free; + }; + } + } // test /* ~p = MidiPedals(); +~p.free; */ \ No newline at end of file diff --git a/extensions/classes/midiremotesl.sc b/extensions/classes/midiremotesl.sc index ae1041e..53f74ca 100644 --- a/extensions/classes/midiremotesl.sc +++ b/extensions/classes/midiremotesl.sc @@ -51,6 +51,15 @@ MidiRemote25SL : MidiHandler { "Кэдифу готов к использованию 😊".postln; } + free { + [ + \keyDown, \keyUp, \bend, \mod + ].do{|prefix| + var defName = (prefix ++ name).asSymbol; + MIDIdef(defName).free; + }; + } + } // test diff --git "a/\320\245\321\215\320\267\320\270\321\204\321\203/pedal-control.scd" "b/\320\245\321\215\320\267\320\270\321\204\321\203/pedal-control.scd" deleted file mode 100644 index 1a868f0..0000000 --- "a/\320\245\321\215\320\267\320\270\321\204\321\203/pedal-control.scd" +++ /dev/null @@ -1,76 +0,0 @@ -// MIDI pedals handler -// by Eugene Zuelum - -( -~pedalFactory = { - var pedal = Environment[ - \version -> "33.7.3.4" - ]; - - pedal.know = true; - - // Sustain pedal on/off - MIDIdef.cc(\midiPedalSustain, { |...args| - if (args[0] != 0, { - pedal.suDown(*args); - }, { - pedal.suUp(*args); - }); - }, - 65, 3); - // M-Audio Exp-M pedal (values range from 0 to 118 only) - MIDIdef.cc(\midiPedalExpression, { |...args| - var normed; - // m-audio - normed = args[0].linlin(0, 118, 0, 1); - pedal.xePres(normed, *args); - }, - 64, 3); - - pedal.freeDefs = { |zi| - MIDIdef(\midiPedalSustain).free; - MIDIdef(\midiPedalExpression).free; - }; - - "Нычосё и Щюҙуԉы готовы к использованию 😊".postln; - - pedal; -}; -) - -//============================================================================= Testing - -// Test incoming MIDI messages -/* -( -MIDIdef.cc(\testcc, {|...args| -(["cc"] ++ args).postln; -}); -MIDIdef.noteOn(\testnoteon, {|...args| -(["note on"] ++ args).postln; -}); -MIDIdef.noteOff(\testnoteoff, {|...args| -(["note off"] ++ args).postln; -}); -MIDIdef.touch(\testtouch, {|...args| -(["touch"] ++ args).postln; -}); -MIDIdef.polytouch(\testpolytouch, {|...args| -(["polytouch"] ++ args).postln; -}); -MIDIdef.bend(\testbend, {|...args| -(["bend"] ++ args).postln; -}); -MIDIdef.sysex(\testsysex, {|...args| -(["sysex"] ++ args).postln; -}); -) -*/ - -// Test library -/* -~pe = ~pedalFactory.value; -~pe.suUp = {"up".postln}; -~pe.suDown = {"down".postln}; -~pe.xePres = {|zi, val| val.postln}; -*/