"Other" MIDI devices

Want to talk about music hardware or software that doesn't include Reason?
Post Reply
GushingDizzy
Posts: 27
Joined: 26 May 2015
Location: Massachusetts, USA

26 May 2015

I just got an Alesis VI61, which seems perfect for Reason since it has a full 16-button drum pad, just like Kong. Reason doesn't have a mapping preset for it, but I'm able to help Reason see it, and the keys, mod/pitch, and drum pad work as you would expect. The knobs work too, though they don't do what I've learned to expect from my M-Audio Oxygen25, which does have a preset.

The Transport will only work if I "Edit Remote Override Mapping," and that isn't permanent.  So I'm just wondering if there's a way to make Reason always see that re-mapping, and also if there's a way to make the knobs give Reason the same info that the knobs on my Oxygen25 feed it.

Perhaps some of this I should be asking on the Alesis forum....

Thanks.
- Geoff

User avatar
Raveshaper
Posts: 1089
Joined: 16 Jan 2015

26 May 2015

The easiest way to make your knobs work correctly is to open up the Oxygen25 codec and copy the mappings for the knobs into your custom codec for the V161.
I don't know why it is so under-documented, but finding clear and detailed info on how to use MIDI hardware with Reason is difficult.
You can do really powerful things that even trump the power or practicality of some REs and I'm working on several projects that will demonstrate some rather advanced implementations.

I don't think anything I'm working on would be of any immediate benefit to you because a) it isn't finished yet and b) sometimes the easiest way is the best way.

The easiest bit of info that does exist is this Sound on Sound article, linked here.
Good luck.
:reason: :ignition: :re: :refillpacker: Enhanced by DataBridge v5

GushingDizzy
Posts: 27
Joined: 26 May 2015
Location: Massachusetts, USA

26 May 2015

Well the Oxygen doesn't have any kind of utility program, like the Alesis does. I have little program called MIDI-OX which is able to give me info on the data coming from my MIDI devices. Unfortunately, I don't see a correlation between that data and the numbers that the Alesis utility lets me change. I've posted a question on the Alesis forum. Perhaps they'll be able to start me down the right path.
- Geoff

GushingDizzy
Posts: 27
Joined: 26 May 2015
Location: Massachusetts, USA

27 May 2015

Okay, I just got a useless message from the Alesis forum. I guess what I really need to know is: how do I find out what Reason wants to hear from my device? The utility for my keyboard lets me set a "CC" number for each button (see here). Currently the transport controls are using numbers 114-119 and none of them do anything.

Thanks again.
- Geoff

User avatar
Raveshaper
Posts: 1089
Joined: 16 Jan 2015

28 May 2015


(Caution: wall of text ahead, this got me in a mood.)
If somebody from Propellerhead is reading this thread at some point, please pay attention.

A newcomer to this forum has taken the sum total of their posts to date since joining to seek what should be simple answers to a basic problem:

"my MIDI controller has no map, how can I make my own?"

Please take note of the disorientation regarding establishing an understanding of where to start, of why things that have been tried aren't working, of how to fix the problem(s), of what can or should be done, of when things should be done, and of why the things that should be done must be done instead of other things.
Just describing the confusion is itself confusing. I couldn't think of a better way to say it.

There is no robust in-app midi mapping GUI. Work must be carried out across multiple files -- each with differing syntax -- without the option of opting for the in-app interface to cut down on the work involved.

  1. It is difficult for people to control Reason using hardware.
  2. It is not intuitive.
  3. It is seen as an advanced feature that you must already be knowledgeable in to make use of.
This is a huge problem. Massively bad.

I am sorry that this is such a daunting task for you, GushingDizzy. I really am.
I'm not riffing on a lack of experience on your part or poking fun at all, this is just the way of it.
There is no defensible explanation as to why this is so in this day and age.
I'm using your experience to highlight what badly needs to be fixed, as of several years ago.

What I can do is try to shed some light on where you can start getting answers.
MIDI hardware use files called "codecs" to run in Reason. These are actually made up of at least two files, one being the codec itself and the other being a Remote map file.
Together, these two files make one codec.

On PC, they can be found in the following locations:
C:\ProgramData\Propellerhead Software\Remote\Codecs\MIDI Codecs
In there, you will find ".midicodec" files.
C:\ProgramData\Propellerhead Software\Remote\Maps
In this folder you will find ".remotemap" files whose names match those of their ".midicodec" partners (this is important).

Before editing any default MIDI files, always immediately "save as" to a new file, then start working.

The ".midicodec" file defines the names and CC assignments of all the controls on the MIDI hardware. By that I mean you define what controls you want to use on your hardware by giving them names and then assigning values and CC numbers to them. Only the names of the parameters within Reason that you intend to control matter. Everything else is essentially a variable whose name can be anything. You can define your own CC values and are not restricted to specific numbers, as long as you don't use the reserved CC numbers. You can get a simplified list of the reserved CC numbers by placing an External Midi Instrument into a Combinator, selecting it in the programmer, and looking in the available items in the "Target" dropdown list named "MIDI CC...". If a CC has a name other than "CC ..." then leave it alone.

The ".remotemap" file defines automatic routing of the controls that were defined in the codec file. Essentially this is the template file for how the MIDI hardware interfaces with items in the Rack if a device is right-clicked and "Lock to device" is selected. You can have zero automatic mappings defined in the map file if you prefer, but you must know what the required bare minimum is before gutting stuff out.

The bare minimum required by a ".remotemap" file is the following code:
 

Code: Select all

Propellerhead Remote Mapping File 
File Format Version 1.0.0 
Control Surface Manufacturer Manufacturer Name 
Control Surface Model Model Name 
Map Version 1.0.0
The best editor for these files is a Spreadsheet editor (like OpenOffice).
The midi files are what are known as tab delimited text files, meaning each piece of text is placed specifically in a grid pattern by using the character created by the Tab key to separate strings of characters into columns. Each "line" of text is treated as one row in the grid. You can easily scramble this grid because it's invisible in most if not all plain text editors. But you can see it inside a spreadsheet because those tabs will force the text to occupy specific cells. To do this using OpenOffice on Windows...
  1. Open a new spreadsheet
  2. Select all of the text of the midi file
  3. Copy and paste text into spreadsheet
  4. Make sure "Separated by > Tab" is turned on
  5. Edit the file
  6. Save a copy of the file as a spreadsheet for later tweaking/revising
  7. Select all text in the spreadsheet and copy it
  8. Select all text in the original midi file
  9. Paste the spreadsheet text into the midi file to overwrite the previous version
  10. Save the midi file
I mentioned that only the names of the parameters within Reason that you intend to control matter.
Here is a link to the article that talks about the master list of all of those parameters, and the master list itself.

Propellerheads Blog: Control Remote

Reason Remotables Master List (tab delimited plain text)

Beyond that, there's not much info. I had to teach myself, maybe others have more to say that I'm forgetting.
Again, this shouldn't be such a black art and I'm disheartened that it is.
But I guess we'll just have to do for us, by us until we raise each other up to where we want to be.

The last resources I can give you are below:

Sound on Sound: Hacking Remote Files in Reason

Koshdukai's Music(al) Reason(ing) Blog

So the above is basically all that you'll probably need. You can stop reading now.
But if you want to hear me ramble about all aspects of the issues you're facing, continue.

-- -- Turn Back, While You Still Can -- --

The stuff that is actually powerful and interesting is up next, but unless you join us at the Remote Dev forum by signing up as a developer, you can't even discuss these last resources and topics.
I tried to ask at this board about these next few links a while back and got a warning. I'm giving you the much gentler heads up about that that I didn't get. Don't try it, don't even try to understand it, just leave it alone.
To spare a dead horse a beating, it suffices to say you can consider these to be a completely DIY zone.
C:\ProgramData\Propellerhead Software\Remote\Codecs\Lua Codecs
Livid Instruments - ReasonRemoteScripts - GitHub Repository

LUA.org - LUA 5.3 Reference Manual

I've complained about this before, this will be the last time. I registered for crying out loud and now I have documentation to consult instead of fumbling blindly through eternity wishing I could make something work as expected. But before someone freaks out on me, I want to remark that I have not "divulged" anything, no explicit details only relevant facts, and then I'd like to tell a short story. A really short one.
I went to the Ableton user forum just last night and they have a huge help thread about writing custom scripts in Python, a very powerful programming language that Live suports.
People there were helping each other and discussing it in detail with very well written examples of code.
There are actually several threads like this, here's the one I saw:
How to use MIDI Remote Script (sparkle)
The end. See, really short story.

My point is, GushingDizzy, this problem you're having runs as deep as discouraging discussion and hindering implementation.
Imagine what you could be accomplishing right now if the tools were made available to you to get some results?
You're just one person, but for each one of you, how many more just say "wtf", give up, and go use a more "Live"-ly program that meets them more halfway?
It deserves emphasis that at Ableton, you can learn Python from power users right on the forum and discuss it at length -- up to and including teaching yourself to be a proficient programmer, even beyond that specific context. Here, you can't talk about how to use the most powerful tools for interfacing with MIDI hardware in Reason, because you just can't I guess.
Which is funny, considering that you can learn nearly everything on your own using the reference manual and both Livid's and Mackie's LUA codecs that are packaged inside the Reason install.
In a way, it's all right there for anyone to dig into, but they're forced to walk the hardest road on their own to get anywhere.
So, I feel that it's a cultural and/or ideological issue that I hope gets inoculated in the not too distant future.
People react more positively to feeling included and belonging to a community or group than feeling excluded and isolated or disconnected, and I feel that much of the dissatisfaction I see lingering here is an indication of those feelings.

But that's maybe just my own feelings and not the truth. After the difference I saw on that other forum, I think so. I can't help but feel that way.

I doubt anybody from Propellerhead is reading this or that they would make it this far anyhow, but I'll put this here.
You are binding the hands and punishing the minds of your customers by making hardware interfacing so secretive. This has not been a wise strategy for you.
You have had to make phone apps to provide an easy hands-on experience with hardware integration. When that should be happening in your DAW, that's a solid ouch.

I'm getting off track here in a major way.

I won't explain this advanced script-based codec stuff here, because I can't, and also because I wouldn't have the time anyway. But I'm not going to deny its existence to you either.
I want you to have the good understanding of the whole landscape that I didn't have to start with.
If that involves me being told off for laying it all out for ya, so be it. Make a note of it and think over the implications of it if that happens.
You start asking about MIDI controllers here and you start needing to be careful.
I wish I were kidding.
But enough about how I feel, this isn't about me. This is supposed to be about educating you in all of this stuff.
So, without further ado, my advice:

The fastest path to understanding is to sign up as a Remote Developer, then download their full documentation on the subject.
It isn't logical, it's a complete mystery, but it's what you have to do in this crazy world.
So, maybe I'll see you there?

Good luck! And at least we have PMs!
:reason: :ignition: :re: :refillpacker: Enhanced by DataBridge v5

GushingDizzy
Posts: 27
Joined: 26 May 2015
Location: Massachusetts, USA

28 May 2015

Wow man, thanks for such a lengthy response! I really appreciate it, and I hope that others here do as well.

Sounds like this stuff has been the bane of your existence for a while. If I ever find the time I'll dive into the info you so generously provided. It's a shame that Propellerhead killed their forum. Maybe they got tired of answering newbie questions like mine.
- Geoff

Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 8 guests