Tuesday, September 8, 2015

Generic MIDI Channel aware Remote Codec+Map

If you have a controller capable of sending MIDI messages on multiple MIDI Channels, like an M-Audio Axiom's 4 Keyboard zones (so 4 MIDI Channels from the same keyboard) plus the Pads on Channel 10 or an Arturia BeatStep PRO that can send 2 sequences on their own MIDI Channel (1 and 2) and its Drum sequencer on MIDI Channel 10 plus the controller on, say, MIDI Channel 16, etc, then you certainly felt the need for a MIDI Channel-aware type of Remote Codec like this one.

Taking the BSP example, here's an example on how to get its 4 sources of MIDI into Reason with this Remote Codec+Map.

Add a Control Surface per MIDI source with these 3 easy steps:

1) Add a Control Surface from the "<Other>" Manufacturer and choose the correct "Generic Controller on MIDI Channel __ /<" Model with the MIDI Channel you'll need

2) Give it a proper name, so you know what's the real controller being used with this generic map (that you can totally customize on your own)

3) Select the proper MIDI In Port for it

You can ignore the Out Port on these generic maps unless you plan to customize the Codec too.

Repeat the above steps for each of the BSP sequencers (since that's the example I'm using here).

So, you'll add 4 Control Surfaces for BSP's Controller Mode, Sequencer 1, Sequencer 2 and Drums, each with its respective MIDI Channel set to what you're planning to use in the BSP and all of them pointing at the same MIDI In Port, since that's the one the BSP will be sending its MIDI data.

Don't worry with Reason's yellow warning. That's expected since you're declaring multiple Control Surfaces with a common MIDI Port. It warns you but won't block you from using them like it used to on much older Reason versions.

So, you'll end up with 4 new entries like these:

...and that's about it. After this, you can lock any of those controllers to specific rack devices and each will only receive the MIDI notes (or CCs in the BSP Controller mode's case) that are being sent on those specific MIDI Channels.

The big difference from using this solution instead of doing the MIDI Channel redirection into rack devices through the Advanced MIDI Device is that with this Codec you're able to record the MIDI data into the Sequencer, something that's not possible nor the main purpose of the Advanced MIDI Device.

So, here's the Zip with the files inside, including the ReadMe.txt with the usual installation instructions:

Koshdukai's Generic Controller MIDI Channel Remote Codec V.1.1.1 (201601)
Update: This new 1.1.1 version allows MIDI feedback for those wanting to send back to the controller the changes being done through the Reason GUI.
Use only if your controller is prepared to receive the same CCs it's sending on each control!
You can easily turn this feature off by selecting 'Not selected' in the Out port :)

...oh, and speaking of the Arturia BeatStep PRO, I'm still planning to do a specific Codec+Map for it someday, but I'm waiting for it to stabilize its feature-set so I can see how to take proper advantage of its closer integration with Reason through a specific Map.

Until then, I guess this generic one will suffice and hopefully will help others customize their own Codecs+Maps for their multi-channel controllers :)


  1. Dear Kosh,
    Thank you so much for the great job you are doing with the all these mapping and codecs. Your contributions are precious for the Reason's users.
    To be able to record Notes and CC through my controller QuNeo, I did implemented the Koshdukai_MIDIChannelX.remotemap and I can now record Notes from my QuNeo. But not the CC. They are interpreted as Note by Reason's sequencer.
    I guess that I have to modify the Koshdukai_MIDIChannelX.remotemap file. But this is too complex to my knowledge of electronic musician.

    Any hint ?

  2. Dear Unknown (I had to start like this ;)

    If that's happening, it must be because the QuNeo is sending MIDI Notes not CCs.

    Try to checking that with the QuNeo editor:

    See what's being sent by what pad/button.

    My generic codec supports CCs (passing them as-is to Reason) as long as the controller sends them :)

    Hope this helps.

    oh btw... try contacting Keith McMillen's support and ask for a specific Codec+Map for the QuNeo, maybe they'll make one. I know they did one for one of their other products (I think it was QuNexus).



  3. 1) I downloaded drivers from web side
    2) I programmed each Livid Base II bank on another channel
    3) I added "Generic Controller on MIDI Channel x" driver for each channel also I've set output & input on "Base II"
    4) The controller responds correctly on the input but output doesn't
    return any value, for example: when I touch controller slider I change the settings in Reason but Reason don't change controller backlight

    Can I count on your help?

    1. Hi drumz,

      Well, the version I published wasn't supposed to do MIDI feedback from Reason to the controller, so that's why it didn't work ;)

      Since you're the 2nd person to ask me about this feature, I guess I'll need to make available the tweaked version I did a couple of months ago that seemed to work fine for what the 1st person needed.

      This new version only works if the controller is expecting to accept the same CCs per control that each one is sending!

      I'll publish that version ASAP, so check back in a couple of days and it should be available for download here :)



    2. great job, but there is one problem with the display controller

      each set Midi Out of the channel display 00 instead of the correct number

      if Midi Out is not set, the channel is displayed correctly

    3. Well, I'm very sorry, but I really don't understand what you're describing :(

      Please keep in mind that, this is a *GENERIC* Codec as in, not made to work perfectly with a specific controller but well enough with all/any.

      If you really need a stronger integration with Reason, I guess your best bet would be to contact Livid and ask them about a Reason Codec+Map for that model or at least some help or enough info that may allow you to tweak an existing one, either from them for other model or even one of these generic ones.

      Sorry for not being more helpful on this, since I don't own that controller, it's quite unlikely for me to be able to make a specific Codec for it or turn any of these generic ones into something more than that.

      Hope Livid can be of more help than I was :)

  4. Hi Kosh,

    This thread may be a bit old but the topic is real and alive.

    I just want to say thanks for making and sharing this. It is a definite lifesaver not have to run a third party application at the driver level just to get the integration the Beatstep Pro needs.

    It is also by far the easiest way to map it to work correctly.


    1. Thanks, it's always great to know these are being used and useful :)

  5. The Generic MIDI Channel + Remote Codec+Map is exactly, what i am looking for!
    Unfortunatly it does not work for me - the new controller is not recognized by Reason...maybe my mistake?
    Configuration: Reason 8 + Windows 10 (64 Bit).
    I put the codec- and map-files in this directory:
    C:\ProgramData\Propellerhead Software\Remote

  6. Hi Tom,

    Try putting them in this path instead:
    C:\Documents and Settings\All Users\Application Data\Propellerhead Software\Remote

  7. Hi!
    After several attempts without any positive results I
    reinstalled Reason - now it works!
    Thank you very much for your great work! :-)

    1. Cool! Great to know you were able to make it work :)

  8. Great job - had me really scratching my head why I could connect an iPad to a MacBook runningReason via WiFi MIDI just fine, hear and control Reason's instruments from (say) Chordion or SoundPrism for example - but *NOT* record the results onto the seq. track for the instrument in Reason.

    Kind of glaring functionality omission IMHO by Propellerhead as I can do this natively in Cubase 7.5 with no hassle at all. So really glad to find your Codec with such clear instructions and works just brilliantly. Thanks a bunch, very much appreciated.

    1. Hi David, I'm really glad this Codec was helpful :)



  9. Hi Kosh, great idea for Reason! I reacently purchased a Beatstep Pro to control a couple of my hardware synths and then came across your codec. I downloaded it, but I don't have the path C:\Documents and Settings\All Users\Application Data\Propellerhead Software\Remote on my computer. I'm using windows 10 and just updated my Reason version to 9.2. Is there another path I could use to get it to work? Great videos, too. Now I'm interested in DrumBrute! If I can get this to work look for donation from me!!


    1. Hi Richard,

      Have you tried this instead?

      %ProgramData%\Propellerhead Software\Remote



  10. Hi Kosh, I just got this to work with my BeatStep Pro. Thank you for your help. I just sent you 20 euros for your trouble. If you should ever do a codec for the BSP let me know! That, as the British would say, "would be Brilliant!" Again, thank you for your help,
    Richard (prgsurfcmpsr@aol.com)
    P.S. I will pass onto other where they can find this codec. Great work!!

    1. Thank you so much! As you might imagine, any donation is very much appreciated. It allows me to also do my own donations to some of the donationware tools I end up using when building this stuff I share for free.

      I'm really glad that this Codec is helping you out get more out of the BSP :)

      Initially I thought of doing a specific BSP Codec but then I ended up using this Channel-aware one more and more with BSP so I put that project to rest.

      ...but I may start reconsider it again. I just need to figure out how best to make it work. Maybe just start with a specific Codec for BSP's control mode and leave the rest of its modes to this generic Channel-aware codec :)