Control a track with a midi controller

Hi,

When I use my AKAI MPK mini plus to control Ardour 8.12 (on AV Linux 25RC1) after selecting the midi map, the transport buttons work.

As I understand it, the rotary knobs should control the gain of the first 8 tracks.
When I add the first audio track in a new session and I turn K1 nothing happens.

How do I get this (control a track with midi controller) to work?

1 Like

I don’t have your hardware, but it seems likely that the person who created the ‘midimap’ for your device didn’t get around to mapping the rotary knobs.

You should be able to tweak that configuration yourself, by copying the text file from the share/midi_maps directory of your Ardour install to your local config directory and editing it. E.g., on Linux:

$ mkdir -p ~/.config/ardour8/midi_map/
$ cp /opt/Ardour-8.12.0/share/midi_maps/AKAI_MPKminiplus.map ~/.config/ardour8/midi_map/
$ <editor-of-your-choice> ~/.config/ardour8/midi_map/AKAI_MPKminiplus.map

Likely this video or one of the related ones on that channel will help figure out what changes to make.

Before posting this I watched a related video about editing a midimap.
AVL25RC1/Ardour is shipped with a midimap for the mini plus: https://github.com/Ardour/ardour/blob/master/share/midi_maps/AKAI_MPKminiplus.map

In that file there are bindings for the rotary knobs and the ctll values are correct. I checked in the MIDI tracer window:
<Binding channel="1" ctl="70" uri="/route/gain B1"/>

My thoughts so far:
The device sends midi values
The values for the rotary knobs are correct
The midimap is used because the start/stop/record buttons (the ones at the top) are working

But the gain at the first track is not moving when I turn the rotary knob.

“B1” is the first bus in the current bank, not the first track. You like want just “1” or “S1” for the first selected track.

Arn0; did you get it resolved?
If not, I’d like to help.

I’ve been working with the APC Mini Mk 2, and the MIDImix, and have gotten somewhat familiar with midimap files.

Today I got it resolved but I don’t know how.
No changes to the map file.
Maybe it was an Ardour restart or a reboot, I don’t know.
Sometimes it takes a second or so to take effect.
“B1” does control the first track.

After it was resolved I tried to use a drumpad for the mute button but that didn’t work.
Later this week I will try more when I’ve bought a mouse to Ctrl+Middle click. Easier than on a laptop touchpad.

As explained by Paul above B1 does not control the first track.
Perhaps you have the first track connected to a bus, and you are controlling the first bus without realizing it.

Can’t get it consistent.
The encoder does not work anymore. A mute button (pad 1) does work.

Don’t know about having created a bus or not. Just starting to use a midi keyboard.
Testing as follows:

  • Startup Ardour
  • Create empty session
  • Check Control surface setting
    • capture
    • playback
    • midimap
  • Add an audio track

Mute button/pad works every time now.
Encoder does nothing to the gain setting.
Tested with “B1”, “S1” and “1”.

Setup: AVL 25RC1/Ardour 8.12.0~ds1
Midimap: Edited midimap for AKAI MPK midi plus

<Binding channel="1" ctl="70" uri="/route/gain B1"/>
<Binding channel="10" note="36" uri="/route/mute B1"/>

As explained previously, B1 controls the first bus, S1 controls the first selected track, and 1 would control the first track. I’m not sure if “first bus” will apply to the master bus, or only busses other than master.
I believe even with only one track you would need to explicitly select the track for S1 to be effective.

Change the URI control back to 1, then add a MIDI monitor to verify that the expected MIDI messages are actually making it to Ardour.

As I understand it, which admittedly may be incorrect…
Also, I apologize if you already understand this.

The “B1” is not so much about “BUS” as it is about “BANK”.
The midimap contains these lines:

<DeviceInfo bank-size="8"/>

<!--
<Binding channel="1" ctl="115" action="Transport/Rewind"/>
<Binding channel="1" ctl="116" action="Transport/Forward"/>
-->
...
<!-- Bank Control (the MPK doesn't have those, use the Rewind/Forward buttons instead) -->

<Binding channel="1" ctl="115" function="prev-bank"/>
<Binding channel="1" ctl="116" function="next-bank"/>

The “bank” function allows the user to control many more than just eight tracks.
The "bank-size parameter indicates that whenever the bank select buttons (Rewind and Forward) are pressed, the “bank” changes.

<Binding channel="1" ctl="70" uri="/route/gain B1"/>

When Ardour starts, “B1” refers to the first audio/midi track or buss", B2 would refer to the next, and so on. So, turning knob 1 would affect level of the first audo/midi track or bus, knob 2 the second, …
Master is handled differently as noted in the map by the line:

<!-- <Binding channel="1" ctl="7" uri="/bus/gain master"/> -->

If you were to press the Forward button, the “BANK” would move by eight tracks. Now, the “B1” binding would affect the 9th track in the session, and so on.

If the binding were targeted at “S1”
<Binding channel="1" ctl="70" uri="/route/gain S1"/>
then the encoder would affect the first SELECTED audio/midi track, regardless of which bank was selected.

If the binding were targed at “1”
<Binding channel="1" ctl="70" uri="/route/gain 1"/>
then it would affect the FIRST audio/midi track regardless of either bank setting for track selection.

@jondbennett This is how I understand it as well.
Just tried it again and it all worked.

Don’t know what causes it to sometimes break when I don’t change anything. All the midi messages show up all the time in Window - MIDI Tracer.
Now it works. Fingers crossed.

Yes, thanks for pointing that out. I went back to the manual and reviewed how the naming works.
And as you say the “1” parameter can refer to the first track or bus. That makes it difficult to have something like a controller with dedicated channel and bus faders (for example to mimic the layout of some traditional analog consoles).

Anyway, seems OP got it working now, so thanks for correcting the misleading information I inadvertently injected into the discussion.

1 Like