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 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 :)

Koshdukai's Generic Controller MIDI Channel Remote Codec V.1.2.0 (202006) 
Update: This new 1.2.0 version includes a Remote Map Scope for EMI/MIDI OUT Device, pre-mapping each of the MIDI CC to the respective rack device's "CC out" parameters.

...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 :)

2020/04/14: This Codec is becoming a must-have with the increased amount of multi-channel controllers being released. It's perfect to use with the new Arturia KeyStep PRO, taking advantage of its 6 MIDI Channels: 4 Sequencer channels, 1 Drums channel and 1 Control channel (for the 5 Encoders  and Loop strip MIDI CC output).

2022/06/14: After years of providing this Codec+Map for free and getting a dozen Donations (Thank you! You all know who you are ;D), I've decided to try, for the first time, an "e-shop" platform to see how that goes :)  ...and used a value (minus VAT) based on the donations that were made throughout these years.
Needless to say (as almost all here), this is an experiment :)

2023/01/15: Friendly reminder to all Windows users, about the Remote install path.
Like it's mentioned in the ReadMe.txt file, you should primarily check if you have this folder path
C:\Documents and Settings\All Users\Application Data\Propellerhead Software\Remote
which should be equivalent on more recent Windows versions to this:
%ProgramData%\Propellerhead Software\Remote

The one below should work too but might not on some Windows + Reason version combos so try the above ones first and only if those fail, then try this path:
%AppData%\Propellerhead Software\Remote

oh and don't forget to quit Reason and restart it after adding the new Codec+Map folders+files to that path :)


  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 (
    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 :)

    2. Have you reconsidered doing this Codec? The BSP just recently got a new 2.0 FW update, it's looking great

    3. Hi Zehman,

      Well, BSP's new 2.0 FW actually finally convinced myself that a specific Codec for BSP doesn't make any sense now, because even the generic "controller" part of it now was taken over by the new features like saving chains as scenes.

      So, to me, the generic multi-channel Codec I did still works perfectly with BSP, more so with the new BSP V.2 IMHO :/

      ...but I'm curious: What would you expect from a BSP Codec, what functionality would you expect from it?
      Maybe I'm not seeing it right and enough suggestions and usability scenarios may change my mind in the end :)

  11. Hi. Thanks for creating the remote scripts. I'm still trying to get to grips with Reason 9 and the BeatStep Pro (fw and have installed your remote scripts and set up the control surfaces as advised. Do you have any suggestions what else to configure?

    - My BSP is connected by USB to the host computer. Which Sync setting should it be using (INT/USB/MIDI/CLK)?
    - In Reason 9, under Preferences - Sync, should I be sending MIDI to or receiving MIDI from the BSP?

    I can get sequences to play in Reason from each of the BSP's sequencers but I can't get Reason to start in time with the BSP so must be misunderstanding how this should hang together correctly.

    Any suggestions appreciated.


    1. Hi,

      1st you have to decide which will be the Master Clock.

      If you want Reason as Master MIDI Clock then:
      Set BSP's Sync to USB
      Set Reason's Edit, Preferences, Sync, MIDI clock sync, Output to BSP's MIDI port
      and also set Reason's Options, Sync, Send MIDI Clock

      I think you know this, but I'll say it anyway for others reading this: The Remote Codec/Map isn't needed for MIDI Clock Sync'ing, just for MIDI input of the played/sequenced MIDI data (Notes, etc)

      Hope this helped :)

  12. After installation and proper setup and locking to port/channel in Reason, MIDI data does not seem to be filtered. All locked devices still receive on all channels.

    1. I can only see 2 explanations for that behaviour.

      Either you're not using the Codecs named:
      "Generic Controller on MIDI Channel x /<" where x goes from 1 to 16, so please recheck that

      Or, that's only happening with the device currently selected as "current" (the one with the blue rack cursor at the top left of it) which will get MIDI from all the Codecs installed, besides the one being locked to it.
      In this case, for example, make the Tempo track as the currently selected controller target track. That'll make sure all the other device tracks will be only getting MIDI from their respective locked Codecs.

      Hope this helps :)

  13. Hi Kosh, with you'r help i can control redrum with my BSP but he doesn't receive information from redrum so the pads of my BSP are not synchronize with redrum..

    do you have a solution or explaination about this problem ?

    thanks :)

    1. Hi Tom, sorry for the late reply (busy week, month even!).

      Getting MIDI feedback out of Reason (devices) into controllers isn't impossible, but doesn't have a generic solution, unfortunately, because different controllers have different MIDI commands to do what you're expecting (LED control) ...when they even allow it.

      So, in BSP's case, there's a way to control it's pads (and buttons) backlight LEDs through special undocumented SysEx commands, specific just for the BSP and no other MIDI controller with similar capabilities.

      So the only way to achieve what you were expecting to happen, would be to make a specific Remote Codec (and Map) just for the BSP, which initially I was thinking of doing but gave up on the idea because I didn't want to make it based on undocumented features I reverse-engineered by trial'n'error and lots of instinctive ideas that down the line could stop working because of some firmware update.

      That's why I waited for a while, to see if an official documentation of MIDI specs of the BSP was published, which didn't happen (to my knowledge at least).

      ...and, TBH, since these generic codecs did what I need when using the BSP I had to put my efforts and time on other projects :/ ...sorry 'bout that!

  14. Hi Koshdukai,
    your Codec is so funky awesome!
    Just downloaded and donated. I can play and record now different Reason-Instruments and RackExtensions without touching the Computer that is absolutely wicked!
    i was just testing this cause i was thinking about to buy the Arturia Keystep (and maybe the Beatstep onTop ...?) and i can´t stop playing. I´ll get the Keystep immidiately!
    Thanks for your work - great Job!!

    1. I'm so glad that you found it useful and thank you so much for your donation, it means a lot! :D

  15. Hi Kosh Dukai,
    today the BSP arrived and nearly everything is working as planned. Nearly means: I don´t get the Seq of the BSP properly synched to reason ... I´m sending a Midi-Clock from Reason to the BSP (only way to still record stuff in Reason) but this goes out of synch after some bars ... Do you have any Tipps for this?
    Best regards from Hamburg

    1. Hi :)

      I haven't experienced any sync issues with Reason as master MIDI clock to BSP, so I guess I'll have to do some basic questions to get the easy issues out of the way (sorry):

      Besides turning on Reason's Sync, Send MIDI Clock option, are you sure you selected the "Arturia BeatStep Pro" device MIDI port in Reason's Edit, Preferences, Sync, MIDI clock sync, Output field?

      And most importantly (and I'm still doing the basic questions, sorry about that) did you set BSP's SYNC to USB while it (the sequencer) was stopped?

      If your answer is YES to all of these, then I have to ask if you're just experiencing a constant sync offset (adjustable in that same Reason Preferences Sync tab) or a weird progressive de-sync throughout the time ?

      I just tried it myself with my BSP and Reason, recording a 50 bar sequence and it was spot-on till the end, not desyncing anytime.

      hmmm... what BDP firmware version are you using? Is it the latest?

  16. Hi, thanks for the super-quick-reply! :D

    the answer is yes to all of your points (incl. Firmware), but i´ve just doublechecked it and i had a 81 bar fun incl. recording it into Reason.
    Hopefully it stays like this! :P
    But I´m wondering that the Tempo of 94.00BPM from Reason is (while playing) on the BSP changing between 93/94 all the time its playing. I never had such tempo issues using MidiClock and/or AbletonLink with all my other Devices.

    Interesting Side-Story; i can start play on my notebook, but stop an back-to-zero works ONLY via the BSP - Spooky! :D

    But anyway - it´s my first day with it & i have to train all that horny features of the BSP and the coop with reason and all my other devices.

    Next time i´ll come with an super-expert-question i´ll promise ;)

    Thanks for sharing your time & best regards

    1. Glad it's working now :)

      That display jitter between 93/94 is a natural one that usually happens when sensing external MIDI clock.
      In BSP's case, it's updating the display fast-enough and without any interpolation/smoothing between the Tempo values, which some devices that show external tempo in-real-time do, looking more like "rock solid" Sync to the eye :)

    2. Found out where the sync goes crazy: it´s the "Roller/Looper" ... i thought it works independent from the sequenzer but it seems to be absolutely luck to get back into the (DAW-)Click on the 1 when releasing it.
      So this tool seems to be not usabel playing live with others. I really hope i am wrong with this, cause i love this feature

    3. hmmm... strange. I've just tried it, even while recording and it'll keep in-sync, using any of the loop time divisions at any point of the song.

    4. D´you use a Click to proof? I nearly never have the kick on the one again ... really strange if it works fine on yours.
      Also i found out, that i have to set ClockSend (from reason) to -1 to be save on the Sequenzer-Grid.

      And i can reproduce the timing-synch-thing: when set reason in loopmode, in this case at 87BPM+4Bars; when starting the track its a bit before or after the 1 and after every loop it goes a little different.
      this morning i had to restart a track (no loop) 10/11 times to get it into the nice laidback timing that i had yesterday evening with the same track (i saved the Project on the BSP but haven´t recorded the sequenzes as midi into reason).

      But anyway - this has nothing to do with your great remote-maps, so don´t waste your time with BSP-Newbie-Stuff :D
      I´ll shure find a way to make this super-proof ;)

      Thanks for your time! :)

    5. Hi,

      just got an BSP and it works great so far. But there is no tutorial around which covers a correct set-up of the BSP for reason.

      What I did:

      In the reson preferences I have select "other" -> "Midi control keyboard" and set Midi-out to "Arturia Bestatep Pro"
      In the sync options I set Midi-clock-out to "Arturia Beatstep pro" too. Sync Mode I set to "send Midi clock"

      my Problem is, that I can control (Start, Stop or record" only from reason. When I hit stop or start on the BSP, ONLY the BSP starts or stops without syncronizeing reason anymore. thats one problem. The other is, that I don't know how to use the 3 different sequencers for 3 different reason instruments.

      Can you make a step-by-step instruction, how to set up BSP proper & best in reason?

      Greets, Atin

    6. Hi Atin,

      Unfortunately I won't be able to make a step-by-step due to time constraints but I can try to help with some tips:

      1st: You're slaving BSP to Reason so Reason isn't getting any clock or Start/Stop info from BSP. It's exactly the other way around and that's why you're getting that behaviour.

      To use the 3 seqs you'll need Reason to "listen" to the different MIDI channels, per sequencer, as if there were 3 different controllers.
      Reason by default has no codecs that allow you to choose which MIDI Channel to listen to, that's exactly why I did the "Generic MIDI Channel aware Remote Codec+Map" posted here :)

  17. Thanks for the fast reply, so you mean that it is not possible to have "both ways? If this is the case, I will keep this way, becaus reason is first and BSP an addition. By the way, what would you change that reason is the slave?

    With the 3 sequencers I will try the codec and do it like you decribed at the beginning of the thread (:

    1. There's ways to have it both ways but it might get you in trouble if not setup correctly or you don't know what's going on or how it works.

      The easiest way I can think of is for you to use Reason's Remote Override on the Start and Stop sequencer buttons while using the BSP's Transport buttons as simple controller buttons.
      For this to work, you need to configure the BSP (use the Arturia MCC config tool) in the "Device Settings" tab, down in the Transports section and set the "Transports" parameter to "Both" so each button sends MIDI CC out that'll be used to map those to Reason's Transpor buttons as I described above, with Remote Override.

  18. Really digging your stuff, thanks for sharing..


  19. Hi Kosh,

    just amazing what you´ve created here! I love your Blog !!!

    May i ask you a Question about "Midi Feedback" ? 1.1.1

    Is it possible to avoid "Midi Feedback" using your Remote Codec+Map in Reason?

    Simple Example:

    for testing ...
    -> Reason installed on a brand new Laptop
    -> using a Hardware "USB2MIDI" Device
    -> DIN In/Out´s -> Synth
    -> "Control Surface / Keyboard" configured V1.1.1
    -> Reason "ext.Device Generic Controller on MIDI Channel 4"
    -> In Port "USB2MIDI" Out Port "Non Selected"
    -> "External Midi Device" -> Out: "USB2MIDI" Channel 4
    -> Synth with Keyboard & Knobs plays a single Note
    -> Reason´s GUI takes the incoming Note
    an lets it out to the Synth again (Soft MIDI Thru)
    -> Synth plays the same Note (with Latency) again
    -> Feedback :-(

    This happens on all my Synths. Some of them doesn´t seem to have a Problem with that, others simply crash.

    Local Keyboard off (on Synth) could help, but other Synths have the same Problem with CC Values, Arpeggios ...

    Using two separate Devices for Midi In & Out, or using USB-MIDI did help, but that can´t be the perfect Solution!

    What can i do? Any Ideas?

    1. The feedback is happening because your synth sends out the MIDI it receives. So, as soon as Reason's EMI sends out anything, your synth sends it back to Reason's which is then processed as a controller input ...which then goes to EMI and send out again, add infinitum.

      To avoid this, either find a setting on the synth to not output again any incoming MIDI
      OR, if that's not possible, simply use different MIDI Channels for input and output

      Example: Set the synth to send on MIDI Channel 4 and receive on MIDI Channel 5. Then use the generic codec for MIDI Channel 4 and use MIDI Channel 5 on EMI (External MIDI Device) to play the synth.

      This way, the synth acts as a controller through MIDI Ch.4 and acts as a synth when receiving on MIDI Ch.5, which, even if keeps echoing that back to Reason, it'll be ignored, because Reason is only "listening" to MIDI Channel 4 ;)

  20. Just wanted to thank you for this page/Drivers codec seems to work fine here. One thing I had to do was set my Seq to abother midi channel (3 in my case) then use the driver codec Gen Midi controller channel 3 I did this because reason wasn't showing it set to channel one in the (lock this device too). No biggie 2 seconds extra work lol :) Thanks again

    1. Glad that it's helping :) ...and yeah, that's how you're supposed to use it, by setting a different MIDI channel per section, like Seq 1 = MIDI Ch.1; Seq 2 = MIDI Ch.2; Drum Seq = MIDI ch.10 and Control = MIDI Ch.3

  21. Thanks a lot, I've got everything working. I have the arturia beatstep pro and I was in need of recording the midi, so really glad I found you.

    One issue here. When I restart Reason, all the sync settings are gone and even worse; all the control surfaces have the error: "The number of MIDI output ports on this control surface has changed! Delete and re-add it."

    When I use the Arturia the conventional way (assign it to the advanced midi device (no midi recording then)), this does not occur.

    I also made a template, but no succes. Any ideas what is wrong here?

    1. I've began to get that error too lately, since having 2 similar controllers. hmmm... I'm beginning to suspect that it's the latest Reason 10 versions that are causing that.
      For now, the only way I overcome this recent error is by going to the Control Surfaces, select the controller, Edit and OK. That seems to "fix" (temporarily) the issue.

      I'm going to report this strange behaviour to Propellerhead to see it's something introduced in the latest versions.

    2. Looks like Reason 10.2 doesn't like Out Ports set to "Not selected" which is a bug, since previous Reason versions never complained about (nor they should).

      Let's hope Reason 10.2.1 shows up soon to fix this.

  22. Thanks a lot for the research. Assigning the out port to a non used port helped to let the program remember the devices! The only thing what resets is the sync setting to make the beatstep the masterclock. But thanks again, this helps and hopely the next update the'll fix it.

    1. I guess you know already but R10.2.1 and R10.2.2 fixed the issue :)

    2. Yes it works brilliant!! Thanks a lot!

  23. Just want to say brilliant work, been using this a while now (couple of years), even featured in a video I did (of course I gave you the kudos).


    1. Thanks :) It's always good to know these things are used and useful to others as they are to me :)

  24. I read it's bad to load an instance of Kontakt for each instrumenttrack in Reason.
    Is this tool also for linking multiple miditracks to different instruments in a single instance of Kontakt in Reason?

    1. Hi "Unknown" :)

      Nope, unfortunately, Reason 10 isn't yet the Reason version that supports MIDI Channel (and MIDI CC's) to be sent into a VST.

      When (a future version of) Reason allows what I described above, there'll be other ways to achieve multiple sources (seq tracks or other rack devices, like sequencers, etc) being sent into specific MIDI Channels of a multi-timbral/multi-Channel VST (like Kontakt).

      So, this is not a tool, it's a Remote Codec+Map (think of like a MIDI controller "driver" for Reason), like many others that are provided my MIDI controller manufacturers or come by default with Reason for specific MIDI controllers and a couple for generic ones.

      What's new about this Codec is that it allows choosing a specific MIDI Channel instead of working in Omni/All like the default generic Codecs that Reason provides.

      With this Codec, you can have 1 controller on 1 MIDI port controlling/playing as many rack devices as that controller is capable of sending in separate MIDI Channels.

      Like many controllers that have keys and pads, you can set the keys to Channel 1 and pads to Channel 10. With 2 instances of this Codec, one "listening" to Channel 1 and the other "listening" to Channel 10, you'll be able to lock the Pads to Kong and the Keys to a synth, as an example... and record them at the same time, just like you do with multiple controllers.

  25. Still very happy user of your codecs together with the beatstep pro. Do you think it is possible to get the aftertouch working with the codec? I have minimum understanding in this matter, but since aftertouch is mididata this would be my best guess..

    1. Hi Arjan,

      Beatstep Pro uses Polyphonic Aftertouch (that's Aftertouch for each note, in this case for each Pad) and Reason is not compatible with Poly-Aftertouch, so there's no way for the Codec to pass that information to Reason.

      Reason only understands Channel Aftertouch and that the Codec is already passing along, if the controller sends it (Which the BSP doesn't).

  26. Dear Koshdukai,
    i´ve searched the whole (...) web, but i could´nt find an answer - it seems that Reason 10 doesn´t support more than 4 locked Midi Channels of the same Device (in my Case BSP Pro & KeyStep) - when i add the 5th other/generic_controller-Device it´s not displayed in the "Lock to ... Device"-Menue...
    I´m pretty shure that this worked before the last R10-Update, because i remember that i deleted some generic-templates in the "External Device"-MenĂ¼ because i had just too much items in the "Lock to"-Menue.
    I use always 8 Channels to improvise live; 3 are locked to the BSP and 5 should be on the Keystep (8 always Bass, 7 always Synth etc pp), but - as written - i get only 4 locked to the KeyStep, not 5 as i need.

    Have you any Information about this or am i just too stupid to find what´s totally simple ...?

    And: Thanks again & again for this awesome Solution you shared! According with "Midi Patchbay" and sending Midiclock with -1 to the BSP the whole Set works perfectly for freestyling hours and hours without touching the Computer :*

    1. Hi dingStar,

      I just fired up my Reason 10.4d4, added 9 instruments and locked 10 controllers to them (including the Master Section as the 10th device), so there's no lock limitation, that I know of.
      btw, 5 of those "controllers" are in fact 1 with 5 MIDI Channels, so those 5 are using my generic Channel-aware Codecs.

      Now, if your issue is that you're always having 1 less controller (Codec) available for locking that you were expecting, that's easily explained:
      Go to Edit, Preferences, Control Surfaces and check if there's a button on the bottom right of the Surfaces list saying "Use no master keyboard". If so, click it and you should free up the controller that was being assumed as the Master Keyboard, which by design, can't be locked to any rack device.

      Once clicked, the button changes to "Make master keyboard" to be used when selecting a Controller that you do want to be the master keyb.

      I hope this helped :)

    2. Howdy,
      thank you for the quick Reply!
      I have no defined Masterkeyboards in the Preferences.
      It´s strange but i can set all 16 Generic Templates in the Preferences, but it always shows only 4 for each Arturia Device in the Lock-Context-Menu. Even when i Route the 5th/6th/etc to an other Controller - 4 seems to be my Maximum ...
      Strange ... Thanks anyway - your answer helps to find the answer ... somewhere else :D

  27. Replies
    1. Thanks! I'm really glad that you found it useful :)
      This Codec is becoming more and more useful, thinking about the new Arturia KeyStep PRO's 6 MIDI Channels (4 SEQs, 1 DRUM and 1 Control)

  28. Hi Koshdukai

    I used your code and maps for my Korg Taktile 49 about three years ago now and it enabled the drum pads to triggered the drums in Kong in Reason and I think the chords feature on the Taktile worked as well. I have gone back to this recently and cannot get either the pad or chords to work. I downloaded the codec and maps from above and replaced it with what i had previously in to the remote folder. I have also followed the instructions above and have tried everything I can think of. Interestingly, no of the sliders or knobs work unless you Enable Remote Overide Mapping.

    Any ideas how i may be able to sort this out?


    1. What's the MIDI Channel you're using for keyboard/controld on your Korg Taktile 4 ? MIDI Channel 1 ?
      Same question for the Pads, what's the MIDI Channel being used ? MIDI Channel 10 ?
      Assuming you're using Ch1 for keys+controls and Ch10 for Pads, then you'll need to add 2 Codecs, 1 per MIDI Channel, both receiving from the same port (unless the Korg Taktile 49 uses a different USB MIDI Port for the Pads).

      Generic Codecs (with no specific Mapping done) only rely on Remote Override Mapping.

      The alternative is for you to make a specific Codec+Map for that controller and set all the mappings on the Map file yourself, by text editing it. Only then you're able keep all those between and independently of the sessions (or Song files that keep the overrides).
      You may use my Generic or any of the other Remote Codec+Maps as examples/guides to make your own Remote Codec+Map for the Korg Taktile 49.
      I'm not sure if there's one already, because if there is one, you can use it instead for keys+controls and use the generic for pads if set to MIDI Channel 10

      I hope this helps, since as you may have figured out already, I don't own a Korg Taktile 49 :)

    2. Hi Koshdukai

      Thanks for the quick response.

      Yes, I have tried other midi channels. I even found you files from when I downloaded in 2017 and copied them to the remote folder, but still no luck.

      Would you mind explaining to me technically what is happening as it may help me work out if I am doing something wrong. For example, when I add 'Other' and then choose a midi channel which is references your codec, what is happening. Does this direct reason to the Remote folder and then it looks for the codec for the appropriate controller, in this case the taktile 49? Does Reason then, via usb tell the controller what to do?



    3. I guess I'll need to make a few more questions then:
      What Reason version are you using? Mac or Windows?
      Have you tried your controller with the default factory \MIDI Control Keyboard or similar?
      If you're using a recent Reason version, have you checked if it isn't showing up in the "Easy MIDI Inputs" section ?

      Ok, now for some details on Codec and Maps in general:

      Prior to recent Reason versions (see "Easy MIDI Inputs"), the only way for it to recognize and receive MIDI from a MIDI controller was to add a "Control Surface" which uses a Codec to establish the names of the controls available and how to interpret the MIDI messages for each of those controls.
      When adding it, the user also says "this Codec will receive MIDI from this MIDI port".

      The default/factory Generic Codecs listen to all MIDI Channels on that Port. My generic ones only listens to a 1 MIDI Channel per Codec/Map (that's why see 16 options listed)

      The Map says what each of those controls does what in a Reason/Device context. That's where the Generic maps (including my Generics) can't do much because they aren't specific to any particular controller, thus the only mappings possible are the Keyboard, PitchBend, ModWheel, Aftertouch, Sustain, etc.., all the generic standard controls almost all controllers will have on the same CC#

      This is also why, by not having any specific mappings, you'll need to resort to Remote Override to do the custom-mappings per Song (or do it once and save it as a "template" Song and set it as the "Default song" to be loaded at start)

      So, when you "Add manually" and choose "", Reason will present you with all the valid "Models" exposed by the existing Codecs at (if you're on Windows): %ProgramData%\Propellerhead Software\Remote\Remote\Codecs\Lua Codecs\Other
      or at %ProgramData%\\Propellerhead Software\Remote\Codecs\MIDI Codecs (older format)

      Then, once you choose one of those "Models", Reason will follow the instruction on that Codec to understand the MIDI being send by the controller on the "In Port" you provided.

      These generic Codecs know nothing of the controller you're using, that's why there's no communication from Reason to the controller, only the opposite, Reason will only listen to the MIDI sent by the controller.

      So all the rest of the available Codecs, outside the "" manufacturer, were made specifically for 1 or a set of specific controller models. Only those may (if the controller is capable of that) send instructions (MIDI CC/SysEx/etc) to the controller to turn LEDs/backlit buttons on/off or display text messages on displays, etc.

    4. where you read "" it should be "Other" ...I used the "less than" and "greater than" chars and it made the word disappear :)

    5. HI Koshdukai

      I have got the drum pads and chord player working now. Turns out the problem was something more fundamental, but it was reading your response that lead me to the solution.

      Basically, I had my usb connected to a usb hub. I suddenly had a feeling this might be the problem, so I connected it directly to the PC and then it started working.

      Thanks for your help.


  29. I can't get Reason to record CC coming from my Model:Cycles. Notes work, but not CC. I tested in MIDI-OX and confirmed CC is being transmitted from the encoders.

  30. It appears that this codec doesn't support recording CC in Reason 11. I can get it to work using a MIDI Control Surface codec but not Generic MIDI Channel Aware Remote.

    1. Reason doesn't record MIDI CC's. It records automation while you tweak controls on the device (either on the GUI with the mouse or the equivalent mapped control on your controller).

      Have you mapped your Model:Cycles controls to any of the device(s) controls you want to record as automation?
      When using generic Codecs/Maps, you'll need to use Remote Override (unless you manually populate the .remotemap files).

      When using pre-mapped Codecs, all you're doing is exactly the same as mentioned above: Recording automation of the tweaked device controls (parameters) which are (already) mapped to controls on your controller.

    2. I believe it does? It's described in the section "Recording MIDI Controller automation from the controlled MIDI instrument" in the manual. I just want to record CC into the MIDI Out devices controlling my Elektron machines. To record a performance. It's really not preferable to have to determine CC #'s and manually assign to the 8 max CC knobs in the MIDI Out device so I'd like to use the feature that automatically creates the automation lanes without being limited to recording a single track (drum) at a time, as would using the MIDI Control Surface codec do.

      It seems your codec doesn't implement things the way MIDI Control Surface does.

    3. Reason doesn't understand MIDI CC. Only knows about "remoteables" or rack device parameters ("controls") which are the ones recorded into automation lanes on a sequencer track.

      Remote Codecs interfaces whatever incoming MIDI msgs a surface sends (could be SysEx, CC, etc) per controller control to actual "tokens" (usually named the same as the controller control, like "Fader 1", etc).
      Then, the respective .remotemap will assign each of those controller controls ("Fader 1") to a specific rack device parameter or global Reason control (like Next/Previous patch or Transport controls).

      Obviously, a generic Codec/Map can't know what controls that controller used are named, so, as generic as it is and since it's basically acting like a pure interface between each of the possible MIDI CC, it's natural to see those controller tokens being named as their sources (CC 01, etc).

      Now, getting the MIDI OUT Device into this may confuse this further :) ...because the MIDI OUT Device, like all Reason rack devices, just has a list of parameters, in its case, obviously named after each of the CC that the device will output on the selected MIDI Port.

      So, this works like this example:
      MIDI CC01 -> Codec translates to Remote Control "CC 01" and searches for map or Remote Override mapped to that "CC 01" if there's none, it'll ignore it, because none of the devices use it.

      If you want to record the MIDI OUT parameters (its "CC outs") as sequencer automation through a MIDI controller, you'll need to map (each of) the Codec "tokens" (Remote Controls) to the each of the MIDI OUT parameters ("remoteables").

      You can get the list of the rack device remoteables by selecting it and going to File, Export Device Remote Info.

      My generic Codecs have no pre-maps made, just the most (generic) used ones (Keyboard, PitchBend, ModWheel, Sustain, etc).

  31. Success- I got it to work by copying the lines for externalmidiinstrument from one of the single channel remotemaps into your remotemaps. Perhaps you'd consider adding them to the official release, since MIDI Out Device (formerly EMI) is so ubiquitous and it would save other people the trouble? (Especially with the pitfall of the file being sensitive to Tab characters...)

    1. Yup, "you manually populate[d] the .remotemap files" :)

      Ok, I can include the MIDI OUT Scope pre-mapped to each of the respective MIDI CC. You're the first asking for that :)

    2. Version 1.2.0 published.
      Please check it and see if it works like you expected.

    3. It works very well, thank you :)

  32. Hi Koshdukai,

    Thank you for this wonderful codec, very happy with it! I tested it on Redrum and all buttons/encodes work flawlessly. The only strange thing is, the pads don't play notes in Reason as expected. Pad 1 and 9 (available through the pad switch button) do play instruments 1 and 9 in Redrum, but the others ones don't work (although pads 4 and 7 play instrument 15 in Kong?). Do you have any idea how this is possible?

    Kind regards,

    1. I replied already on the SparkLE post but if you're having the same issue with the Generic Codec then there's something wrong with your SparkLE or (hopefully!) you're just using it in MIDI mode instead of Spark mode. Check my reply on the the other post for more details on this :)

  33. Howzit Bro, Tnx so much for this. one question: The drum sequencer in my BSP does not show in reason althouh it plays. the other 3 show

    1. Hi,

      If you're using MIDI Channel 10 for BSP's Drum track, then you'll need to add the respective "Generic Controller on MIDI Channel 10 /<" ...or whatever other MIDI Channel you've set the BSP Drum track for, which you can easily check by pressing the BSP's "CHAN" button and see which step button lights up purple.

      Hope that helps :)

  34. Dear Koshdukai,

    I imagine I am the only owner of an Arturia BeatstepPro where it doesnt work like it should be..
    I hope you can help me.
    I have created 4 different midi channels (1,2,3,10). I set up 3 different instrument devices.
    When I dont lock them to specific MIDI channels. It seems like the first device i select will get the MIDI signal from my Drum Sequencer which is channel 10. This will last for as long as I do not lock this device to the very same channel 10, then it stops to receive the signal.
    When I lock specific channels to specific instruments like proposed, I get no signal at all.
    Right now, the only MIDI information that is received comes from the Drum sequencer (channel 10), the other sequencer seem to be "shut down", while yesterday for some time sequencer one was the channel that came up with a signal and the others remained quiet.

    I am really confused here, wondering if my (new) Arturia BeatstepPro is broken, but I get a correct MIDI signal in the MIDI control center. I have already reinstalled reason but the problem is still there. I read a comment further up where it seems to be similar and you proposed to change the track tempo somehow. For me it seems to actually make a difference which instrument is selected, more specifically which one i select FIRST, so maybe you can explain your solution a little more detailed or you have another idea how to fix this?

    Kind regards,

    1. Hi roomy,

      I'm not sure what you mean by "I have created 4 different midi channels (1,2,3,10)." I guess you mean:
      I've set each of my BSP tracks to output through MIDI Channels 1, 2, 3 and 10 and then added 4 "REmote keyboards and control surfaces" entries in Reason with the "Generic Controller on MIDI Channel xx /<" codec, where xx will be 1, 2, 3 and 10, one for each of those BSP MIDI Channels. Right?

      If no, then that may explain why only 1 of the MIDI channels works.

      If yes, then each of those "control surfaces" will work as a separate controller (though you know it's all the same BSP but for each seq track).

      Then, if you don't lock them, all (of the unlocked ones) will always control/play the currently selected rack device/track, the one with the cyan outline border and an arrow in the top left corner of it, in the rack.

      Also, don't forget to click the "Use no master" button if you see it in the Preferences, Control Surfaces, right below the controllers list. If you don't, then one of the last or first controllers/codecs you added will be unavailable for locking to a rack device because it'll be used by Reason as the master controller.

      One other thing you may need to check is if the "Easy MIDI Inputs" section is "stealing" the BSP port input. Check if it doesn't show up there, if it does, then you forgot to set all of the generic entries to the same "Arturia BeatStep Pro" MIDI port.

      It's kinda hard to pinpoint the issue with all you said, so I hope all the above will give you some hints on the issue you're having.


    2. Hi Koshdukai,

      thank for your quick response.
      I checked all your hints and finally I realized that I had been locking the MIDI channels to the Mixerchannels, not to the instruments. Now its all working perfectly.

      Thanks a lot.



Post a Comment

Popular posts from this blog

Remote Codecs released...

Reason doesn't support MPE ...right?