make shift functions with 8 buttons

djstudley

2020-04-09 09:10:23

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:

Xone 4D Channle change.bmtp

djstudley

2020-04-09 11:18:52

comment

By the way I’m using rekordbox

Steve-Bome Forum Moderator

2020-04-09 16:27:37

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:

Xone-4D-Channle-change-sjc.bmtp

djstudley

2020-04-10 00:33:31

comment

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.

Steve-Bome Forum Moderator

2020-04-10 00:55:10

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

 

djstudley

2020-04-10 04:04:27

comment

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

Steve-Bome Forum Moderator

2020-04-10 04:21:21

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

djstudley

2020-04-10 12:28:11

comment

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-Bome Forum Moderator

2020-04-10 16:57:37

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

djstudley

2020-04-10 22:58:56

comment

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

Steve-Bome Forum Moderator

2020-04-10 23:15:50

comment

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

djstudley

2020-04-11 02:37:00

Hi Steve this is the new file


Attachments:

Xone 4D Half way.bmtp

Steve-Bome Forum Moderator

2020-04-11 04:50:44

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:

Xone-4D-Half-way-sjc.bmtp

djstudley

2020-04-11 06:39:39

comment

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.

djstudley

2020-04-11 11:48:48

comment

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.

Steve-Bome Forum Moderator

2020-04-11 15:39:31

comment

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

djstudley

2020-04-11 22:58:07

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


Attachments:

Xone 4D Half way 8 pads.bmtp

Steve-Bome Forum Moderator

2020-04-11 23:14:03

comment

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.

djstudley

2020-04-11 23:30:35

comment

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

djstudley

2020-04-12 00:06:31

comment

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?

Steve-Bome Forum Moderator

2020-04-12 00:40:27

comment

I'm not sure what Rekordbox allows, however one end of MT Pro virtual port has to be MT Pro itself while the other end has to be an application.