Akai MPK25

Akai MPK25
You might actually have space enough on your desk for one of these to play while doing something else. :)

This is a small-ish (477 mm x 359 mm x 88 mm, 3.4 kg) MIDI controller (as in no sound generators, only MIDI) with 25 normal size "semi-weighed" synth keys. There are also some pads and knobs and switches as well as single input ports for one footswitch and one continous pedal. This probably accept common keyboard pedals.

The advertising material rarely mentions it, but the keys are velocity sensitive as are the pads. There is a single aftertouch ribbon sensor for the keys and individual force sensors for the pads. Pads are criticized for being unresponsive, spongy, and still prone to false triggers. There are some replacement pads available as well as many Youtube videos about them.

USB

USB registers three "output" devices and two "input" devices for messages from the controller to the host and host to controller respectively. (lsusb)

According to "midi IO details" pdf, the first carries 16 channels with the controller keys, pads, buttons, knobs etc on them. The LCD might show A/B output activity when connected to USB. Output A should be this (first) port. The second carries MIDI Output B.

The third USB output device should repeat messages from the MIDI IN connector. Likewise the second input device mirrors MIDI OUT connector.

$ amidi -l
Dir Device    Name
IO  hw:2,0,0  Akai MPK25 MIDI 1
IO  hw:2,0,1  Akai MPK25 MIDI 2
I   hw:2,0,2  Akai MPK25 MIDI 3
$ aseqdump -l
 Port    Client name                      Port name
  0:0    System                           Timer
  0:1    System                           Announce
 14:0    Midi Through                     Midi Through Port-0
 24:0    Akai MPK25                       Akai MPK25 MIDI 1
 24:1    Akai MPK25                       Akai MPK25 MIDI 2
 24:2    Akai MPK25                       Akai MPK25 MIDI 3
$ aseqdump -p 24:0
Waiting for data. Press Ctrl+C to end.
Source  Event                  Ch  Data
 24:0   Note on                 0, note 60, velocity 62
 24:0   Note on                 0, note 57, velocity 59
 24:0   Note on                 0, note 64, velocity 55
 24:0   Note off                0, note 60, velocity 0
 24:0   Note off                0, note 57, velocity 0
 24:0   Note off                0, note 64, velocity 0
 24:0   Control change          0, controller 17, value 24
 24:0   Control change          0, controller 17, value 25
 24:0   Control change          0, controller 17, value 26
 24:0   Control change          0, controller 18, value 1
 24:0   Control change          0, controller 18, value 2
 24:0   Control change          0, controller 18, value 3
 24:0   Control change          0, controller 18, value 4
 24:0   Note on                 0, note 71, velocity 18
 24:0   Channel aftertouch      0, value 47
 24:0   Channel aftertouch      0, value 48
 24:0   Channel aftertouch      0, value 44
 24:0   Channel aftertouch      0, value 35
 24:0   Channel aftertouch      0, value 14
 24:0   Channel aftertouch      0, value 0
 24:0   Note off                0, note 71, velocity 0
 ...

Alsa vs Jack

For getting ALSA MIDI devices to appear in Jack (jackd2), a2jmidid seems to be recommended. Use -e to export hardware devices.

$ a2jmidid -e
JACK MIDI <-> ALSA sequencer MIDI bridge, version 8
(7383d268c4bfe85df9f10df6351677659211d1ca) built on Thu Jan  1 02:00:00
1970
Copyright 2006,2007 Dmitry S. Baikov
Copyright 2007,2008,2009,2011,2012 Nedko Arnaudov

Bridge starting...
Using JACK server 'default'
Hardware ports will be exported.
Bridge started
Press ctrl-c to stop the bridge
port created: Midi Through [14] (capture): Midi Through Port-0
port created: Midi Through [14] (playback): Midi Through Port-0
port created: Akai MPK25 [24] (capture): Akai MPK25 MIDI 1
port created: Akai MPK25 [24] (playback): Akai MPK25 MIDI 1
port created: Akai MPK25 [24] (capture): Akai MPK25 MIDI 2
port created: Akai MPK25 [24] (playback): Akai MPK25 MIDI 2
port created: Akai MPK25 [24] (capture): Akai MPK25 MIDI 3

You'll see them appear in e.g. qjackctl. It can be added as a startup script (a2jmidid -e &) in the config. Ardour3 MIDI track switch matrix will also show them by sensible names.

Power

6V regulator cable
Quick and dirty 6V "bump in the wire" adapter. Solder together, dial pot to suitable voltage, hot glue the pot and wires using hot air and shrinkwrap with same.

Manual says it will not send on MIDI OUT if powered via USB. The MIDI OUT instead echoes MIDI data sent from USB host and the controller pretends to be a simple USB-MIDI bridge. Also, only port A messages will be sent to the MIDI OUT connector. If USB is not used, MIDI IN connector will also be entirely ignored.

I wanted to use MIDI out from the keys, so I needed the 6V option. I hacked together a 6V regulated cable with a 2.1mm DC jack to power the Akai.

Links