; ------- Bome MIDI Translator: signed project file
; ------- You can modify this file as you like, but that will invalidate the
; ------- signature so that it cannot be opened in the BomeBox or MT Player anymore.
;
[Preset.0]
Active=1
Comments=
Incoming0=EnDi02
Incoming1=KAM10000KSQ1000201B21B
Incoming2=Tim0TimT0004Init
Incoming3=MID3
Name=Init
Name0=Project Opened
Name1=ESC Init
Name2=Set Globals
Name3=Swallow Aftertouch
Options0=Actv01Stop00OutO00
Options1=Actv01Stop00OutO00
Options2=Actv01Stop00OutO00StMa0000002Alabel002C__cmt>// Type of control -1=none 1=note 2=ccga=-1label0018__cmt>// gb MIDI Channelgb=0label0019__cmt>// Note or cc valuegc=0label0015__cmt>// down countergd=0label0013__cmt>// up counterge=0label002E__cmt>// 1=press and hold 2= press and releaselabel003D__cmt>// 3= double press and hold 4= double press and releaselabel0028__cmt>// 5= release after press and holdlabel002F__cmt>// 6= release after double press and holdgf=0label0006__cmt>label001A__cmt>// last note pressedgg=0label0006__cmt>label0028__cmt>// At the end of this gf = gesturelabel001F__cmt>// ga is the control typelabel001F__cmt>// gb is the MIDI channellabel0021__cmt>// gc is the control numberlabel0017__cmt>// gf is gestuirelabel0019__cmt>// 1= down and holdlabel0018__cmt>// 2= single presslabel0020__cmt>// 3= double down and holdlabel0018__cmt>// 4= double presslabel0027__cmt>// 5= release after down and holdlabel002E__cmt>// 6= release after double down and holdlabel0018__cmt>// 7= triple presslabel0021__cmt>// 8= triple press and holdlabel002E__cmt>// 9= relase after triple press and holdlabel0006__cmt>label0006__cmt>label0016__cmt>// button 1 noteg0=0label0014__cmt>// button 2 ccg1=1label0016__cmt>// button 3 noteg2=2label0006__cmt>
Options3=Actv01Stop01OutO00
Outgoing0=Tim0TimS0004Init1:0:1
Outgoing1=Tim0TimS0004Init1:0:1
Outgoing2=None
Outgoing3=None
PresetSwitchIgnore=0
[Preset.1]
Active=1
Comments=
DefaultInPorts=MIDA0001000DMy Controller
DefaultOutPorts=MIDA0001000BApplication
Incoming0=MID1ooppqq
Incoming1=MID1oopp
Incoming10=Tim0TimT0012Gesture Dispatcher
Incoming11=Tim0TimT0012Gesture Dispatcher
Incoming12=Tim0TimT0012Gesture Dispatcher
Incoming13=Tim0TimT0012Gesture Dispatcher
Incoming14=Tim0TimT0012Gesture Dispatcher
Incoming15=None
Incoming16=Tim0TimT0012Gesture Dispatcher
Incoming17=Tim0TimT0012Gesture Dispatcher
Incoming18=Tim0TimT0012Gesture Dispatcher
Incoming19=MID3----------------------------------------------------
Incoming2=Tim0TimT0008Evaluate
Incoming20=Tim0TimT0012Gesture Dispatcher
Incoming21=Tim0TimT0012Gesture Dispatcher
Incoming22=Tim0TimT0012Gesture Dispatcher
Incoming23=Tim0TimT0012Gesture Dispatcher
Incoming24=Tim0TimT0012Gesture Dispatcher
Incoming25=Tim0TimT0012Gesture Dispatcher
Incoming26=Tim0TimT0012Gesture Dispatcher
Incoming3=None
Incoming4=Tim0TimT0012Gesture Dispatcher
Incoming5=Tim0TimT0012Gesture Dispatcher
Incoming6=Tim0TimT0012Gesture Dispatcher
Incoming7=MID3----------------------------------------------------
Incoming8=Tim0TimT0012Gesture Dispatcher
Incoming9=Tim0TimT0012Gesture Dispatcher
Name=Gesture Manager
Name0=3 Byte Button Press
Name1=2 Byte Button Press
Name10=Double Press and hold button one
Name11=Release after Double Press and hold button one
Name12=Triple Press button one
Name13=Triple Press and hold button one
Name14=Release after Triple Press and hold button one
Name15=--- Second Note ----------------------------------------------------
Name16=Single Press button two
Name17=Press and Hold button two
Name18=Release after Press and Hold button two
Name19=The below translators handle note-and then note-off after a delay
Name2=Set Gesture
Name20=Double Press button two - Note On
Name21=Double Press button two - Note Off
Name22=Double Press and hold button two
Name23=Release after Double Press and hold button two
Name24=Triple Press button two
Name25=Triple Press and hold button two
Name26=Release after Triple Press and hold button two
Name3=--- First Note -----------------------
Name4=Single Press button one
Name5=Press and Hold button one
Name6=Release after Press and Hold button one
Name7=The below translators handle note-and then note-off after a delay
Name8=Double Press button one - Note On
Name9=Double Press button one - Note Off
Options0=Actv01Stop00OutO00StMa00000043label0034__cmt>// Must be same note or PC number as last timeif(pp==gg)goto0007Processlabel0027__cmt>// Capture new note for next timegg=pplabel001A__cmt>// Down counter to 1gd=1label0019__cmt>// Clear up counterge=0label0015__cmt>// clear gestergf=0noexecutelabel0006__cmt>label0007Processlabel001A__cmt>// determine controlgc=pplabel001F__cmt>// determine MIDI Channellabel0006__cmt>gb=oo&15label0006__cmt>label0025__cmt>// Look for note-on or note offrr=oo&224if(rr==128)ga=1if(rr==128)goto0004notelabel0006__cmt>label0014__cmt>// Look for CCrr=oo&176if(rr==176)ga=2if(rr==176)goto0002cclabel0006__cmt>label0002cclabel0016__cmt>// Press counterif(qq>0)gd=gd+1label0018__cmt>// Release Counterif(qq==0)ge=ge+1label0006__cmt>goto0004donelabel0006__cmt>label0004noterr=oo&240rr=rr>>4label0006__cmt>label001F__cmt>// increment down counterlabel0030__cmt>// if velocity is 0, then must be note offif(qq==0)sk2iplabel0011__cmt>// note offif(rr==8)skipgd=gd+1label0006__cmt>label0006__cmt>label0028__cmt>// increment up counter (note off)label0006__cmt>label0023__cmt>// If 8 or 9 with velocity 0label0006__cmt>label0029__cmt>// Zero velocity is always note offif(qq==0)ge=ge+1label002E__cmt>// if velocity 0, then don't do it againif(qq==0)skiplabel0042__cmt>// must be 8 with velocity > 0, also note off (AKA APC MINI)label0037__cmt>// APC MINI sents not off with velocity 7F for upif(rr==8)ge=ge+1label0006__cmt>label0006__cmt>label0006__cmt>label0006__cmt>label0006__cmt>label0006__cmt>label0004done
Options1=Actv00Stop00OutO00
Options10=Actv00Stop01OutO00StMa0000000Alabel0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g0)noexecutelabel0021__cmt>// single press and releaseif(gf!=3)noexecutegf=6
Options11=Actv00Stop00OutO00StMa00000009label0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g0)noexecutelabel0021__cmt>// single press and releaseif(gf!=6)noexecute
Options12=Actv00Stop00OutO00StMa00000009label0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g0)noexecutelabel0021__cmt>// triple press and releaseif(gf!=7)noexecute
Options13=Actv00Stop01OutO00StMa0000000Alabel0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g0)noexecutelabel001D__cmt>// triple press and hodif(gf!=8)noexecutegf=9
Options14=Actv00Stop00OutO00StMa00000009label0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g0)noexecutelabel002B__cmt>//release after triple press and holdif(gf!=9)noexecute
Options15=Actv00Stop00OutO00
Options16=Actv01Stop00OutO00StMa0000000Clabel0030__cmt>// Look for note if ga=1 2 then it is a CCif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0028__cmt>// Example below is MIDI Channel 9label0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel0046__cmt>// Note g0 (as set up in init global variables translator rules)label004E__cmt>// gc is the current note so if it is not for this translator, then skipif(gc!=g1)noexecutelabel0021__cmt>// single press and releaselabel0022__cmt>// gf is the type of gestureif(gf!=2)noexecute
Options17=Actv00Stop01OutO00StMa0000000Alabel0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g1)noexecutelabel0021__cmt>// single press and releaseif(gf!=1)noexecutegf=5
Options18=Actv00Stop00OutO00StMa00000009label0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g1)noexecutelabel0021__cmt>// single press and releaseif(gf!=5)noexecute
Options19=Actv00Stop00OutO00
Options2=Actv01Stop00OutO00StMa00000040label0035__cmt>// If down is 1 and up is 0 then press and holdif(gd!=1)skiplabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel0006__cmt>label001A__cmt>//if ge==0 then gf=1label0035__cmt>// if down is 1 and up is 0 then press and holdif(gd!=1)skipif(ge==0)gf=1label0038__cmt>// if down is 1 and up is 1 then press and releaseif(gd!=1)skipif(ge==1)gf=2label003C__cmt>// if down is 2 and up is 1 then double press and holdif(gd!=2)skipif(ge==1)gf=3label003F__cmt>// if down is 2 and up is 2 then double press and releaseif(gd!=2)skipif(ge==2)gf=4label003C__cmt>// if down is 3 and up is 2 then triple press and holdif(gd!=3)skipif(ge==2)gf=8label003F__cmt>// if down is 3 and up is 3 then triple press and releaseif(gd!=3)skipif(ge==3)gf=7pp=gflabel0006__cmt>label0024__cmt>// release after down and holdif(gf!=1)skipif(gd==ge)pp=5label0006__cmt>label0006__cmt>label002B__cmt>// release after double down and holdif(gf!=3)skipif(gd==ge)pp=6label0006__cmt>label002C__cmt>// release after triple press and holdif(gf!=8)skipif(gd==ge)pp=9label0006__cmt>gf=pplabel0006__cmt>label0011__cmt>// Set backlabel0006__cmt>gd=0ge=0label0006__cmt>label0028__cmt>// At the end of this gf = gesturelabel001F__cmt>// ga is the control typelabel001F__cmt>// gb is the MIDI channellabel0021__cmt>// gc is the control numberlabel0017__cmt>// gf is gestuirelabel0019__cmt>// 1= down and holdlabel0018__cmt>// 2= single presslabel0020__cmt>// 3= double down and holdlabel0018__cmt>// 4= double presslabel0027__cmt>// 5= release after down and holdlabel002E__cmt>// 6= release after double down and holdlabel0018__cmt>// 7= triple presslabel0022__cmt>// 8= tripple press and holdlabel002E__cmt>// 9= relase after triple press and holdlabel0006__cmt>label0006__cmt>label0006__cmt>
Options20=Actv01Stop00OutO00StMa00000009label0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g1)noexecutelabel0021__cmt>// single press and releaseif(gf!=4)noexecute
Options21=Actv01Stop00OutO00Dlay250:MillisStMa00000009label0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g1)noexecutelabel0021__cmt>// single press and releaseif(gf!=4)noexecute
Options22=Actv00Stop01OutO00StMa0000000Alabel0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g1)noexecutelabel0021__cmt>// single press and releaseif(gf!=3)noexecutegf=6
Options23=Actv00Stop00OutO00StMa00000009label0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g1)noexecutelabel0021__cmt>// single press and releaseif(gf!=6)noexecute
Options24=Actv00Stop00OutO00StMa00000009label0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g1)noexecutelabel0021__cmt>// triple press and releaseif(gf!=7)noexecute
Options25=Actv00Stop01OutO00StMa0000000Alabel0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g1)noexecutelabel001D__cmt>// triple press and hodif(gf!=8)noexecutegf=9
Options26=Actv00Stop00OutO00StMa00000009label0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g1)noexecutelabel002B__cmt>//release after triple press and holdif(gf!=9)noexecute
Options3=Actv00Stop00OutO00
Options4=Actv01Stop00OutO00StMa0000000Clabel0030__cmt>// Look for note if ga=1 2 then it is a CCif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0028__cmt>// Example below is MIDI Channel 9label0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel0046__cmt>// Note g0 (as set up in init global variables translator rules)label004E__cmt>// gc is the current note so if it is not for this translator, then skipif(gc!=g0)noexecutelabel0021__cmt>// single press and releaselabel0022__cmt>// gf is the type of gestureif(gf!=2)noexecute
Options5=Actv00Stop01OutO00StMa0000000Alabel0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g0)noexecutelabel0021__cmt>// single press and releaseif(gf!=1)noexecutegf=5
Options6=Actv00Stop00OutO00StMa00000009label0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g0)noexecutelabel0021__cmt>// single press and releaseif(gf!=5)noexecute
Options7=Actv00Stop00OutO00
Options8=Actv01Stop00OutO00StMa00000009label0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g0)noexecutelabel0021__cmt>// single press and releaseif(gf!=4)noexecute
Options9=Actv01Stop00OutO00Dlay250:MillisStMa00000009label0016__cmt>// Look for noteif(ga!=1)noexecutelabel002F__cmt>// uncomment below to target MIDI channellabel0023__cmt>// otherwise any MIDI channellabel0036__cmt>//if gb!=8 then exit rules, skip outgoing actionlabel000D__cmt>// Noteif(gc!=g0)noexecutelabel0021__cmt>// single press and releaseif(gf!=4)noexecute
Outgoing0=Tim0TimS0008Evaluate1:300:1
Outgoing1=None
Outgoing10=MID3
Outgoing11=MID3
Outgoing12=MID3
Outgoing13=MID3
Outgoing14=MID3
Outgoing15=None
Outgoing16=MID3
Outgoing17=MID3
Outgoing18=MID3
Outgoing19=None
Outgoing2=Tim0TimS0012Gesture Dispatcher1:0:1
Outgoing20=MID3
Outgoing21=MID3
Outgoing22=MID3
Outgoing23=MID3
Outgoing24=MID3
Outgoing25=MID3
Outgoing26=MID3
Outgoing3=None
Outgoing4=MID3
Outgoing5=MID3
Outgoing6=MID3
Outgoing7=None
Outgoing8=MID3
Outgoing9=MID3
PresetSwitchIgnore=0
[Project]
Author=Steven J. Caldwell
AuthorContact=bome@sniz.biz
AuthorCopyright=2021
Comments=To manage gestures of controllers that send notes or CC. Only one button can be pushed at a time.\nHandles:\nsingle press and release\nsingle press and hold\nrelease after single press and hold\ndouble press and release\ndouble press and hold\nrelease after double press and hold.\nDisable any translators that you don't want to take action.\nSet incoming type (note or cc) and which cc or note (0-127) for action.\n
DefaultInPorts=MIDA0001000DMy Controller
DefaultOutPorts=MIDA00010022Bome MIDI Translator 1 Virtual Out
Version=2
[Signatures]
SigName-1=[Midi Translator Pro Internal]
Signature-1=rwYSzwo/nfX5nnAeLxVlcRclQbB85q2unEn8EU3EgO2B3c2FIZe38V+IeZ4nM7e1YA9r9uPHARdnyGQq5Uoye2eHwzB1/fUtce0qvZCn9NGgDgwsJlOin4xxBXXp1RcnEHIwe5hGQPTS05sH5a390UnfKg2EMGynDLBkfxTHDC8=
SignedBy-1=Steve Caldwell