How to control Ardour with M-Audio Hammer 88 Pro?

Hi!
How can I control Ardour 8 with my Hammer 88 Pro? There are various DAW I can select in the Keyboard, but of course no Ardour.
I never used a remote control device before, so please be patient with me… :wink:

Hi Oliver

One of the options is to use the midi learn option to directly assign controls on your keyboard to control whatever you want, but I think that configuration is saved per session (if I’m not mistaken), that is, you create a new session and assign the controls with the midi learn function and save those sessions and use it as a template for all the new ones you create so you will already have the controls assigned.

The ardour manual explains this option: The Ardour Manual - Generic MIDI Learn

But it is an option that requires you to always use that default session, because if you don’t use it you will have to reassign in the new session you create.

The other option requires you to create your own midimap (because your model is not among those included by default in ardour), which are files that specify which control on your device controls which function/action in ardour, these files are specific to each midi controller device.

For example, I use a novation zeroMkII and a Presonus Atom, both use the same file but each has different MIDI commands assigned to them, the zero is just a mixer and the atom controls various actions and/or functions in ardour.

zero
atom

In your case your keyboard is Maudio and ardour comes with several maudio midimap files but they are not your model, so the best thing is to reuse and modify one of the maudio ones that ardour already includes in the directory (/opt/Ardour-8.10.0/share/midi_maps/), in linux, the ardour manual explains it: The Ardour Manual - Files and Directories Ardour Knows About.

In the directory look for one of maudio preferably, and open it, if any of them works for you copy the file to another folder for example your documents and change the name to that of your M-Audio Hammer 88 Pro keyboard, when you have modified it. remember (VERY IMPORTANT) to change the file name and the name of the header of the 2nd line and copy it to the folder (/opt/Ardour-8.10.0/share/midi_maps/).

This, for example, is what the maudio axion61 midimap file includes:

<?xml version="1.0" encoding="UTF-8"?>
<ArdourMIDIBindings version="1.0.0" name="M-Audio Axiom 61">

<!-- 2015-04-25 Edgar Aichinger: initial version -->
<!-- I'm assuming Factory default, preset 1 in the Axiom 61. -->

<!-- Faders, mapped to track faders 1-8 and Master -->

 <Binding channel="1" ctl="74" uri="/route/gain 1"/>
 <Binding channel="1" ctl="71" uri="/route/gain 2"/>
 <Binding channel="1" ctl="91" uri="/route/gain 3"/>
 <Binding channel="1" ctl="93" uri="/route/gain 4"/>
 <Binding channel="1" ctl="73" uri="/route/gain 5"/>
 <Binding channel="1" ctl="72" uri="/route/gain 6"/>
 <Binding channel="1" ctl="5" uri="/route/gain 7"/>
 <Binding channel="1" ctl="84" uri="/route/gain 8"/>
 <Binding channel="1" ctl="7" uri="/bus/gain master"/>

<!-- Zone/Group buttons, below the faders -->
<!-- these toggle Mute for the corresponding tracks (1-8) and Master -->

 <Binding channel="1" pgm="0" uri="/route/mute 1"/>
 <Binding channel="1" pgm="1" uri="/route/mute 2"/>
 <Binding channel="1" pgm="2" uri="/route/mute 3"/>
 <Binding channel="1" pgm="3" uri="/route/mute 4"/>
 <Binding channel="1" pgm="4" uri="/route/mute 5"/>
 <Binding channel="1" pgm="5" uri="/route/mute 6"/>
 <Binding channel="1" pgm="6" uri="/route/mute 7"/>
 <Binding channel="1" pgm="7" uri="/route/mute 8"/>
 <Binding channel="1" pgm="8" uri="/bus/mute master"/>"

<!-- Encoders, mapped to pan direction. -->

 <Binding channel="1" ctl="75" uri="/route/pandirection 1"/>
 <Binding channel="1" ctl="10" uri="/route/pandirection 2"/>
 <Binding channel="1" ctl="76" uri="/route/pandirection 3"/>
 <Binding channel="1" ctl="2" uri="/route/pandirection 4"/>
 <Binding channel="1" ctl="92" uri="/route/pandirection 5"/>
 <Binding channel="1" ctl="12" uri="/route/pandirection 6"/>
 <Binding channel="1" ctl="95" uri="/route/pandirection 7"/>
 <Binding channel="1" ctl="13" uri="/route/pandirection 8"/>

<!-- Transport controls -->

<Binding channel="1" ctl="21" action="Transport/Rewind"/>
<Binding channel="1" ctl="22" action="Transport/Forward"/>
<Binding channel="1" ctl="23" function="transport-stop"/>
<Binding channel="1" ctl="24" function="transport-roll"/>
<Binding channel="1" ctl="20" function="loop-toggle"/>
<Binding channel="1" ctl="25" function="toggle-rec-enable"/>

</ArdourMIDIBindings>

Where it says channel 1 is the midi channel because your keyboard can sends midi data on many midi channels, you can change it if necessary.

Where it says PGM, CTL or in other cases NOTE or even syxex is the type of midi data and the “controller” number midi command that sends a certain pad, button, or fader of your keyboard.

Where it says action, function, route … etc is the ardour command that will control the fader, pad, etc button of your keyboard.

In many controller devices you can change the type of midi command that each control on your device sends, in other cases like mine, the presonus atom, I can’t change them, they are already assigned.

I suppose that in your keyboard, which is of a certain price, you can modify what each controller does, you have to look at that in the user manual.

In the 2nd line of the file where it says you should change the part between quotes for the name of your keyboard, “M-Audio Hammer 88 Pro”, this last part is important to identify it when you try it in Ardour.

To configure the file you can use a midi monitor, ardour includes one, but for this case I recommend the one I use GitHub - gbevin/ShowMIDI: Multi-platform GUI application to effortlessly visualize MIDI activity which has a standalone version and plugins and is perfect for configuring a midi controller and knowing what commands the different controls on your keyboard are sending, because of the way it presents the info and midi data it is easier to identify what you need.

In the ardour manual you can see which ardour actions can be assigned: The Ardour Manual - List of Menu Actions
The manual also explains how to create the midimap file: The Ardour Manual - Generic MIDI Binding Maps

This all seems very complex, (it is simpler than it seems), but it is a matter of reading the ardour manual a little, asking around here and with a little patience, you only have to do it once and it will always work.

I hope I have helped you, greetings.

1 Like

Wow! This is way more help than expected!!!
Thank you Dave, I will have a look on the midi map :slight_smile:

Greetings
Oli

In alternative you can put it in your local configuration directory ~/.config/ardour8/midi_maps/ (if it’s not already there you just create the directory).

In this way it will be valid for all the major versions (8, in this case) and you can copy it over to ~/.config/ardour9/midi_maps/ in the future.

We have a step-by-step guide for creating a custom midi map: https://youtu.be/B9t-ZubUGHM

And one on midi learn: https://youtu.be/USa4HMZS27k

Thank you @all!
I created a little midi map, just to try it. No I can use the transport buttons on my keyboard :upside_down_face: