Setup

X32ReaperAutoMate relies on REAPER for audio, and both software have to be carefully setup in order to ensure flawless working conditions. The files provided with the .zip tool package should generally be fine for most users. There may be things you will prefer to work differently to better match your workflow and that’s what some of the configuration files permit. The .X32ReaperAutoMate.ini file holds these parameters and initial settings used when the program starts.

There are three elements to setup: your X/M32, REAPER, and X32ReaperAutoMate. Follow the steps below to set them up correctly.

X/M32 Setup

With this program, the X/M32 will be connected to the network and USB. We assume that your X/M32 is part of the same local network as your PC; X/M32 IP address will automatically be found by X32ReaperAutoMate in the vast majority of configurations. If needed, the X/M32 IP address can be set in the configuration file.

The USB link is strictly used for audio data and will connect from the X/USB or X-Live card to the computer running REAPER. The X/M32 routing (in PLAY mode) should match with the REAPER configuration to ensure the number of channels played or recorded and the sampling rates match with REAPER audio settings.

No other specifics are required at the X/M32 level.

REAPER Setup

Obviously, audio over USB/ASIO devices and driver must be enabled and working properly, having set the sample rate to match X/M32, and the right buffer margins to prevent dropouts. You will also need to ensure the number of ASIO audio channels match your needs and the appropriate values are setup both for REAPER and X/M32 routing to ensure audio to play on X/M32. In order to communicate with X32ReaperAutoMate, REAPER needs to have OSC communication enabled. Please refer to REAPER preferences for this setup1, and set the different fields as shown below; Obviously, your Local IP will likely be different of that shown here; make sure you set the Device IP to the same value as you most likely will run X32ReaperAutoMate on that same PC.

However, if your setup is simple (which is the case for 90% of users), X32ReaperAutoMate will find/guess REAPER’s IP automatically by picking up the main IP address of the computer running the program, which is most likely the one also used for REAPER. If your configuration is more complex, you can always set the REAPER IP address in the configuration file.

1 Follow REAPER Options→Preferences→Control/OSC/Web

 

The X32ReaperAutoMate.REAPEROSC file is a text file setting up the different OSC options accepted by REAPER and sent to REAPER clients. A typical file is given below and covers all OSC communication needs between REAPER and X32ReaperAutoMate. There’s no need for unused OSC patterns as this would generate more messages to be parsed, having a potential negative effect on performance. In the file listed below, it’s also important to ensure the number of tracks (DEVICE_TRACK_COUNT) covers the capabilities of X/M32.

Contents of X32ReaperAutoMate.REAPEROSC:

#
# X32ReaperAutoMate OSC pattern config file
#
# © Patrick-Gilles Maillot, 2019
# Use with X32ReaperAutoMate
#
REAPER_TRACK_FOLLOWS REAPER
DEVICE_TRACK_FOLLOWS DEVICE
# X32 has 32 inputs, 6 aux, 2 USB, 8FXrtn,
# 16 buses, 8 DCA, 1 Master
DEVICE_TRACK_COUNT 32
DEVICE_SEND_COUNT 16
DEVICE_RECEIVE_COUNT 16
# Track name
TRACK_NAME s/track/@/name
# Transport
RECORD t/record
REPEAT t/repeat
STOP t/stop
PLAY t/play
PAUSE t/pause
REWIND b/rewind
FORWARD b/forward
REWIND_FORWARD_BYMARKER t/bymarker
ACTION i/action t/action/@
TIME s/time/str
#

X32ReaperAutoMate setup

As with many software, X32ReaperAutoMate relies on initial data fields to enable its working conditions.

.X32ReaperAutoMate.ini [note the ‘.’ preceding the filename] is an hidden text file containing configuration parameters for X32ReaperAutoMate to work correctly. Each parameter has specific impact on the behavior of the tool and it is important one understands the effect changes on values can have on the tool. It is therefore advisable not to change data unless you know what you do. Please review your changes before saving your file as wrong or invalid data may cause the tool to crash or create unwanted effects.

The configuration file is loaded as the tool starts to setup internal variables in X32ReaperAutoMate. These variables are therefore changed only at startup by the configuration parameters, each time the tool starts. These variables can take new values as X32ReaperAutoMate runs.

In the .X32ReaperAutoMate.ini file, a line starting with the ‘#’ character is a comment line and will be ignored. Other lines are typically in the form:

parameter= [value[, value[,…]]]

In specific cases, the value(s) field(s) can be left empty. Otherwise ‘value’ can be a string of characters, a number or a single character. The text in the comment lines preceding the parameter being set briefly explain what the parameter is for and the type of value(s) (and may be typical data range) expected for the respective parameter.

Most of the parameters are straight forward as to what their effect will be (i.e. IP address, port number, etc.). Others may require a deep understanding of X/M32 characteristics, constraints and general handling of OSC parameters. The Unofficial X32 OSC Protocol document and the X/M32 User Manual are good resources to go into the details of how the X/M32 mixer works.

The next section lists a subset of parameters found in the .X32ReaperAutoMate.ini file, that require details on their meaning and effects.

Rip_str, R_SndPort, R_RecPort

These 3 parameters (REAPER IP address, Send Port and Receive Port, respectively) must match the data set in the REAPER Options→Preferences→Control/OSC/Web panel shown above.

 

XFBlockIDs

Part of the user interface is organized around the use of knobs and buttons directly at the X/M32 desk. This is detailed in the “X/M32 User Assign bank” wiki pages on user interface.

 XCatchUpThreshold

This parameter represents a delay threshold beyond which a catchup will take place for backward jog/scrub (for all 4 available jog options) during PlayRecord or Pause, or following StopRtZ and Loop commands. The default value is set to 2000ms. This only applies and takes place in the case of moving back in time in your Mix.  As a result, X32ReaperAutoMate will remain in sync with the Reaper timeline when scrubbing in both directions.

DoNotRecord

X/M32 have thousands of parameters, and will echo parameter changes over OSC to all connected clients. X32ReaperAutoMate is a client for X/M32 and as such receives all changes taking place at the desk as soon as the user presses a button, turns a knob, changes screen, etc. X32ReaperAutoMate records changes that take place at the desk while audio is playing in REAPER, so that mixing information can be played back at a later time as a ‘Mix’. There are nevertheless changes taking place at the desk that don’t offer any value for the Mix, such as for example changing screen or switching between channel banks. The only parameters of interest for a Mix are the one that affect audio. DoNotRecord holds a list of OSC parameter families that should not be recorded when “Read/Write” is ON. You may [with caution] add or remove elements to/from the list.

XSceneSafes

X32ReaperAutoMate uses the X/M32 internal scenes to save its state and being able to restore it when needed. X/M32 scenes contain nearly all OSC parameters for the console and upon being recorded, all of them will systematically be saved. When restoring scenes to the desk, sections desk state will therefore be updated with the previously saved data. XSceneSafes can prevent some sections of X/M32 from being modified by applying “safes” (a sort of digital mask) that filter what will be affected and what will be untouched when restoring a scene. XSceneSafes contain ‘safes’ values which are the decimal equivalent of binary data, collections of bits [0 or 1] logically aggregated together in several groups [words] to prevent modifications when the bit is set [i.e. 1].

XJogTmout

As one turns left (i.e. back in time) or right (i.e. forward in time) one of the jog encoders managed by X32ReaperAutoMate, time takes a new reference value in REAPER and this in turn generates a series of actions in X32ReaperAutoMate for synchronizing with the new reference; We call this “catching up with time”. Because of technical choices made in X/M32, the best way to catch up with a correct state when one is going back in time is to reset the state of X/M32 and replay all already recorded events up to the new time set by REAPER. This is fast but nevertheless takes a few tenths of seconds, time during which the jog could have continued to move, creating a new time reference to catch up with, and so on until there are no more changes to the jog. As each catching up time represents a lot of OSC messages with potentially a lot of very rapid fader moves, X32ReaperAutoMate sets a timer to expire with no jog move before the catching up with REAPER time takes place. This has two effects: it significantly lowers the number of OSC messages and movement wear on X/M32 faders and offers a much smoother cursor move in REAPER as a jog is being turned. Typical values are in the 400ms range.

REAPER Tracks Name, Color & Icon

X32ReaperAutoMate carries a great feature to enable a better mapping of REAPER tracks to X/M32; REAPER tracks and X/M32 Channels can be attributed the same names, colors and icons thanks to an extended naming convention used in X32ReaperAutoMate.

In the picture below, REAPER track names are followed by two values. X32 Scribbles icons and colors can be updated from REAPER track data using:

<name>[ %icon[ %color]] (spaces are optional)

The picture below is the resulting X/M32 desk:

Here is an image showing the corresponding icon numbers:

(These are version 3 icons)

The following will create a track named Electric Gtr, with a red color LED and icon #20: “Electric Gtr %20 %9”

Color values are 0 – 15, and represent OFF, RD, GN, YE, BL, MG, CY, WH, OFFi, RDi, GNi, YEi, BLi, MGi, CYi, WHi

Remember:  Track Name %Icon# %Color#

 

 

 

 

 

 

Table Of Contents
Setting up X32XLiveAutoMate