Posted Feb. 3, 2006, 3:35 p.m.
Remote – Propellerheadʼs protocol for communication between hardware control surfaces and software applications – quietly celebrated its 5th birthday this January. It was introduced as one of the top billed new features of Reason 3.0 at Winter NAMM in 2005. The purpose of Remote was to save Reason users from the tedium of setting up control surfaces manually, and to provide a tight, seamless integration that makes the control surface an organic and dynamic extension of the software – not unlike having a hardware synth in front of you. Hence the catchphrase “Play Your Reason System”, which has a more musical ring to it than “Program Your Reason System” – itʼs all about eliminating distractions that interrupt the creative flow.
In this article we will be peeking under the hood of Remote and learning how to customize Remote Maps, so that youʼll be able to tweak existing maps to your liking. Why would you want to, you might ask? Well, perhaps you find that the rack device parameters prioritized by the default Remote Map arenʼt the ones you consider to be the most important and useful. Maybe you wish that the parameters controlled by the fader set were controlled by the knob set, and vice versa. Maybe you want to create your own custom setup for live performances. Either way, you have our blessing to hack the Remote Maps to bits!
It should be noted that everything that applies to Reason in this article, also applies to Record – both applications support the Remote protocol – but technically this is “Discovering Reason”, so we will only be referring to Reason henceforth.
Maps vs. Codecs
There are two main types of Remote files:
1) Remote Codecs are definition tables that tell Reason which physical controls exist on the control surface. Keys, knobs, buttons, pedal inputs, data entry sliders, meters, displays and so forth. For example, the Codec may specify that thereʼs a Pitch Bend wheel and that its minimum and maximum values are 0 and 16383, or that there are 8 rotary controls (defined as “Knob 1”, “Knob 2” etc.) which can transmit values from 0 to 127. There is little point in modifying these Codecs, due to the obvious futility of trying to convince Reason that the control surface has fewer, more or different controls than it really does. Having said that, in case you own a control surface that isnʼt officially supported by Remote, you can use the existing Codecs as templates. Remote Codecs are created using the Lua scripting language. If youʼre fluent in Lua and want to create or edit codecs, you should apply for the Remote SDK here.
Note: There is also another type of Codec file format called MIDI Codec, based on simple tab delimited text rather than Lua. This older format is deprecated, but still supported for legacy reasons.
2) Remote Maps are the main mapping tables that link the physical controls on a hardware surface to controls on the currently selected device in the Reason rack. These are the files that weʼll be taking a closer look at here. Remote Maps are simple, tab delimited text documents which can be edited without any prior knowledge of scripting languages and such – all you need is basic text editing software, half a brain and perhaps a little bit of insight into the basics of MIDI. The maps are made up of separate sections for each Reason device, which often adds up to thousands of lines of data, but theyʼre fairly easy to navigate and you can always use search functions to quickly jump to any device youʼre particularly interested in tweaking.
Locating the Remote Maps
All the Remote files are stored in a folder aptly named Remote, which contains two subfolders – one for codecs, the other for maps. The location of the Remote folder varies depending on operating system, as follows:
Macintosh HD/Library/Application Support/Propellerhead Software/Remote
Windows Vista/Windows 7
C:/Program Data/Propellerhead Software/Remote
C:/Documents and Settings/All Users/Application Data/Propellerhead Software/Remote
Please note that on Windows, the files are stored in hidden folders, so youʼll have to go into the Folder and Search Options of Windows Explorer and make sure that “Show hidden files, drives and folders” is selected, in case you havenʼt done so already.
You can leave Reason running while editing the files. If something goes wrong when editing a Remote Map, you can simply delete it and restart Reason – the program will restore the original version again. If you want to troubleshoot your modified version rather than start from scratch, make sure to copy the modified map to a text document or the clipboard before you delete it.
Finding the right editing tools
The most basic way to edit the files is to open them in a text editor such as Notepad on Windows or TextEdit on OS X. However, the best way to edit the files is use a spreadsheet application such as Office Excel or iWork Numbers. Since the Remote Maps are tab delimited, using a spreadsheet program is a safe and convenient way to keep the integrity of the formatting intact – less risk of messing up the tabbing.
On Mac, you prepare the Remote Map for this procedure by simply changing the file extension to ”.xls”. After this you will be able to open it in Excel or Numbers as if it were a regular spreadsheet. Numbers may protest by throwing a warning (“This is a tab delimited document, not a valid Excel document”), but this can safely be ignored.
On PC, Excel 2007 cannot be fooled quite so easily. Instead, you need to create a blank workbook, and then click the Data tab. On the ribbon youʼll find a button labeled “From Text” on the Get External Data panel. Click this button. In the dialog that appears, Excel has correctly identified the document as tab delimited text, so all you have to do is click Finish. When itʼs time to save the file, select Save As, and in the “Save as Type” drop-down menu that appears in the next window, select “Text (Tab delimited) (*.txt)”. Then rename the file back to whatever it was before.
Understanding the Remote Maps format
A Remote Map begins with a header that specifies the file type (Remote Mapping File), the file format version, the control surface manufacturer, the model name, and the version number of the Map itself. Make sure to always update the version number of the Map when you modify it, in order to prevent it from being overwritten by Reason with the original Map.
The rest of the map is split into sections for Reason devices. Each one of these sections is referred to as a “Scope”. For instance, the Scope might be “Propellerheads” for the manufacturer, followed by “THOR Polyphonic Synthesizer” for the device. After the “Scope” subheader comes a number of lines that begin with “Map”. Each of these lines uses the following format:
Map [Control Surface Item] [Key] [Remotable Item] [Scale] [Mode]
The “Control Surface Item” is the physical control on your hardware device, e.g. a button or a fader. The names of these items are declared in the corresponding MIDI Codec file. The “Remotable Item” is simply the item in Reason that the physical control is being mapped to. Key, Scale and Mode are optional settings that you donʼt need to worry about for basic Remote mapping.
Modifying a Remote Map
As an example of how you can modify existing maps, weʼll use the Dr. REX map for the Korg Kontrol49. This control surface has 8 faders and 8 rotary encoders (thereʼs a 9th rotary encoder also, but weʼll leave that one out of this example). Now, these faders and encoders are mapped according to the illustration below:
In the Kontrol49 Remote Map, this mapping is defined by the following lines:
Right, so what if we wanted to tweak this a little bit? Letʼs say we want to change it to something like this:
No problemo. All you need to do is rearrange the text in the Remotable Items column so that it corresponds to the new desired layout, like this:
To try out the new map, go to the Reason Preferences > Keyboards & Control Surfaces. Here, switch off “Use with Reason”, then switch it on again. If thereʼs a green tick mark, everything is OK. If thereʼs a red warning sign, something is wrong with the map. Click the sign to get more info about the problem. One of the most common errors is the absence of expected tabs, or the presence of unexpected ones.
Now, what if the original Remote Map has left out the Remotable Items you want to control? How can you find out what their proper names are? No problem, weʼre providing you with the big deluxe version of the Remotables list. It features all remotable items in both Record and Reason. Get it in pdf format here or tab delimited text format here. Just copy the names verbatim from this file and youʼre good to go.
Those are the basics of modifying Remote Maps. Remember to apply for the SDK if youʼre serious about creating Remote Maps – itʼs free!
Text by Fredrik Hägglund