; ------- 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=MID1B000qq Incoming1=MID1B000qq Incoming2=MID1B000qq Incoming3=Tim0TimT0008Click Up Incoming4=EnDi02 Incoming5=MID3 Incoming6=MID3 Name=New Preset Name0=Click Down upon knob movement Name1=Now Drag the mouse Name2=Set a Click Up timer Name3=Click Up Timer Name4=Project Start Center Knob Name5=Recenter Knob Name6=Release Recenter Options0=Actv01Stop00OutO00StMa00000020label0027__cmt>// debug 1 for debug 0 for normallabel000C__cmt>//zz=1label002D__cmt>// if we set to recenter, we do nothingif(za==1)noexecutelabel0006__cmt>label001E__cmt>// Manually set positionlabel0028__cmt>// Use Capture in outgoing actionslabel002C__cmt>// if you want to click at the desiredlabel0011__cmt>// locationlabel001C__cmt>// Horizontal locationuu=500label001A__cmt>// vertical locationvv=500label0006__cmt>label0033__cmt>// qq is local variable which means any valuelabel0012__cmt>// set to qqlabel0029__cmt>// first lets make sure we have notlabel002B__cmt>// already clicked. We use the globallabel002A__cmt>// variable ga (which is normally 0)label0030__cmt>// to determine if we have already clickedlabel0034__cmt>// if ga==1 then we alread clicked so we don'tlabel001C__cmt>// want to click againif(ga==1)noexecutelabel0031__cmt>// now set ga to 1 so next action will firega=1label003C__cmt>// below we captured the screen position. In this caselabel0040__cmt>// I'm on the left monitor which is to the left of my mainlabel0039__cmt>// monitor so the mouse position for x is negaativelabel0006__cmt>if(zz==1)label0035__log>Mouse move at x=%uu% and y=%vv% and click downlabel0006__cmt>if(zz==1)noexecute Options1=Actv01Stop00OutO00Dlay5:MillisStMa0000001Clabel0014__cmt>// recenteringif(za==1)noexecutelabel0041__cmt>// here we don't do anything unless we have already clickedif(ga==0)noexecutelabel004C__cmt>// We need to drag the mouse here left or right depending of the valuelabel003E__cmt>// qq we save the last value of qq in global variable gblabel0006__cmt>label002B__cmt>// This is for relative encoders onlylabel001E__cmt>//if qq>64 then rr=64-qqlabel001B__cmt>//if qq<64 then rr=qqlabel0006__cmt>label0031__cmt>// 2022-02-03 Added this for absolute knobslabel003E__cmt>// you need to center the knob for this to work properlylabel0048__cmt>// we will use the global variable "zb" as the last known positionlabel0017__cmt>// of the encoderrr=qq-zbzb=qqlabel0006__cmt>label0006__cmt>label0006__cmt>label0029__cmt>// add a multiplier. 3 in this caserr=rr*3label0033__cmt>// lets put a bit of delay on the drag actionlabel0006__cmt>if(zz==1)label0013__log>Dragging %rr%label0006__cmt>if(zz==1)noexecutelabel0006__cmt> Options2=Actv01Stop00OutO00StMa00000007label0014__cmt>// recenteringif(za==1)noexecutelabel0006__cmt>label003D__cmt>// This is used to automatically click up if no movmentlabel0032__cmt>// In this case we will set it up for 250 mslabel0006__cmt>if(zz==1)label001D__log>Starting one shot Timer Options3=Actv01Stop00OutO00StMa0000000Elabel003F__cmt>// set the click down variable ga back to 0 to set up forlabel0023__cmt>// next click and drag actionlabel002D__cmt>// only click up if previous click downif(ga==1)ga=0label002F__cmt>// forgot the outgoing action of click uplabel0006__cmt>label002E__cmt>// So I had to do some tweaking with thelabel002C__cmt>// multiplier to get it working right.label003A__cmt>// I also recommend you use relative encoder insteadlabel0037__cmt>// of absolute so that you don't have problems iflabel001E__cmt>// you get to end valueslabel0006__cmt>if(zz==1)label000E__log>Click Upif(zz==1)noexecute Options4=Actv01Stop00OutO00StMa00000001zb=64 Options5=Actv01Stop00OutO00StMa00000001za=1 Options6=Actv01Stop00OutO00StMa00000001za=0 Outgoing0=Mse3ButtonDown