Generic MIDI Learn

Hello,

I’d like to use Generic MIDI Learn to set up a few bindings. I have an Akai MPK mini 3 and I’m working on MacOS. I followed the steps. First, I opened Ardour8 → Preferences:

image

(This is slightly different from the instructions.)

I selected my MPK mini as a control input.

I selected General MIDI as a control surface.

I needed to open another window as Ardour suggested (this is not in the instructions):

The next step is to Cmd-Middle click on an on-screen element like a fader. I connected a 3-buttoned mouse via USB. Cmd-Middle click would only make the fader jump to the position of the mouse, but Ctrl+Middle click did open the “Operate the control” popup. I moved one of the knobs (it sends CC#002 on channel 1) and the popup disappeared.

I moved the knob, and at first nothing happened. I wiggled the knob quickly all the way up and down. The fader shifted slightly. I moved the knob slowly. The fader seemed to “catch on” at some point, but then as I kept moving the knob, the fader would stop. It looked like as if I was only able to set the fader within a small range. I saved my session, and closed Ardour.

I looked into my sessions .ardour file and I found this:

  <ControlProtocols>
    (...)
    <Protocol name="Generic MIDI" feedback="0" feedback-interval="10000" threshold="10" motorized="0" binding="AKAI MPKmini" active="1">
      <Input>
        <Port name="MIDI Control In" type="midi" direction="Input">
          <ExtConnection for="CoreAudio;;Saffire"/>
          <ExtConnection for="CoreAudio;;Saffire" other="system:midi_capture_1342015600"/>
        </Port>
      </Input>
      <Output>
        <Port name="MIDI Control Out" type="midi" direction="Output"/>
      </Output>
      <Controls>
        <MIDIControllable id="314" event="0xb0" channel="0" additional="0x2"/>
      </Controls>
    </Protocol>
    (...)
  </ControlProtocols>

Many questions come to mind, but the main would be, how does the mapping work for faders? The CC parameter that my MPK is sending varies between 0 and 127. The fader seems to only respond to a fraction of that range (32 to 45), and then it maps this onto a fraction of its own range (-24.6dB to -18.5dB). Is there a way to tune that?

First things first, confirm by utilizing a midi trace the signals being sent from the Akai?

 Seablade

I opened the MIDI Tracer window and turned the knob. This appeared in the window:

I copied the text output:

    91094624      Controller chn  1 02 2f
    91095113      Controller chn  1 02 2e
    91095536      Controller chn  1 02 2d
    91095928      Controller chn  1 02 2c
    91096397      Controller chn  1 02 2b
    91096785      Controller chn  1 02 2a
    91097126      Controller chn  1 02 29
    91097554      Controller chn  1 02 28
    91097926      Controller chn  1 02 27
    91098270      Controller chn  1 02 26
    91098733      Controller chn  1 02 25
    91099079      Controller chn  1 02 24
    91099454      Controller chn  1 02 23
    91099833      Controller chn  1 02 22
    91100377      Controller chn  1 02 21
    91100763      Controller chn  1 02 20
    91101318      Controller chn  1 02 1f
    91101840      Controller chn  1 02 1e
    91102424      Controller chn  1 02 1d
    91103123      Controller chn  1 02 1c
    91103972      Controller chn  1 02 1b
    91107684      Controller chn  1 02 1c
    91108262      Controller chn  1 02 1d
    91108779      Controller chn  1 02 1e
    91109264      Controller chn  1 02 1f
    91109717      Controller chn  1 02 20
    91110208      Controller chn  1 02 21
    91110913      Controller chn  1 02 22
    91111455      Controller chn  1 02 23
    91112120      Controller chn  1 02 24
    91112642      Controller chn  1 02 25
    91113229      Controller chn  1 02 26
    91113710      Controller chn  1 02 27
    91114236      Controller chn  1 02 28
    91114778      Controller chn  1 02 29
    91115194      Controller chn  1 02 2a
    91115583      Controller chn  1 02 2b
    91116090      Controller chn  1 02 2c
    91116507      Controller chn  1 02 2d
    91116881      Controller chn  1 02 2e
    91117343      Controller chn  1 02 2f
    91117740      Controller chn  1 02 30
    91118235      Controller chn  1 02 31
    91118724      Controller chn  1 02 32
    91119309      Controller chn  1 02 33
    91119844      Controller chn  1 02 34
    91120459      Controller chn  1 02 35
    91121118      Controller chn  1 02 36
    91121834      Controller chn  1 02 37
    91122355      Controller chn  1 02 38
    91122937      Controller chn  1 02 39
    91123657      Controller chn  1 02 3a
    91124257      Controller chn  1 02 3b
    91124971      Controller chn  1 02 3c
    91125811      Controller chn  1 02 3d
    91126463      Controller chn  1 02 3e
    91127120      Controller chn  1 02 3f
    91127805      Controller chn  1 02 40
    91128459      Controller chn  1 02 41
    91129020      Controller chn  1 02 42
    91129611      Controller chn  1 02 43
    91130223      Controller chn  1 02 44
    91130835      Controller chn  1 02 45
    91131493      Controller chn  1 02 46
    91132102      Controller chn  1 02 47
    91132845      Controller chn  1 02 48
    91133684      Controller chn  1 02 49
    91134567      Controller chn  1 02 4a
    91148356      Controller chn  1 02 49
    91148814      Controller chn  1 02 48
    91149167      Controller chn  1 02 47
    91149497      Controller chn  1 02 46
    91149815      Controller chn  1 02 45
    91150126      Controller chn  1 02 44
    91150398      Controller chn  1 02 43
    91150704      Controller chn  1 02 42
    91151013      Controller chn  1 02 41
    91151320      Controller chn  1 02 40
    91151642      Controller chn  1 02 3f
    91151905      Controller chn  1 02 3e
    91152237      Controller chn  1 02 3d
    91152509      Controller chn  1 02 3c
    91152792      Controller chn  1 02 3b
    91153093      Controller chn  1 02 3a
    91153368      Controller chn  1 02 39
    91153667      Controller chn  1 02 38
    91153975      Controller chn  1 02 37
    91154291      Controller chn  1 02 36
    91154512      Controller chn  1 02 35
    91154834      Controller chn  1 02 34
    91155096      Controller chn  1 02 33
    91155445      Controller chn  1 02 32
    91155742      Controller chn  1 02 31
    91156050      Controller chn  1 02 30
    91156320      Controller chn  1 02 2f
    91156700      Controller chn  1 02 2e
    91156974      Controller chn  1 02 2d
    91157292      Controller chn  1 02 2c
    91157688      Controller chn  1 02 2b
    91157958      Controller chn  1 02 2a
    91158259      Controller chn  1 02 29
    91158630      Controller chn  1 02 28
    91158986      Controller chn  1 02 27
    91159370      Controller chn  1 02 26
    91159716      Controller chn  1 02 25
    91160100      Controller chn  1 02 24
    91160496      Controller chn  1 02 23
    91160880      Controller chn  1 02 22
    91161351      Controller chn  1 02 21
    91161731      Controller chn  1 02 20
    91162165      Controller chn  1 02 1f
    91162620      Controller chn  1 02 1e
    91163082      Controller chn  1 02 1d
    91163627      Controller chn  1 02 1c
    91164077      Controller chn  1 02 1b
    91164753      Controller chn  1 02 1a
    91165504      Controller chn  1 02 19
    91166399      Controller chn  1 02 18
    91168113      Controller chn  1 02 17

The lowest value I saw was 00 and the highest was 7f.

Could it be that you moved the Fader rather fast?

For non-motorized faders, movements that are distant from the current value are ignored, This is so that the value cannot jump.

You have to move the physical fader close to the current value and then Ardour will start to pick up and follow. . You can change the distance using the “Smoothing”. or you could try to check “motorized” to test.

One other thing that may be causing an issue, you seem to be trying to utilize Generic MIDI and a Binding Map at the same time (Your control protocol settings, MIDI Bindings Value seems to indicate utilizing a binding map already written for the AKAI MPKmini). So the issue may be the two things are conflicting with each other, and you might try without the binding map.

Also in your output of the MIDI trace I didn’t see the 00 and 7f values you mentioned?

Thanks for the help; I kind of gave up on this. I wanted to ride channels using a knob as a poor man’s fader. It should be doable in principle. But I sank too much time into this and didn’t get to ride a single track. It was never going to be the end state anyway. I ended up getting a control surface.

Ok, I also have the Akai MPK mini mk3 and somehow I figured out how to use the learn feature.
I just do not know (yet) how to store the settings and I do not know if that’s the
official way, but it works for me.

  • I connect the mk3, check that it is recognized by Ardour
  • In Edit → Preferences → Control Surfaces → I select the Generic Midi
  • Also click on “Show Protocol Settings” and connect the mk3 to Incoming and outgoing MIDI
  • Now put your mouse on a fader, press CTRL and middle mouse and while pressing move the knob on the AKAI
  • Now the fader should be controllable with that knob
  • repeat that for any fader you like

If someone knows an easy way how to store and recall please let me know

And I just found this video which seems to confirm somehow what I did

Fwiw, it’s also explained in the Ardour manual: The Ardour Manual - Generic MIDI Learn

1 Like

Nope, I followed the Generic MIDI Learn instructions and that didn’t work. See the first post in the thread, it’s following the instructions and describing where it goes off track.