I recently acquired a new MIDI controller to augment my little home studio: a AKAI MPK mini3. While I am, overall, satisfied with it, some issues are worth mentioning.
The user documentation provided with the controller itself or available for download on AKAI’s website is reduced to the bare minimum. Sure, the controller is simple enough to use, but it does have some features that are completely undocumented.
One such feature (which I’ll get back to later in this note) is the
adjustment of velocity sensitivity, which requires pressing the
Level button and holding it for approximately 5 seconds – this puts
the MPK in a mode where the knobs K1 to K4 can be used to alter the shape of
the velocity response curve, but you would never know that if you were to rely
solely on AKAI’s documentation.
What’s the point of having features your users don’t know about? It shouldn’t take viewing a YouTube video from a random user to learn about a feature ! This leaves me wondering how many other features are “hidden” on that device, waiting for someone to discover them…
Not only the user documentation is poor, but technical specifications are also lacking. This is the first MIDI device I ever came across that does not come with a MIDI implementation chart. The System Exclusive messages (SysEx) that are exchanged between the device and its settings editor software (which of course is only available for Windows and mac OS) are not documented, so they need to be reverse-engineered if anyone is to create a settings editor for “alternative systems” such as GNU/Linux – a task that, fortunately, has already been undertaken by several people.
The absence of technical specifications is really disappointing, especially if I compare with another of my MIDI devices, a KORG microX synthesizer for which the manufacturer has always provided the full specifications – more than 50 pages describing in details all the SysEx messages emitted and understood by the synthesizer. My own Kmxtool project was made possible by the availability of those specifications.
One problem with the MPK mini3 that becomes apparent as soon as one starts
playing with it is that most Note On events are emitted with low
velocity values, often well below 64 and sometimes as low as 8 (which seems to
be the lowest velocity value the MPK mini3 is capable of emitting). Even
depressing the keys as fast and forcefully as possible never yields events
with a velocity higher than approximately 100. There is the
Level key to force the emission of events at the maximal velocity of
127 regardless of the pressure applied, but this only affects the drum pads,
not the standard keys.
This is where the hidden feature I mentioned in the previous section is
useful – which makes it all the more disappointing that this feature is
hidden! Hold the
Full Level for about 5 seconds, and you can then
use adjust how the MPK mini3 translates the force applied to each key into a
MIDI velocity value.
There are four parameters you can adjust, called
v4, using the first four knobs K1 to K4.1 They all take a value ranging from 1.0 to 40.0,
with the constraint that they must have decreasing values from
v1 cannot have a lower value than
v2, which cannot have a lower value than
cannot have a lower value than
v4. You can use the keys normally
while the MPK mini3 is in this “velocity adjustment mode”, so you can
immediately test the effect of any change you make to the parameters. Once you
are satisfied with the way the keyboard responds to your touch, save your
changes and leave the velocity adjustment mode by again holding the
Level key for about 5 seconds.
What follows is my understanding of what those parameters mean and how to adjust them to get the type of velocity response you want.
I believe the
v4 parameters represent the Y
coordinates of 4 control points that determine the shape of the MPK mini3
velocity response curve (Figure 1). Basically,
v4 influences the velocity emitted when the lowest pressure is
applied to a key,
v1 influences the velocity emitted when the
highest pressure is applied to a key, and
influence the velocity emitted for mid-range pressures.
To better understand the effect of these parameters, a simple test is to
set them at their maximal (or minimal) values. With maximal values
v3: 39.6, and
v4: 39.4; Figure 2, left panel), the curve is
completely shifted towards the top of the output velocity range. Then, almost
any pressure will always emit the highest velocity value of 127. Only a very
faint pressure will manage to hit the leftmost part of the curve and produce
lower velocity values. Conversely, with minimal values (
v3: 1.2, and
v4: 1.0; Figure 2, right panel), the curve is completely shifted
towards the bottom of the output velocity range. Then, most key presses will
produce very low velocity values – practically speaking, the device will be
almost silent. Only a very high pressure will manage to hit the rightmost part
of the curve and produce higher velocity values.
With that in mind, you can shape the response curve to get the kind of
answer you like. For reference, the left panel on Figure 3
shows the original response curve of my MPK mini3 (
v4: 2.4). The curve
is greatly shifted towards the bottom, which is why most key presses tend to
produce low or very low velocity values. The right panel on the same figure
shows the curve I am now using (
v4: 9.0); it is closer to a linear curve,
but with a flattened region in the center. With such a curve, most key presses
will produce mid-level velocity values, but there are still room to reach both
the lower and higher ranges.
(I am not pretending that “my” curve is ideal, though I do believe it is better than the default one. The point is that you should try tweaking the parameters until the MPK mini3 behaves in a way that you like.)
Even with a custom velocity response curve with a high
parameter, I found that the MKP mini3 still sometimes emits events a minimal
velocity, even if I apply a decidedly not minimal pressure to the keys. Since
there is (seemingly, unless it’s another hidden feature…) no way to set the
minimal velocity (that is, set the Y intercept of the velocity response
curve), I use a workaround based on the MIDI Velocity Adjust LV2
plugin (part of the x42
In Qtractor, I set up a MIDI input channel dedicated to the MPK mini3. The MPK mini3 MIDI output is connected to that channel using QjackCtl’s patchbay, so that all events from the MPK mini3 arrive exclusively in that channel.
I then add to the MPK mini3 input channel:
The main MIDI input is then used to pilot the different tracks that I set up as usual.
With such a setup, any event coming from the MPK mini3 will go through the filter, where its velocity will be adjusted if needed (if for whatever reason the MPK mini3 emitted an event with ultra-low velocity), before arriving to the actual MIDI tracks. This complements nicely the custom velocity response curve set directly on the device.
Black bal, but I have not figured out what it does…