make shift functions with 8 buttons

Hi guys is it possable to make like shift functions so i can asign multipul controls to the same buttons. Like changing the midi channel with the press of a button to get more layers out of my xone db4. i have included a file i made that says it is changing the channel how ever the midi notes are not changing. any help would be much appreated


Attachments:
1586415993806_Xone-4D-Channle-change.bmtp

By the way I’m using rekordbox

Hi,

The way it is written is for you to set the MIDI channel and then send the note with 1 keypress.

For example note 59 will set MIDI Channel 8 in the first translator and then send on MIDI Channel 8 later down the list.  I think you want to use a different note held down as a shift function.

Also you have your first translator mis-labled as MIDI Channel 7.

Also you are sending note number pp and value qq with each translator yet, pp and qq are local variables therefore their value is "undefined" until you define them.

 

Here are the changes I made.

1)  Added a note-on translator as a shift function to set the global variable ga to 1. Since I don't know the MIDI note you are using for shift on your Xone, I used the global variable gb. You can change the note number in the Init preset, set global variables translator.

2) Added a note-off translator to set variable ga to 0. Again I used gb as the note number so that when you release the button ga is note 0

3) Changed the channel select translators with a new rule in front (if ga==0 then exit rules, skip outgoing action). Now these translators will only change g0 if shift is down (ga==1).

4) Changed the note out translators with the new rule in front (if ga==1 then exit rules, skip outgoing action). Now these translators will only fire if your shift key is released

5) fixed all note out translators so they capture the incoming note value as pp and the incoming note velocit as qq. This way the local variables pp and qq will be in a known state so your output note values and velocities should be the same as your incoming note values and velocity. Of course the outgoing channel will be the one you selected when pressing the note with shift.

If you don't want to use a global variable as a shift function (requireing changing rules all translators), instead you can put all of your shift translators in one preset and all of you unshifted translators in another preset and then instead of changing ga and having each translator look at ga, just have the shift on output enable only the shifted preset and shift-off enable only the unshifted preset as shown in the tutorial below:

https://youtu.be/x89ok46Hqtc

 

The global variable shift layer method is shown in te below tu

 

https://youtu.be/yAUPIMroCGE

 

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

 


Attachments:
1586442455548_Xone-4D-Channle-change-sjc.bmtp

Thankyou for getting back to me Steve I’m sorry but I’m getting very confused with what I need to do. I have got your revised mapping from above and got it working Thankyou how ever this is what I’m trying to achieve. I want to toggle the shift button so when I press button one I can use my 8 buttons underneath to fire hot cues. Then if I toggle shift button 2 I can use the same 8 buttons underneath to fire pad fx then I can toggle shift button 3 and the same 8 buttons will fire auto loops etc. it seems on my xone it has a shift function that when I press it it changes channel and then I can use those buttons for a second set of things. How ever it changes the midi note from say 9f 24 to 9e 24 so I can map the button to different things. But I’m not sure this mapping I have done and you have fixed will solve my problem. Do you see what I mean.

Well it appears that this controller has it's own "shift" function built in. I'm not sure if the controller's shift buttons send MIDI information. If you want MT Pro to handle shift for you instead of using the controller's internal shift, it have to be with a button on your controller that sends some sort of MIDI information. As far as I can tell with looking at your controller manual, the internal shift button simply moves the MIDI channel 1 down from the default unless the default is MIDI channel one in which case it moves 1 channel up.

9f 24 is note 36(24 hex) on MIDI channel 15 (the f in 9f).

9e 24 is note 36(24 hex on MIDI channel 14 (the e in 9e).

So the note numbers are the same but the MIDI channel is indeed as the manual describes.

0=MIDI CH 1

1= MIDI CH 2

...

A= MIDI CH 11

B= MIDI CH 12

...

F= MIDI CH 16

 

So your choice is to use the internal shift mechanism on the controller or find another button or set of buttons that send MIDI to use MT Pro handle the shifting for you.

 

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

 

So can I have multiple shift buttons? Toggle button one and messages go out channel 16 toggle button 2 and messages go out channel 15. Is that all shift does change the channel so the same button can have multiple uses. If so will the revised mapping you sent back to me work or have I gone about it all the wrong way. As I need it to be push one button and use the pads for one thing then push another button then use the same pads for something else

So can I have multiple shift buttons? Toggle button one and messages go out channel 16 toggle button 2 and messages go out channel 15. Is that all shift does change the channel so the same button can have multiple uses. If so will the revised mapping you sent back to me work or have I gone about it all the wrong way. As I need it to be push one button and use the pads for one thing then push another button then use the same pads for something else

SJC> Most of the time, users use a single shift button to switch all others between layers but if you have multiple layers you can use different buttons to switch to different MIDI channels. Or you can use a single shift button and increment or decrement through the channel selection.
The beauty of MT Pro is just about anything is possible and with the right programming is limited only by the user imagination. I did a project for a user that had only 16 buttons but we used a few to select layers so he was able to use these 16 buttons to provide 96 (if I remember right) note messages. In addition I was able to send note information to the 16 LEDs on his controller to indicate what layer he was currently. I think we use 4 buttons to navigate the layers.

The tutorials I think I posted earlier show the basics on how this can be done with preset changes (one method) or global variables (another method). Each method has it’s advantages and disadvantages.

Steve Caldwell

Bome Q and A Moderator and

Independent Bome Consultant/Specialist

bome@sniz.biz

Steve in the map you sent me in the init section could you please advise me about the initial out put channel as mine is 16 should I put that there
Then g0=0
Shift flag
ga=0
Will those g0 and ga still be 0?
Shift note number is the number of the shift button I get that.
Now when I press shift and say the first button that uses channel one the other 7 buttons above all play out of channel one but I have another 16 buttons under that that I want to come out of channel one. Then when I shift to channel 2 I want all those buttons to be on channel 2 as well. So basically I want to copy the configuration of a pioneer controller. The top four buttons on both sides shift the channel then the bottom 8 become the pads. Will I have to add all the button with individual commands like the 8 incoming and 8 out going like you have done?
Sorry I’ve read the manual and watched the videos but I’m dyslexic so the numbers are quite tricky for me

Steve in the map you sent me in the init section could you please advise me about the initial out put channel as mine is 16 should I put that there Then g0=0 Shift flag ga=0 Will those g0 and ga still be 0?

SJC> Yes, change g0=0 to g0=15 (which is MIDI channel 16). The flag ga simple tells the translators whether you are holding the shift button down (ga=1) or up (ga=0) so only the translators you want to fire output do so. With ga=1 only the first translators will fire (setting the channel). With ga=0 the notes will pass through to the currently set channel. What I don\'t know is
1) Whether your shift buttons send any MIDI
2) Whether your shift buttons are momentary or toggle (I\'m assuming momentary in the project file I sent you)

Shift note number is the number of the shift button I get that. Now when I press shift and say the first button that uses channel one the other 7 buttons above all play out of channel one but I have another 16 buttons under that that I want to come out of channel one. Then when I shift to channel 2 I want all those buttons to be on channel 2 as well. So basically I want to copy the configuration of a pioneer controller. The top four buttons on both sides shift the channel then the bottom 8 become the pads. Will I have to add all the button with individual commands like the 8 incoming and 8 out going like you have done? Sorry I’ve read the manual and watched the videos but I’m dyslexic so the numbers are quite tricky for me

SJC> I think I know what you want but not sure what MIDI the shift buttons send or whether they are momentary or toggle. Perhaps you should just use the native function of the Xone controller and put in translators like this

Incoming: Note-on any channel set to oo any note set to pp any velocity set to qq
Rules:
if oo==16 then rr=0
if oo==15 then rr=1
Outgoing Note-on channel rr note pp and velocity qq

Incoming: Note-off any channel set to oo any note set to pp any velocity set to qq
Rules:
if oo==16 then rr=0
if oo==15 then rr=1
Outgoing Note-off channel rr note pp and velocity qq

Then when you press the Xone native shift function it will send on MIDI CH2 and without shift, on MIDI CH1.

 

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

Ok Steve I now have your mapping working perfectly. I hold down shift press button one and it shifts the channel to channel 1 from 16 and so one with button 2 ect. Now how do I add buttons to that shift function so when I press that button one it groups the 16 buttons underneath to send out midi to channel one. I don’t need more shift buttons as I have 8 channels I can shift to but I need to add the buttons to be sent to those channels if you know what I mean

Could you post your project file. I’ll have a look.

Hi Steve this is the new file


Attachments:
1586565394661_Xone-4D-Half-way.bmtp

Ok Steve I now have your mapping working perfectly. I hold down shift press button one and it shifts the channel to channel 1 from 16 and so one with button 2 ect. Now how do I add buttons to that shift function so when I press that button one it groups the 16 buttons underneath to send out midi to channel one. I don’t need more shift buttons as I have 8 channels I can shift to but I need to add the buttons to be sent to those channels if you know what I mean

 

SJC> OK, now that you have native shift handling the output channel, you need to also make sure the incomine message can be on either MIDI CH 15 or 16.

I changed translator 10 to allow any channel set to oo. Then qualified the incoming channel to either value of 14 or 15 (since the Xone is sending on those channels with output on the selected channel (ga).

You will need to change the rest to map.

I also noticed you had the incoming shift hardcoded at note 56 which is the same value as gb to I changed that or you can just eliminate the global variable gb if you would like and then leave translators 0 and 1 hard coded to note 56.

 

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

 


Attachments:
1586573442111_Xone-4D-Half-way-sjc.bmtp

No I’m not using the native shift as it is a button you hold for 3 seconds then it just shifts the hole mixer to midi channel 15 it’s very slow. I’m still using your way of hold the shift button down then hit button 1 to activate sending to channel one ect but I just want to add more buttons. So the top row of 8 buttons shift select the channel. Then the banks of 8 buttons underneath send out to the channel selected from above. So the top 8 are selecting the channel but now I need the bottom ones to send to the same channel. I’ll keep trying sorry to be so hopeless at it.

Hi Steve after playing around i have added 8 more buttons to the mapping. I just duplicated the actions and captured the midi for each then changed the setting to match the others. In BMT it looks like it is working and send the midi notes out throughthe shifted and selected channles. could you please check what i have done. however when i go into rekordbox i select virtual midi 1 in rekordbox then when i go to map it it looks like it is going to work as it gets the correct midi notes when i map it but nothing in rekordbox works. do i have my imports correct or is there a trick to making it work? ill attach the new file thanks for your help.

I can’t tell you how to configure RekordBox. I can just advise and providing the output you want from MT Pro. You will need to check with RekordBox on how to map your new buttons.

One thing I noticed with most Pioneer controllers is they use other USB end points outside of MIDI on the same USB cable. so it is possible you may not be able to 100% emulate a Pioneer device. If you re-post your latest file. I can certainly look if it is sending the correct MIDI to what you wanted to accomplish. I just can’t tell you how RekordBox will react to your device.

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

This  appears to be workinh in bome but i must no have it right in rekordbox


Attachments:
1586638624326_Xone-4D-Half-way-8-pads.bmtp

Yes, as I say Pioneer often goes beyond standard MIDI on their controller and has other means of identifying and/or controlling the device outside of MIDI. You will need to talk to them about that but not sure if they will help you unless you are interfacing to a Pioneer device proper.

so bome is not rekognised by rekordbox? nothing will running through it now

Ok I’ll try running through an alias midi port named after a Ddj controller and see if that works. Can I route midi from xone to virtual midi 1 then from the back out through xone some how in the routings. That way rekordbox thinks it’s still my xone connected?