Problems with custom MIDI map

Hi, I’m trying to make a custom MIDI mapping for a USB connected MIDI controller I’ve got, but I’m struggling to make it work.

I’m on Ardour 6.6 running Linux with Jack.

I have thus far been able to connect my MIDI controller to Ardour via Jack, and I’m able to map certain controls such as faders, using MIDI learn within a session. I would however like to be able to create a binding map to use across all my projects.

This is the mapping I have created as a start:

<?xml version="1.0" encoding="UTF-8"?>
<ArdourMIDIBindings version="1.0.0" name="Faderfox DJ4">
	<DeviceInfo bank-size="1"/>
	<Binding channel="2" ctl-toggle="56" function="transport-roll"/>
	<Binding channel="1" enc-r="100" action="Editor/scroll-tracks-down"/>
	<Binding channel="1" note="22"  uri="/route/gain S1"/>
	<Binding channel="1" ctl="22" uri="/bus/gain master"/>
</ArdourMIDIBindings>

I have placed the file in ~/.config/ardour6/midi_maps, and it shows up in the list of MIDI bindings. As I connect the device, however, nothing is happening when I send the MIDI messages. I’ve checked with the MIDI tracer, and the correct messages are received, however nothing’s happening. I’ve tried different controls, different commands, and even a different MIDI device.


Is there anything obvious I’m doing wrong, and if not, how do I go about troubleshooting this?

Just for giggles, try connecting the output port too.

If that doesn’t help, grab a debug build from nightly.ardour.org (you can parallel install it), and run from the command line with -D genericmidi

I got a couple of these ‘DEBUG::GenericMidi: no stripable found for “/bus/gain master”’, so I removed those controls from the mapping.

This is the debug output now:

DEBUG::GenericMidi: GenericMIDI::set_active init with yn: ‘1’
DEBUG::GenericMidi: GenericMIDI::set_active done with yn: ‘1’
DEBUG::GenericMidi: Load bindings: Reading midi map
DEBUG::GenericMidi: Drop all bindings
DEBUG::GenericMidi: Loading bindings
DEBUG::GenericMidi: Controlable: bind_midi: MIDI control: NoteOn on Channel 1 value 12
DEBUG::GenericMidi: lookup controllable from “/route/gain 1”
DEBUG::GenericMidi: parsed into path of 2, rest of 2
DEBUG::GenericMidi: found stripable Audio 1
DEBUG::GenericMidi: found controllable “gaincontrol”
DEBUG::GenericMidi: GenericMIDI::set_active init with yn: ‘1’
DEBUG::GenericMidi: connection change: ardour:auditioner/audio_out 1 and system:playback_1 connected ? 1
DEBUG::GenericMidi: connection change: ardour:auditioner/audio_out 2 and system:playback_2 connected ? 1
DEBUG::GenericMidi: connection change: ardour:Click/audio_out 1 and system:playback_1 connected ? 1
DEBUG::GenericMidi: connection change: ardour:Click/audio_out 2 and system:playback_2 connected ? 1
DEBUG::GenericMidi: connection change: ardour:Audio 1/audio_out 1 and ardour:Master/audio_in 1 connected ? 1
DEBUG::GenericMidi: connection change: ardour:Audio 1/audio_out 2 and ardour:Master/audio_in 2 connected ? 1
DEBUG::GenericMidi: connection change: ardour:Master/audio_out 1 and system:playback_1 connected ? 1
DEBUG::GenericMidi: connection change: ardour:Master/audio_out 2 and system:playback_2 connected ? 1
DEBUG::GenericMidi: connection change: Click/audio_out 1 and connected ? 0
DEBUG::GenericMidi: connection change: Click/audio_out 2 and connected ? 0
DEBUG::GenericMidi: connection change: a2j:Faderfox DJ4 [28] (capture): Faderfox DJ4 MIDI 1 and ardour:MIDI Control In connected ? 1
DEBUG::GenericMidi: connection change: ardour:MIDI Control Out and a2j:Faderfox DJ4 [28] (playback): Faderfox DJ4 MIDI 1 connected ? 1
DEBUG::GenericMidi: connection change: Master/audio_in 1 and connected ? 0
DEBUG::GenericMidi: connection change: Master/audio_in 2 and connected ? 0
DEBUG::GenericMidi: connection change: Master/audio_out 1 and connected ? 0
DEBUG::GenericMidi: connection change: Master/audio_out 2 and connected ? 0
DEBUG::GenericMidi: connection change: auditioner/audio_out 1 and connected ? 0
DEBUG::GenericMidi: connection change: auditioner/audio_out 2 and connected ? 0
DEBUG::GenericMidi: Feedback: MIDI control: NoteOn /route/gain 1
DEBUG::GenericMidi: MIDI out: Type 144 Channel 0 Bytes 12 63
DEBUG::GenericMidi: something happend on MIDI Control In
DEBUG::GenericMidi: data available on MIDI Control In
DEBUG::GenericMidi: something happend on MIDI Control In

I don’t know why GenericMidi reports Jack audio connections? Other than that, I see anything that looks out of place…