Improving Akai MPK keyboards in Reason

When you use the rotary controls on the Akai MPK49/61/88 keyboards with Propellerheads Reason there are some problems. Even though the encoders are continuous with no end stops, they put out absolute position info which doesn't correspond to the value being controlled. As you switch tracks, the rack device parameters which the rotaries are mapped to change. Once you move the the rotary just a little bit, the value jumps rather than change smoothly.

Let's say you have a the perfect patch dialed up on a device. If a knob moves a tiny bit it can cause the parameter it's contolling to change potentially alot.  If you notice that right away, you can always hit Undo to put things back.  However, suppose you're scrolling up and down the tracks in the sequencer when a knob moves. If there is nothing playing you won't know something changed. You make other changes. Now when you press play, that track sounds totally different. Undo won't help you now either. 

The unit is capable of putting out relative (Inc/Dec NRPN) values, but unfortunately with the default configuration Reason is unable to read this. If Reason could read NRPN messages then the rotaries would simply nudge parameters up/down by a little bit as it's turned which would smooth everything out.

Likewise, the switches on the MPK keep their own absolute state and remain lit or dark regardless if the switch it's mapped to is on or off. So sometimes you need to double press the button to cause the switch state to change.  It is very confusing!

I modified the Remote Codec that Akai supplied in order to fix these problems. See how to use this.