New MIDI Controller Setup

Hi folks, would someone mind helping me get my MIDI controller set up?

I have just got an M-Audio Oxygen Pro 49 MIDI controller and am trying to get it set up.
I’m fairly new to Ardour and also have an incomplete understanding of MIDI from a technical standpoint.
So far I have been able to successfully record MIDI tracks using the keyboard, however I have not been able to make use of all the transport control buttons, nor the faders and knobs or the drum pads.
I’m using Ardour 8.4.0 on Debian with ALSA and have studied the Ardour manual as well as I can regarding MIDI.

In Ardour; What I’ve done/tried so far:

  • Selected the controller as USB MIDI input for the track.
  • Under Edit > Preferences > MIDI > MIDI Port Config I’ve ticked the boxes for ‘Music Data’ and ‘Control Data’ next to Oxygen Pro 49 USB MIDI (In). I can still record notes even with both of these boxes unticked though. All other boxes are not ticked.
  • I copied Erik Deroo/Francesco Grasselli’s MIDI map for the M-Audio Oxygen Pro 49 MIDI controller and placed it in ~/.config/ardour8/midi_maps
  • Under Edit > Preferences > Control Surfaces I’ve enabled Generic MIDI as the Control Surface Protocol. In the Control Protocol Settings window under ‘Incoming MIDI on’ I’ve selected Oxygen Pro 49 USB MIDI (In) in the dropdown menu.

On the controller:
Complicating matters is the fact that the MIDI controller has a wide selection of DAWs and presets, which, if I understand correctly, correspond to the specific MIDI signals the controller is sending. It’s not clear to me whether I need to select one of these presets in particular for it to match the one Ardour is using, however none of them currently work fully with my Ardour configuration. A comment in Erik/Francesco’s map file that I’m using says “Auto-map should be ON” but I’m not sure whether this refers to something in Ardour or on the controller.
It appears that presets can be created and modified on the controller but from what I can gather on the forum this hasn’t been necessary for others.

The controller’s ‘Garageband’ preset does work for Play and Stop in the transport, so I know it’s not a hardware issue and suggests to me that there is a mismatch between the controller and Ardour somewhere but I’m not knowledgeable and experienced enough to know where.
Or It could something totally different!

If anyone can help it would be much appreciated!

Many thanks in advance

I have no experience with this particular piece of hardware but I wrote the MIDI map for the AKAI MPK249 (really I took the AKAI_MPK61 map that GMaq. wrote and adapted it to my controller).

I’m 99% certain that the mapping that you found for your device was only built to work with one of the presets in DAW mode. It may mostly work with more than one of these presets if they happen to send the same commands (as it sounds like you’ve discovered) but in general we would expect some differences for each DAW preset.

With Ardour open go to Window->MIDI Tracer to see a MIDI diagnostics window.
Select your device/channel in the dropdown (note that there may be more than one MIDI channel for your device) and hit a button on your device. The MIDI tracer window will show any signals sent over that device/channel (if one was sent). Comparing the output from the MIDI Tracer to that file from Erik Deroo/Francesco Grasselli may help you understand why this config isn’t working.

Here’s an example output from my device as I hit buttons on my controller:

On my MPK249 I can, for a given preset, hit the “edit” button and actually see and/or configure the command that is sent for a given button under a given preset. If there’s such a thing on your device you may also investigate that.

There’s quite a difference between MIDI input (basically “keyboard” or “sequencer”) and MIDI controller or MIDI control surface. (I used to have an Oxygen89(?) and am trying to reproduce how I set it up.) The keyboard part of the oxygen should work out of the box. For the controller parts (play/stop etc, faders and buttons) set it up as General MIDI via the driver and in Ardour’s preferences and use MIDI learn to assign them.
Optionally search for some chart containing the standard assignments (XG, GM) for MIDI CCs -there are lots of them on the net, many with some blog entry or article explaining their use- to avoid confusion like mismatching CC names. If you’re interested in the bigger picture I’d recommend reading
“What is MIDI?” - you’ll need to register (for free) unfortunately but is rather trustworthy and won’t spam you.

Note: there’s also an important difference between:

General MIDI: a standard from the MMA that describes the sounds a synth makes for each program, along with drum sound/note mappings.

Generic MIDI: the term in Ardour used for control surfaces that just send somewhat random MIDI messages when their controls are adjusted.

Hi Tom, thanks for your help :slight_smile:
Yes, the keyboard is working out of the box like you say.
Where do I go to ‘set it up as General MIDI via the driver and in Ardour’s preferences’? The closest thing I can find is Generic MIDI under Edit > Preferences > Control Surfaces, which I have enabled and selected my controller for MIDI input. I’m very new to this, so please excuse my ignorance!
Currently, when I use ctrl-middeclick to use MIDI Learn it doesn’t do anything, so I think there’s something else/different I have to do first…
Many thanks!

Well, where do you go to set it up as General MIIDI using the driver? Possibly nowhere, it’s been some time that I used an Oxygen89 and Windows but most controllers provide the option to load some predifined control sets aka “profiles”. I foggishly remember the EMU driver and setup software had something like that.
If not, just forget it and use your controllers the way they are set up.

(What I do remember is that a couple of them would work out of the box anyway, like “volume” and a couple of XG controls and that I had to (manually, without vendor software support, because Linux) reconfigure them because one of the pots was beginning to fail and would sporadically send “martian signals” to the mixer. So I’m sure it can be set up, memories are just a bit fuzzy about the details.)

“General MIDI” is not a setting. It’s a way of mapping program numbers to instruments (there’s a little more to it, but that’s the crux of it).

If you want to use General MIDI, then you just use the a MIDI Instrument which supports General MIDI. That could be a physical instrument or, for most people, a plugin like the built-in “General MIDI Synth”.

There’s no need for drivers or messing around with configuration on the controller or within Ardour for General MIDI.

I suspect what you are talking about is this:



I would have thought this was a setting on the Oxygen 49. This article seems to suggest it is:

Underneath there’s MIDI Bindings dropdown which lists presets for a bunch of MIDI controllers. This is great, because it’ll let you use stuff like transport controls without hassle. There’s M-audio Oxygen 49 listed there and even though my models is mark IV, this setting does the job and once I set my keyboard in Auto Mode, I can use the transport buttons to drive Ardour. Neat!