M Audio Axiom 49 midi remote

This is an old controller but still works fine for me. I left the 8 trigger pads blank in the script, and if someone knows how to get the 9 buttons under the faders to register in MIDI remote please update the script as for me when you press the first button it makes 2 buttons, the second button deletes one of those 2, they just don’t register properly for me.

I added the legacy tracks quick controls to the faders (as I prefer faders for string library CC information) but but the Focus quick controls on the faders as they’re better for plugins.

M-Audio_Axiom 49.midiremote (4.9 KB)

The reason the buttons below the faders don’t work is that they send Program Change commands which isn’t supported by the Midi Remote. However, I believe that you can reprogram the Axiom to send CC commands when those buttons are pressed, and then those buttons could be used.

1 Like

Thanks, I will try to figure that out!

Hi Ron,

I have been able to program the 9 buttons to CC values (I set cc20 - cc29) and they have min/max for their values. This allowed MIDI remote to see these buttons now so I can add them to the surface.

However, whenever I try to map a function to the button it maps (in that pressing the button highlights, and I can apply a function, like say ‘select next downmix preset’) but the button doesn’t actually work (you can see a midi message so the keyboard is sending it, just not applying the function).

Do you know how the button needs to be set for values like resolution, value mod, and then in the mapping should it be toggle = Yes, takeover = jump? Steinberg hasn’t seemed to have added sections to help yet that cover midi remote mapping assistant.

I’m working through it myself. I’m currently writing a complete javascript version for the Axiom 61 (which should work on the Axiom 49) as you seem to have more control over things. I was having issues with the toggle. Will reply when I learn more.

1 Like

I came across this post which answers some of your questions, though toggle is not working that way for me, so I must be doing something wrong.


As a matter of fact, that entire post is probably the best documentation out there.

1 Like

Thanks Ron, I’m not a coder so this is a little bit beyond me but I will try to follow it. The Axiom 49 seems to let me program the buttons as toggle or trigger (or potentially note I think) and I just tried toggle, which as mentioned allowed Cubase to see and map to the buttons.

I’ll have to wait until you make your script I think and see if I can adapt it as the 61 and 49 are pretty much the same I believe. Hope you can solve it as it’s such a shame to waste 9 buttons on this controller

Thank you Ron, I thought maybe what I was learning would come in handy.


Did you set the buttons to “momentary” or “latch” or “trigger”. With M-Audio, I think there is just Toggle or Trigger, but if there is Momentary, you should use that. Cubase is happy with this mode for buttons and if you want it to toggle, then you set it in Cubase (or in JavaScript).

Let us know if that works.

1 Like

@oqion Thanks, and yes there is only toggle or trigger, no momentary.

I have them currently set to toggle and I’ve tried setting toggle both on/off in Cubase and neither worked, but I’m not 100% sure what values I need for min/max, resolution, value mod, and takeover, Cubase doesn’t have any help pages for what all these options are.

I’ve tried changing a couple but there are a few variables to try and figure it out, and so far none have worked.

Got you, you need to set the device to Trigger.

On the Axiom, you program the ctrl to 146. This puts the button in momentary mode (MIDI CC). Program Data 1 the CC value you want assigned to the button, Data 2 to 0 and Data 3 to 127.

I was using the Enigma Software to program it, but there is a bug that doesn’t allow you to use mode 146 on the buttons below the faders. But it works fine if you manually program it on the controller.

I’ve got the sysex commands about 80% figured out. I should be able to have the script set the buttons up in the correct mode.

1 Like

I found that by setting the buttons to 153 instead of 146, Data 1 = whatever CC value, Data 2 = 127, Data 3 = 127, I can now get them to work with key commands, but not parameter mapping.

If I have Data 3 = 0 the buttons need double pressing, same as when using 146.

When I try the buttons with parameter mapping (I’ve tried 146 and your suggestions) you have to press the button twice, and on the second press the function happens, but it only holds momentarily and then reverts back to the original value.

I’m sure I’m just missing something for parameter mapping but experimenting with 146, 152, and data values 127,0 and inverse, etc. I always got this doubler button issue.

High @simonslee I forget how much control can be had with the M Audio.

Data 1: is the CC Value. You want to have that between 1 and 127. It can go higher, but those are M-Audio’s proprietary settings.

Data 2: is what happens when you release the button. You want this set to 0 always when interacting with Cubase.

Data 3: is what happens when you press the button, and you always want this set to 127.

When you make an assignment in Cubase that is like a key command or if you think of it as triggering the event, then it will work as expected with no further setting. Here I have chosen “add track”

When you map to a feature in Cubase which has an On/Off quality, you want to set Toggle to On.
Here I have set it to EQ1 bypass:


@oqion Yes, this is the configuration I started with but it does not work for every function. For example, if you try ‘next downmix preset’ from the parameter mapping you get the temporary state change issue I described, but if you use the key command (which works fine but doesn’t show the icon on the button) it works.

I read on some old forum that for the Axioms there is a difference in toggles for this controller, if you choose 147 it only plays a MIDI CC TOGGLE, NOT A CLEAN Note on/off controller, you will hear the midi toggle play a note back, but if you set it to 153 and set the data2 Key to 127, and Data 3 to 0 it will play one toggle and no note preview. This is why 153 with both on/off at 127 (so it’s incrementing the same value each time) seemed to be more reliable, but will not work for parameter mapping.

146 seems to be a bit hit or miss as to which parameter mappings work, even when you try adjusting toggle on/off in Cubase.

I’ll be honest, I too am confused.
I found the manual here, the name of the file is “25” but it covers all 3 versions (“49” and “61”).

The Control assign value seems to be different for each encoder, button, pad. I just call everything encoder generically because there isn’t a good word for that.

146 seems to be consistent as for pressed encoders using CCs in momentary mode. 153 is increment and decrement, and I don’t think that is what you want.

Key commands is Cubase are always going to be matched with Toggle Off. In fact it shouldn’t even give you the option, and this is a good thing.

Maybe you can try something simple and well understood like “mute” under Selected Track. These will not work for MIDI Tracks. So select an Audio Track to test it.

Set the button to
Control Assign: 146
Data 1: 2? (in the 20s)
Data 2: 0
Data 3 127

Set toggle in Cubase to On.

What does that do?

Yes that works. As I mentioned, some parameter mapping works but not all (like ‘select next downmix’ in control room).

That instruction is for the 1st gen Axioms too, I have the second but the programming ability is very similar

I get exactly the same result, it moves forward twice.

However, try this.

  1. Set the button on the device to 146 as described above.
  2. Then in Cubase set →
    a. Takeover Mode: Jump
    b. Toggle Mode: Off
    c. Min. Value: 49.9%
    d. Max. Value: 100.0%

See if that works for you.

Of course, then it’s exactly like the key command. I tried assigning it to a knob thinking that maybe it would select values equivalent to the knob, but that did not work either.

Even when you have more than 2 options, the behavior is the same. So if you were hoping to only have Mono and Stereo and use the button as a toggle where you can see which one you are on without looking at the screen. It isn’t going to work. Also the Icon is the same as 100s of other icons, so having the words on the button is actually better. IMO.

Still it’s “Select…et”. They could have made it “Downmix->” and saved 2 whole characters.

It’s a defect, but the settings above work.

1 Like

Yes, that worked for the downmix preset, thank you.

It will just be trial and error now between 153, 146 as per the manual, and 146 with the 49.99% min. but so far I have been able to get all the functions mapped that I want now.

Thanks again for all your help on this one, I really appreciate it!

1 Like

You are welcome.

Might I also suggest that you use ONLYY 146. (Trigger/Momentary) and use the settings in Cubase to achieve the behavior you want.

I did a lot of testing with setting Toggle on the device and while it will work at times, it doesn’t allow you to change what buttons do, or create new pages within Cubase without conflicts.

I have found no case in which I couldn’t get the desired behavior in Cubase with the device set to (Trigger/Momentary).

1 Like

This is all very good information. Thank-you.

@simonslee, I’m still working on my script based approach for the axiom. I will send it to you when it’s ready if you’re interested. It would be nice to have someone test it before I upload it. This is my first venture into javascript (I’m a hardware guy and develop FPGA designs using VHDL)

1 Like