Monday, September 26, 2011

Akai MPK mini & Reason

Introduction

In 2011 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).

My Solution


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:
  • Compatible with Reason 5 / Record 1.5 to Reason 6.5.3 - may work with future versions too.
  • 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. Note that Knob 1 is the top left knob.
  • Keyboard Sustain (Damper Pedal) support - hold the "Sustain" button to activate.
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.

Upgrading to 0.0.3 - important note!


If you are upgrading to 0.0.3 from an earlier version, you must reprogram your controller using the "Akai MPK MINI Editor" as the CC values generated by the pads have changed.

To upgrade, simply follow the Installation procedure again. You do not need to remove the old files, just make sure you overwrite them with the new files from the zip file.

If you have performed any of your own customisation (for example the .remotemap file), be sure to back up your changes before upgrading. You will have to manually reapply your changes afterwards.

Installation


The latest version 0.0.3 is available here. It is a zip file. Unzip it somewhere handy.

There are two parts to this installation process. Part 1 involves copying the Remote files to the correct destination on your system. Part 2 involves reprogramming your MPK mini with the provided Preset. You must complete both parts to have a successful installation.

Part 1 - Copy the Remote Files


The files in the Remote directory should be copied into your user's Remote directory:
  • OSX: Macintosh HD/Library/Application Support/Propellerhead Software/Remote
    • it is also possible to install into /Users/[username]/Library/Application Support/Propellerhead Software/Remote if you want to keep them separate from your main Reason installation.
  • 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
Carefully copy all of these files, strictly 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.

But before this will work, you must set up the MPK mini to generate the correct MIDI messages. Now complete Part 2.


Part 2 - Load the MPK mini Preset


The provided Preset ensures that your keyboard produces the correct MIDI messages are received by the Remote codec (which you installed in Part 1). To install the Preset:
  • Ensure neither Reason nor Record are running - they may interfere with this process.
  • Run the "Akai MPK MINI Editor" (on the CD provided with your controller, or downloadable from Akai's product support page)
  • Click "Load Preset" and load the "Reason.preset" file from the Presets directory that you earlier unzipped.
  • This will automatically switch the display to Preset Slot 1, but you can upload the new preset to any Slot you wish by clicking the "Preset #" drop-down and select the slot number you want to upload into:

  • finally click the "Upload" button, and then click OK:

  • You can repeat this upload process for the other Preset Slots if you like, but note that uploading a Preset to a Slot will completely overwrite any data already there.

 (Previous versions had four identical Preset files, one for each Slot. However I realised that you can upload one file to any Slot with the above procedure, so now there is just one Reason preset).

In version 0.0.3 I have adjusted the CC values generated by the Pads to start at 65, rather than 64, as the first pad was interfering with the Sustain function.



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
  • Sustain
  • Knob 1-8
  • Pad Button 1-16
  • Prog Change 1-16

Updates

Update 28th February 2013 - version 0.0.3 released, see post for details. If you are upgrading, please read this post carefully.

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.

Release History

Version 0.0.3 - 20130228
  • Added support for Sustain / Damper Pedal.
  • Adjusted base CC for pads from 64 to 65.

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.

64 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
    Replies
    1. Hi meowsqueak, hope you are still following this thread! Can you walk me through what you are describing in the second paragraph?

      Delete
    2. Hi Karl,

      It's been a long time since I've looked at this - you'd probably do better than me just by trying it out yourself :)

      Essentially, the .remotemap file associates a particular device's controls with the Controller's controls. So say you want to control the Subtractor's filter envelope attack time with Knob1 - you first find the Subtractor section in that file, then edit it so that the correct control is associated with Knob 1. I don't have the specifics on hand, but if you open another file like the MPK49 file supplied by PH, you should see enough examples to figure it out.

      Then save the file, re-open Reason, and see if it works. Give it a go - it's not too tricky :)

      Delete
  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
  24. For some reason the MPK Mini Sustain button isn't working for me in Reason 6. I've loaded your presets and they seem to work great otherwise.

    I've found that if I set up the MPK Mini as a generic control surface as illustrated in this video the sustain button seems to work just fine:
    http://www.youtube.com/watch?v=GbuspnnFQts

    In addition, I've used MIDI OX to confirm that the sustain is working and the signals are being sent.

    No one else here has mentioned this as a problem - am I the only one with this issue?

    Thank you!

    ReplyDelete
  25. Unknown: thanks for the info. This may be a simple oversight on my part, not sure yet. I'll investigate next time I'm working on this.

    ReplyDelete
  26. I'm really really Thank You. You are B.I.G. :)
    Works perfect for me.

    ReplyDelete
  27. If anyone is still out there, I have an issue, i cant use my akai mini midi on the previously opened vst, like ill open kong make something, then open thor, use thor but when i go back to kong the midi wont work, help me rhonda help help me rhonda

    ReplyDelete
  28. Grandiose: I have the same problem. Apparently, when I try to switch into a present for say a Kong from a subtractor, the midi doesn't work at all. The Mini editor doesn't respond to preset changes when it's open with Reason alongside it.

    ReplyDelete
    Replies
    1. Are you using Reason 6.5.1? Windows or OS X? I haven't seen anything like that myself and I'm at a loss to explain it, I'm afraid.

      Delete
  29. Dude.. This is awesome! works like a charm in one go. Thanks for saving me the tedious labor.. ;D

    ReplyDelete
  30. I like the remote you created. My only issue is this, the mapping for knob 1 controls rotary 1 (in the combinator), it also controls the Mod wheel. Because of this when you turn knob 1 both the Mod wheel and rotary knob 1 move.

    ReplyDelete
    Replies
    1. Hi Sivad, that is a good point. If you don't like this behaviour (it was actually intentional as the MPK mini has no mod wheel) then it's a simple change. I encourage you to open the files in a text editor and see if you can work out how to do it for yourself. It's not difficult at all.

      Delete
  31. There is no "Macitosh HD" option in Finder for me, I have a macbook air.

    ReplyDelete
    Replies
    1. Substitute with whatever your 'main disk' is called - I don't know what Apple calls it on the Air, but it will be something...

      Delete
  32. Do I need to have bought Reason, or will it work with the demo of it?

    ReplyDelete
    Replies
    1. Good question - I don't know the answer I'm afraid. Perhaps you can try it with the demo and let us know if it works?

      Delete
  33. Thanks for this. Having knobs auto assigned to devices is fantastic. One thing this seems to be missing is the MPK's sustain button - not working as a sustain pedal?

    ReplyDelete
    Replies
    1. Do you know whether the sustain button works correctly in Reason before applying this modification?

      Delete
  34. Thanks for the quick response :)

    Yes, it does. I just deleted my "Akai MPK mini" profile and added the MPK again as a " MIDI Control Keyboard". Sustain works as expected.

    ReplyDelete
    Replies
    1. I believe I've fixed this for you in the new version - 0.0.3 - please let me know if it looks good for you.

      Delete
  35. Works like a dream :) Thanks so much.

    In your instructions it might be worth including the destination folders for the .preset files. On my XP system it is "C:\Program Files\AkaiPro\MPKminiEditor\Presets".

    Also, on the subject of instructions, I was experiencing the problem with drum pad assignment until this latest update prompted me to read back through the comments. It might be worth emphasising in your instructions that the sequence of actions required (in XP at least) is:

    0> ensure Reason is not running (it may "hold on" to your MPK mini when you try to reprogram it)
    1> open MPK mini editor
    2> select "load preset" and navigate to the folder noted above
    3> select the "reason.preset" file and "open"
    4> select "1" as the "preset#"
    5> click "upload"
    6> click "ok" on "upload successful" dialog
    You can repeat steps 4 to 6 selecting 2,3 then 4 as the "preset#" to make all 4 presets work identically with Reason.

    Thanks again. A sustain 'pedal' AND properly assigned drum pads. Great work!

    Stuart

    ReplyDelete
    Replies
    1. Thanks Stuart, I've incorporated most of your suggestions. There's actually no need to put the .preset into the Editor directory, but no harm done if you do.

      Glad you're pleased with the codec - have fun!

      Delete
  36. Replies
    1. No problem AcidicSphere & Brian, glad you find it useful.

      Delete
  37. I hope someone can help me out:

    I installed everything as mentioned here before. The only problem is that the upload button succesfully doesn't turn green in the editor. In fact there doesn't show up anything to indicate that the upload was wright.
    In reason 6 the minimpk shows up and all seems ok. But when I press anything on my minimpk there is no signal going into reason 6

    Cheers
    William (from Holland)

    ReplyDelete
    Replies
    1. Hi William, that's an odd-sounding problem. I don't see that issue here so I can't really help you, but I'd suggest making sure that you have the latest version of all relevant drivers. Are you using Windows or OS X?

      Delete
  38. Hey man! This is awesome!!! thank you very very much!

    Do you know where i can download something similar for the MPK49 Controller?

    Regards.

    ReplyDelete
    Replies
    1. No problem. The MPK49 works fine out-of-the-box with Reason if you change it to the Reason preset - is there a particular aspect of this you're not happy with?

      Delete
  39. Just wanted to post that this is simply fantastic. Your instructions and code worked perfectly fine out of the box for Reason 7 and my Akai MPK Mini.

    Many thanks!

    ReplyDelete
  40. hi im a beginner at this reasons and mpk mini i was wondering if this download would help me make any of my mpk mini knobs work as a master volume and if it would be able to make any of my pads one of my custom made souds thru reasons7

    ReplyDelete
    Replies
    1. Hi jarvin128 - without this, your MPK Mini will work with Reason but it will be somewhat suboptimal and confusing. This download helps to make more sensible associations between knobs and pads within Reason.

      You can then use the pads to trigger your custom sounds from Reason instruments.

      Delete
  41. thank you but i cannot seem to find part 1 and part 2 by that i mean the remote dictionary is this located in reasons or my mac? I'm sorry to ask u all this but I'm literally in the 1st month of teaching my self reasons and producing

    ReplyDelete
    Replies
    1. Hi jarvin128 - "dictionary"? Do you mean "directory"?

      It's located on your Mac, however if your main disk is not called "Macintosh HD" (because someone changed it) then you'll need to adjust the directory paths accordingly.

      Delete