Author |
Topic: midiShift alternative? (Read 350 times) |
|
vj_Rat
New Member

 MIDI-OX Rules!
Posts: 2
|
 |
midiShift alternative?
« on: Aug 23rd, 2023, 8:21am » |
Quote Modify
|
Dear All, I tried to figureing out if its possible with midiOX do a hack what midiShift program does: for one specific midi signal a channel changing data mapping activates. (for me it doesnt matter if its toggle, or i have to hold for the change) I found answers to toggle a button, or change banks, but i think its not the same. Maybe its too basic, and easy to done, and thats why i haven't found, but i appreciate every help. I have an AKAI apc key25 and before i bought i tought that the shift button is a modifyer, and its change the midi signals in the device, but unfortunately its not, i think it programmed somehow in ableton, but the device sends the same signals, regardless of the shift button. Thanks again if you can help me.
|
|
IP Logged |
|
|
|
Breath
Administrator
    

Gender: 
Posts: 1030
|
 |
Re: midiShift alternative?
« Reply #1 on: Aug 23rd, 2023, 11:32pm » |
Quote Modify
|
A bit of advanced MidiOx for you - stick with it. It will show you how powerful MidiOx can be. First, MidiOx normally doesn't "remember" what Midi messages come to it. That is, if you send a Note On message to MidiOx, it can change it to a CC message with the type being the key and the value being the velocity for example. That is called 'data mapping' (Options / Data Mapping...). You cannot ask MidiOx 'If Note 64 is on then send CC7 25' So you can't toggle a Midi parameter as MidiOx would need to remember its previous change. To do this, you need to program it using the script function (see the help menu to search for this). Data Map = Midi filters and message conversions Create at least 2 data maps and save them. Let's call them GlobMap1.oxm and GlobMap2.oxm. Create at least 2 mores data maps and save them. Let's call them ConMap1.oxm and ConMap2.oxm. There are two places that you can use data maps... Global: effects all connections on the Midi Port Routing window Connection: If you click on the square box in the middle of a connection line it opens up a box that lets you filter Midi messagews but also you can load a Data Map file (*.oxm) If there isn't a connection map selected then the global one will be used (if there is one and it is activated) If you want to change a data map remotely then you can use Options/Patch Map. In the Patch map there are 3 columns in the table. The first column is the Patch number you are going to send to MidiOx to load the setup (0 to 127). A setup can be a Data map and/or a Mid port setup. The second column is the oxm data map file - this loads he Global Data Map. The third is the Port setup - what Midi ins and outs (ports) are open how they are connected any Connection Data Map on those connections . Click 'Assign' and on the dialog that pops up .. search for the map (data map to be used as the global data map) file that will be loaded... use the drop down list box that has all your Port mappings (see below) and select the one to be loaded ... when MidiOx receives this PC message Port Setup In the Options/Devices dialog, the left side lists are where you select Midi devices to open (everything else gets closed). The right list are the connections and any attached connection data maps. These are usually formed by dragging connections on the Port Routing window and clicking on the square box in the middle of the connection, but can also be made here. You save the port setting Presets at the top of the dialog. I usually 1) goto Options/Devices and load the devices I need to be open 2) goto the Port Routing window and drag the connections I need 3) add any connection maps the the particular connection 4) go back to Options/Devices and check that all is correct and rename and save the Port setup So you can send a PC message to MidiOx and it can swap in a new data map (filters and message conversions) or swap in a new Midi port setup (different devices and / or Midi connections ) or both. So you can have 128 setups (PC 0 to PC127) switched in MidiOx by just sending a PC message. I think that is what you are asking. If you need some more help (or if I have misunderstood what you are wanting) feel free to post again. All the best Royce
|
|
IP Logged |
|
|
|
vj_Rat
New Member

 MIDI-OX Rules!
Posts: 2
|
 |
Re: midiShift alternative?
« Reply #2 on: Aug 29th, 2023, 5:07pm » |
Quote Modify
|
Dear Royce, Thank you very much for your detailed answer! It helped me understand a lot. However i still have a few question: can i create a program change message without changing a program? How? My goal would be to use the same device in the same program but with different functions. (Resolume arena - one data map is triggering a clip, other data map is just preview it) Thanks again!
|
|
IP Logged |
|
|
|
Breath
Administrator
    

Gender: 
Posts: 1030
|
 |
Re: midiShift alternative?
« Reply #3 on: Aug 31st, 2023, 8:06pm » |
Quote Modify
|
You can use a datamap to change most messages to a Preset message. Go to Options/Data Mapping... Now on this dialog there is an Insert... button Use this to add, say a NoteOn message to a preset Input Channel 1 Note On 24 24 (this is C1) -1 -1 (any velocity) for the input Output Preset Channel ProgChg x x (x is you Preset number) -1 -1 (Preset messages only have one data byte so MidiOx will ignore this last value) You can add as many (I think - I've never run out of them) map lines as you like to the one datamap If you want to use the one input message to output multiple messages you have 'Clone' ticked so the next line also gets the original input message So if you also wanted the Bank to change first and then the Preset in that bank... but fir 14 bit Midi number which you may or may not need - sorry Most Significant Byte = MSB Least Significant Byte = LSB Bank select is two Continuous Controller (CC) messages CC 32 MSB CC 00 LSB So you need 2 lines just for Bank change (usually ) Line A MSB - the original note message comes in... Input = Channel 1 (what ever your switching kb is on) Note On 24 24 (this is C1) -1 -1 (any velocity) - clone selected Output = Bank Channel Ctrl 32 32 MSB MSB Line B LSB - the clone is passed to this line Input = Channel 1 (what ever your switching kb is on) Note On 24 24 (this is C1) -1 -1 (any velocity) - clone selected Output = Bank Channel Ctrl 32 32 LSB LSB Line C Preset - the clone is passed to this line - but it doesn't need to be cloned any more Input = Channel 1 (what ever your switching kb is on) Note On 24 24 (this is C1) -1 -1 (any velocity) Output = Preset Channel ProgChg x x (x is you Preset number) -1 -1 (Preset messages only have one data byte so MidiOx will ignore this last value) Because you are cloning messages, the line order is important that is why there are up and down buttons to move the highlighted line to rearrange the order on the first page of the DataMap. Lines A, B and C should be grouped together even if you have other messages being used change other stuff in the one data map. Hope this helps All the best Royce
|
|
IP Logged |
|
|
|
|