Monday, September 26, 2011

Akai MPK mini & Reason

Update 2nd October 2011 - version 0.0.2 appears to work fine in Reason 6 (OSX).

Update 30th September 2011 - version 0.0.2 released, see below for details.

I picked up the Akai MPK mini, a "laptop production keyboard" clearly focused on portability.
(image sourced from http://www.akaipro.com/mpkmini)

I haven't used it enough to write a proper review yet, but there was one thing that did annoy me about it right out-of-the-box - it doesn't have any dedicated MIDI support in Reason or Record!

I should explain. MIDI controllers communicate with Reason & Record via a "codec" and a "remote map". The codec translates and associates incoming MIDI messages to specific 'control items', and the remote map is used to map these 'control items' to different Reason device controls.

But what makes your controller really useful is that a properly supported controller will auto-map its controls onto specific Reason device controls as you change devices.

For example, you can have a knob that maps to the first Combinator knob when a Combinator has MIDI focus, but then maps to the LPF frequency slider when you change to a Subtractor. The mapping is device-dependent and Reason takes care of it for you. You can also customise this mapping yourself.

Almost any MIDI controller will work with Reason as there are several 'generic' codecs that simply map keys, wheels, knobs, pads and sliders to generic 'controls'. But sadly if you are forced to use these codecs then you lose the auto-mapping feature - now your control simply generates a MIDI CC message on a fixed channel and this may correspond to... anything.

(Note that you can always use the 'remote map override' feature to assign any control to any Reason control - this can be useful occasionally but it's tedious to set up and does not scale to a full controller).

To cut a long story short, I have created suitable Lua Codec and Map files for the Akai MPK mini. If you use these, you will be able to make almost full use of the device, and the knobs and pads will map to sensible controls on each Reason device. If you wish to customise the per-device mapping, simply edit the .remotemap file and add your own rules.

The latest version supports:
  • Kong pads - turn off CC and PROG CHANGE, then Pad Bank 1 maps to Kong pads 1-8, Pad Bank 2 maps to pads 9-16.
  • Switches - turn on CC and each pad will act as a switch. Pad Bank 1 maps to switches 1-8, Pad Bank 2 maps to switches 9-16. Note that 'toggle' mode for the switches does not work correctly, and probably never will, so the pad lights will not stay lit.
  • Prog Change - turn on PROG CHANGE and each pad will generate push-button events. Currently these are set up to send Transport messages:
    • 1 - rewind
    • 2 - ffwd
    • 3 - stop
    • 4 - play
    • 5 - record
    • 7 - change to previous sequencer track
    • 8 - change to next sequencer track
  • Knobs - eight knobs that are mapped to 'sensible' Reason controls.
I used the Akai LPD8 lua codec and MPK49 remotemap files that ships with Reason as the basis for this project. I used an image of the MPK mini from Akai's website for the device picture. Akai's support page is here.


Installation

The latest version is available here. It is a zip file. The files in the Remote directory should be copied into your user's Remote directory:
  • OSX: Macintosh HD/Library/Application Support/Propellerhead Software/Remote
  • Windows XP: C:/Documents and Settings/Application Data/Propellerhead Software/Remote/
  • Windows Vista: C:/Documents and Settings/Program Data/Propellerhead Software/Remote/
  • Windows 7: C:/ProgramData/Propellerhead Software/Remote
Copy these files, maintaining this directory structure:
  • Remote/Codecs/Lua Codecs/Akai/AkaiMPKmini.luacodec
  • Remote/Codecs/Lua Codecs/Akai/AkaiMPKmini.lua
  • Remote/Codecs/Lua Codecs/Akai/AkaiMPKmini.png
  • Remote/Maps/Akai/AkaiMPKmini.remotemap
Now restart Reason so that it sees the new files. Go into Preferences and select your new MIDI controller - you can tell Reason to try and auto-detect the MPK mini, or you can add it manually.


You must set up the MPK mini to generate the correct MIDI messages. To do this, run the "Akai MPK MINI Editor" (on the CD provided with your controller, or downloadable from Akai's product support page) and load a preset from the Presets directory into the bank you want to use. You must click "Upload" after loading to actually program the hardware! I have provided preset files for all four presets so that you can choose which one you want to use.
  • Profiles/AkaiMPKmini.preset1
  • Profiles/AkaiMPKmini.preset2
  • Profiles/AkaiMPKmini.preset3
  • Profiles/AkaiMPKmini.preset4
In the latest version these presets are identically configured:


Customisation

Because the Lua Codec maps almost every control on the controller to a 'control item', you can customise the device mappings however you want. Simply edit the AkaiMPKmini.remotemap file to associate the MPK mini's controls with whatever Reason device controls you want. More information can be found here.

The available control items are:

  • Keyboard
  • Knob 1-8
  • Pad Button 1-16
  • Prog Change 1-16

Release History

Version 0.0.2 - 20110930
  • Added support for Transport controls in Record 1.5.

Version 0.0.1 - 20110926
  • Initial release, supports AutoDetect, Kong pads, CC pads (switches), Prog pads (transport), and knobs. All four presets are identical.
  • Tested in Reason 5 on OSX only.

Disclaimer


I am not affiliated or associated in any way with Akai or Propellerhead. I have created these files myself with the files and programs legally available to me. 

You download and use these files entirely at your own risk!




Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 New Zealand License.

26 comments:

  1. Thank you so much. This works a charm in R6 on W7, so you've done a solid job. I especially love having the transport buttons on the pads.

    ReplyDelete
  2. First off, great work on this! It's been very useful. Also, I made a modified version of this remote map to support the new devices in Reason 6 and added a lot of additional (optional) control using Keyboard Shortcut Variations (normally via [Ctrl]-[Alt]-[1,2,3,etc] on PC or [Command]-[Option]-[1,2,3,etc] on Mac). I'm using Prog Change Pads 15 and 16 to move down/up through the key variations so it's like having up to 8 additional banks of controls. This allows for even more control of settings like 14:2 Pan/EQ, Redrum sends, Kong muting/soloing, extra synth paramaters, etc. The Reason 6 public documentation is lacking on some of the new devices parameters so I hacked together what I could from other map files. I'm pretty happy with it so far.

    The same mini preset files and codecs work so no changes are needed on those. I'll be glad to share the extended map with anyone who would like to try it out. Contact me at Buddhaphi (at) gmail.com. Full credit is given to the initial efforts of this website, of course.

    ReplyDelete
  3. Ah this worked great! Many thanks for doing this!

    The Win7 path is:
    C:\ProgramData\Propellerhead Software\Remote

    ReplyDelete
  4. Thank you Andrew, I've added your Win7 path.

    ReplyDelete
  5. Hello think I did everything right, but when I try to load the presets, I can only see the original presets, I can't see a profiles folder. Where can I find these? (I have Win7)
    Thanks

    ReplyDelete
  6. Hi depe, sorry to confuse you, I used the terms "profiles" and "presets" interchangeably. However these are located in the zip file you downloaded and you simply load the one you want with the Akai MPK MINI Editor. They are all identical, but I provide four because there's no way to load a Preset made for slot 2 into, say, slot 3 - you have to use the one that was created in slot 3 originally.

    ReplyDelete
  7. Im a bit confused on what the "Remote" directory is. That Win 7 path you have on your post does not exist for me, I do not have a Program Data folder on my C: Drive.

    My codecs however are here:
    C:\Program Files (x86)\Propellerhead\Reason\Codecs

    I pasted the luacodec into this folder but nothing was changed.

    ReplyDelete
  8. @williamguerra - I think the Program Data folder is 'hidden' by default, you need to go into the Explorer options and enable display of hidden folders. I don't have Win7 handy so I can't easily check.

    This may help, if you have access: https://www.propellerheads.se/forum/showpost.php?p=974301&postcount=36

    ReplyDelete
  9. Actually I'll repost Recurse's helpful comment here:

    "... you need to make sure that you can view hidden folders and files. Get a Windows Explorer window open, then at the top left above the folders list, click on Organize. Next click Folder And Search Options. Change tab to View, then about half way down the large box in the middle of the window, click the Show Hidden Files, Folders or Drives option. Click apply in the bottom right of the window.

    Now go to the Folder where you can see Program Files and Program Files (x86). Underneath with a faded icon should be ProgramData. Go in there, find the Propellerhead folder and in there will be the Remote folder. In there you will find the folders you seek. Copy the files into the folders and you're away. "

    ReplyDelete
  10. You're a life saver! Thanks so much! Just one thing: I can't seem to setup the rotary knobs as filter envelopes... how would I do this? My apologies if I missed it somewhere on the page.

    ReplyDelete
  11. Hi Karl,

    There are two ways you can do this - you can assign a rotary knob to any single control on any Reason device using the Override feature - right click on the control and select "Edit Remote Override Mapping", and use the dialog to assign a rotary to the control.

    Alternatively you may be able to map one or more rotary knobs to different controls (such as filter envelope in Subtractor, for example) by editing the .remotemap file I provided with a text editor - find the appropriate section (e.g. Subtractor) and modify it to map the controls as you prefer. You should look at other sections or the original MPK49 .remotemap for examples. It's not too hard once you understand what it's doing. Good luck!

    ReplyDelete
  12. Thank you but I have a problem here. I did everything you said but the keyboard is not detected by reason...

    ReplyDelete
  13. Hi Monsieur, sorry to hear that. It's hard to know what might be wrong. Maybe try going through the steps again, one at a time, perhaps you missed something? Note that Reason has to be restarted after you've got everything in place. If you're still stuck, try the Props forums, or PM me there.

    ReplyDelete
  14. Good day ,
    I would like to add control info for filtering and resonance. Do you have an update that will allow me to do that?
    Robbisgood@gmail.com
    Thanks
    Robb

    ReplyDelete
  15. Hi Robb, I don't have any plans for any updates at the moment, but it's pretty easy to modify the files I provide. Please see the 'Customisation' section and the link provided in the post above. With this, you can assign any control on the Mini to almost any switch, control knob or slider on any Reason device, including Frequency and Resonance controls.

    ReplyDelete
  16. the mini mpk remoate map is not responding to what it says. do you know why?

    Scope Propellerheads NN-XT Advanced Sampler
    // Control Surface Item Key Remotable Item Scale Mode
    Map Knob 1 Filter Freq
    Map Knob 2 Filter Res
    Map Knob 3 Amp Env Attack
    Map Knob 4 Amp Env Decay
    Map Knob 5 Amp Env Release
    Map Knob 6 Mod Env Decay
    Map Knob 7 Master Volume

    Map Pad Button 3 Sample

    ReplyDelete
    Replies
    1. Hard to tell, but make sure you've loaded one of the supplied presets into your Mini. Do other devices work OK? Have you changed anything yet?

      Also if you edit the file, make sure you don't accidentally remove tabs or turn them into spaces. Please PM me (meowsqueak) on the PHeads forums if you want to debug this further.

      Delete
  17. where can i get the supplied presets? what is a supplied preset?

    ReplyDelete
    Replies
    1. In the zip file there is a directory called "Presets", which contains four files. You can load these into your Mini with the application supplied by Akai. Simply choose which bank (1,2,3,4) you want to overwrite, and use their app to load the preset file. Then the Reason codec should work properly.

      Delete
  18. MeowSqueak,

    Thanks so much for doing this! It's awesome and it taught me about stuff I didn't know in the process. I do have some questions thought, if you have time to help me.

    Above you wrote "Kong pads - turn off CC and PROG CHANGE, then Pad Bank 1 maps to Kong pads 1-8, Pad Bank 2 maps to pads 9-16." I can't seem to get this to work. Where do you turn off CC and PROG CHANGE?

    This is how it's working for me:

    On the mini, PAD BANK 1 is lit up, while CC and PROG CHANGE are not. And yet, Akai Pads 1-4 map to Kong 9-12, and Akai Pads 5-8 map to Kong 13-16.

    When PAD BANK 2 is lit up on the mini with CC and PROG CHANGE not illumintaed. Akai Pads 1-4 trigger nothing on Kong while Akai Pads 5-8 map to Kong 1-4.

    I tried messing around with MPK MINI Editor.app, using your presets or making my own, but that would not cause the actual mini to change mappings in any way.

    What am I missing?

    Thanks,
    Reuben

    ReplyDelete
  19. Hi Reuben, I think you did understand me correctly - I meant that you should turn off the "CC" and "PROG CHANGE" buttons on the Mini - those two just under the "Pad Bank 1/2" buttons. It sounds like you have done this but it still doesn't work.

    I think that perhaps you haven't properly loaded the Presets into your device - because by default I think it did what you describe, which led me to do this whole thing in the first place.

    Does the "Quick Sample" recording window pop up if you select Kong, turn on CC, then hit pad 3?

    Perhaps double-check that you completed all the steps of the installation, and make sure you close Reason and restart it. It ought to work - it has been working properly for lots of people :)

    ReplyDelete
  20. I've followed your instructions to the T. And for some reason it's still not working. It's as though the Akai MPK MINI Editor is not communicating to the Mini and causing it to change.

    I've deleted and reinstalled your stuff and even deleted and reinstalled Akai MPK MINI Editor from Akai's website.

    ReplyDelete
  21. Reuben - can you use some sort of MIDI debugging program (that shows MIDI messages in real-time) to check that the Preset programming has actually had an effect? Maybe send me a description of the MIDI traffic you are seeing in this case (send to meowsqueak at gmail dot com) and I'll compare against what I see. However if the Mini isn't sending the right messages even after programming, it might indicate something wrong with your Mini. It's very hard for me to debug this, I really don't know anything more than what I've written on my blog already.

    ReplyDelete
  22. Hey meowsqueak and Rueben! I am having the exact same issue as Rueben. Has there been anything that has been found to fix this? It seems like the MPK is not communicating just as Rueben said! The transport controls and stuff work on the pads (prog change) but the CC and the c1 mapping is not working. I tested my pads with the subtractor and they are not playing notes c1 and up. Also I tried changing one of the pads to a different note and it is not changing anything. Very odd.

    ReplyDelete
  23. HalyconDigest: Reuben did find a fix - you must click "Load Preset", locate the file, and then you must click "Upload" to actually update the Mini hardware. If you don't do this, it won't actually upload the changes. You should get a green "Upload Successful" dialog.

    ReplyDelete