«just a start with Livid BASE» by moncrey
on 22 Sep'14 21:05 ingetting livid base communicating.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
LividBASE{ classvar <>defKeys,<>defMap,<>base,<>baseOut,<>baseIn; *init{ arg settings; this.defKeys = [\slider1,\btn1,\scene1,\scene1LEDs,\pad1]; this.defMap = Dictionary[ \slider1 ->1, \btn1-> 10, \scene1 -> 18, \scene1LEDs -> #[18,26], \pad1 ->36 ]; settings.do{|a| if(a != nil && a.size==2, {this.defMap.put(a[0],a[1])} ) }; this.initMIDI; } *initMIDI{ var baseFound=false; if(MIDIClient.initialized==false,{MIDIClient.init}); MIDIClient.sources.do{|a,b| if( baseFound==false && a.device == "Base" && a.name == "Controls", { baseFound=true; this.base = b; this.baseIn=MIDIIn(b); this.baseOut = MIDIOut.newByName("Base","Controls"); } ) }; if(this.base == nil, {Post << "BASE not found! base=="<< this.base << Char.nl}, { // generic midi func MIDIFunc.noteOn({arg val,num,chan,src; val.postln;"ooo".postln;}); MIDIFunc.noteOff({arg val,num,chan,src; val.postln;}); // MIDIFunc({}, // give a confirmation light show //this.mapToNotes this.hiBASE; } ); } /* "BASE FOUND!" LED sequence */ *hiBASE{ var seq=Pbind( \type, \midi, \chan, 16, \midiout, this.baseOut, \midinote,Pseq(this.defMap.at(\pad1)+(0..31)), \dur,0.007//Pbrown(0.1,0.6,length:32) ).play; } }
reception
comments