Custom MIDI Controller Not Showing Up on Controller List

Did something change over the years with configuring MIDI controllers? I have a Kurzweil controller and created a custom file for it. With your help, I got it working under version 6. I didn’t really need it again until recently and am using version 9.5. I do compile Ardour from tarball but I have all the dependencies listed and can see the builtin controllers get compiled and see them on the list of controllers, but my controller doesn’t show up. I have the midi_maps file located in the ~/.config/ardour9 directory, same as I had it under the ardour6 directory several years ago. I’m not sure what changed but it just doesn’t show up on the list now.

Here is the contents. I haven’t changed this file since it was working before:

<ArdourMIDIBindings version="1.0.0" name="Kurzweil Midiboard Controller Functions">
  <Binding channel="1" ctl="11" function="rec-enable"/>
  <Binding channel="1" ctl="12" function="transport-start"/>
  <Binding channel="1" ctl="13" function="transport-roll"/>
  <Binding channel="1" ctl="14" function="transport-stop"/>
</ArdourMIDIBindings>

One thing that has changed is that I’m now using Pipewire. Does that have an effect on what Ardour can see out there?

Things are about to change in this area … what does your About dialog say for the version number?

This is the text in the about box:

Ardour 9.5.0
“Drawn from Life”
(rev 9.5)
Intel 64-bit - debug

Then no, there’s no difference.

Any idea why it wouldn’t show up on the list? Not much to go wrong, midi_maps is spelled correctly, in the right directory… not sure why.

Can I edit the config file and add it manually?

I just tried it here with the 9.5 release and it works just fine.

facepalm Ok. Something in my system. I’m using Kubuntu 24.04. I’ll keep looking. Thanks for verifying it.

Should I see it try to load the files in the debug output? I don’t see it trying to load custom controllers:

bind txt domain [gtk2_ardour9] to /usr/local/share/ardour9/locale
Ardour9.5.0 (built using 9.5 and GCC version 13.3.0)
Ardour: [INFO]: Your system is configured to limit Ardour to 524288 open files
Ardour: [INFO]: Loading system configuration file /usr/local/etc/ardour9/system_config
Ardour: [INFO]: Loading user configuration file /home/mustang-new2404/.config/ardour9/config
Ardour: [INFO]: CPU vendor: GenuineIntel
Ardour: [INFO]: AVX capable processor
Ardour: [INFO]: AVX with FMA capable processor
Ardour: [INFO]: CPU brand: 12th Gen Intel(R) Core™ i5-12400
Ardour: [INFO]: Using AVX and FMA optimized routines
Ardour: [INFO]: Loading plugin meta data file /usr/local/share/ardour9/plugin_metadata/plugin_tags
Ardour: [INFO]: Loading plugin statistics file /home/mustang-new2404/.config/ardour9/plugin_metadata/plugin_stats

  • Zero stats of plugin ‘Linux Studio Plugins Project’ use-count: 1 LRU: 959
  • Zero stats of plugin ‘x42 General MIDI Synth’ use-count: 1 LRU: 960
    Ardour: [INFO]: add_lrdf_data ‘/home/mustang-new2404/.config/ardour9/rdf:/usr/local/share/ardour9/rdf:/usr/local/share/ladspa/rdf:/usr/share/ladspa/rdf’
    Ardour: [INFO]: read rdf_file ‘file:///usr/share/ladspa/rdf/ladspa.rdfs’
    Ardour: [INFO]: Loading 470 MIDI patches from /usr/local/share/ardour9/patchfiles
    Ardour: [INFO]: Loading default ui configuration file /usr/local/etc/ardour9/default_ui_config
    Ardour: [INFO]: Loading user ui configuration file /home/mustang-new2404/.config/ardour9/ui_config
    Ardour: [INFO]: Loading color file /usr/local/share/ardour9/themes/dark-ardour.colors
    Ardour: [INFO]: Loading ui configuration file /usr/local/etc/ardour9/clearlooks.rc
    Ardour: [INFO]: Loading bindings from /usr/local/etc/ardour9/ardour.keys
    Loading ui configuration file /usr/local/etc/ardour9/clearlooks.rc
    Ardour: [INFO]: Detecting Audio/MIDI Devices
    Found nothing along /home/mustang-new2404/.config/ardour9/templates:/usr/local/share/ardour9/templates
    pingback: No Error

No, there’s no debug output for this.

You could do a non-optimized build and use -D controlproto on the command line

Ok. I’ll give that a shot. Thanks.

Ok, after adding some debug commands and finding out that my custom files were being loaded, I figured it was something basic in my understanding of how this works. I thought I remembered my controller showing up on the list of control surfaces available and then enabling it there, and then it worked. That’s not how it works. I don’t think the manual is very clear on this, but this is how it works for anyone else who may have similar issues.

  1. Put your custom midimap files in “~/.config/ardour*/midi_maps” where * is the version (windows users have a different one)
  2. Run Ardour and open edit->preferences->control surfaces
  3. Double click “Generic Midi”
  4. In the popup box, set “Incoming MIDI On” to your midi interface
  5. Set “Outgoing MIDI On” to your midi interface if you plan to send messages to your device
  6. Click “MIDI Bindings” and it’s in this list that your custom controller will show up. Select your device and it should start working.

I don’t remember it working that way back in V6, but I could be wrong. Probably need to make better notes to myself. I’ll set this as solved and put a description above.

Well, that’s what is about to change (today!) … we now list control surfaces with binding maps by manufacturer and device name (your file will need a tweak for this).

9.7 out in the next hour (and in git already)

Sweet! Perfect timing and I don’t even have to wait to forget all this.

Ok. I’ll bite. Mind explaining how this new system works? There is nothing listed on the active or control surface sections now. No buttons to click, right-click doesn’t do anything. What else needs to be enabled now?

This the tweak you referenced earlier?

You’ll need to edit your file to look like this:

<ArdourMIDIBindings version="1.0.0" name="Generic MIDI" manufacturer="Any">

replacing the name & manufacturer field as appropriate.

The preferences section should look like this (from the whats new page):

Ok, it does not look like that. I don’t see anything listed under those sections. All I see are the title bars “Active Surfaces” and “Control Surfaces” with no list box under either.

I’ll add that tweak and see if something shows up. Thanks!

Sounds more like a build problem. Check the free/demo version from Download Ardour | Ardour Community to see what you get there.

Did the dependencies change any?

No. But those lists are built by looking in share/midi_maps and share/mcp