User Interface
WingReaperAutoMate has a simple user interface [UI] with a low set of options so you can focus on your mixing work.
The user interface per se (how you interact with the program) spans over two sections, one is a “WING User Interface” with actual knobs and buttons on the WING console and is detailed later in this chapter. The other one is the application user interface, a window on your PC screen, probably the same system as the one running REAPER. The main application window at launch time is shown below:
There are more technical fields that can be set at initialization time and are modifiable using the configuration file. The tool main window offers several fields you can fill and a few buttons that can be actioned. These are described in the following paragraphs.
Application User Interface [UI]
“WING IP Address”
This is the IP at which your WING is present on your local network. This field is also present in the configuration file and can be left empty; In that case, the “Connect” button below will display “Search WING” instead, enabling you to discover your WING automatically on the local network. Note that the broadcast request for WING presence is done only on the last 255 addresses of the local network, which should be suitable for most use cases.
Even if an IP address is found automatically, it may not be the one of the devices you want to connect to; In that case, just disconnect, enter the device IP address and connect again. This can happen in situations where multiple consoles are present on the network.
“AutoMate Mode” / [“Connect”, “Search WING”, “Running”, “ReadWrite_ON”]
This is the main button for running WingReaperAutoMate. If the WING IP address is already known at initialization time (i.e. provided with the configuration file), it will be displayed in the “WING IP Address” field and the button will display “Connect”. If the WING IP address is left blank, the button will display “Search WING”. In the latter case, the WING will be auto discovered and its IP address will be displayed in the respective field once found. With “Connect” or “Search WING” options, WingReaperAutoMate will start and initialize the mixing console, using all options and initial data found in the configuration file. If all steps go well, the button will finally display “Running”, showing the tool is ready to manage OSC and MIDI data between REAPER and WING.
This button will alternate between “Running” and “ReadWrite_ON”, displaying the event recording status of WingReaperAutoMate, so users can keep track of the program running state,
“Mix Name” / “Load”, “Save”, “GetS”
WingReaperAutoMate workflow manages WING events relative to REAPER audio data. This combined information can be saved and restored as ‘Mix’es using the “Save” and “Load” buttons, respectively. When using “Save” or “Load”, the tool refers to a project name which is entered or selected by the user and is used for naming project files and being echoed in the “Mix Name” user interface field. A Mix is comprised of two files, one containing OSC events and one containing an initial WING state (a scene).
Using the “Save” and “Load” buttons, one can create different versions of an audio mix, and replay them at will for comparing changes for example. Note that the text edit field is read-only and will get filled with a Mix name resulting of the selection you will have made after pressing on one of the “Save”, “Load”, or “GetS” buttons.
The “GetS” button enables you to load only the state or scene part of an existing Mix, thus helping setting up a starting scene for a new Mix session, or testing different settings for an existing one (assuming you kept different prior Mix sessions to test with). The loaded scene becomes the start scene/state for your current session.
“Load int. scene” [1]
WING scenes play a key role in ensuring a project mix starts from or correctly maintains its proper WING set of parameters. Setting a scene number value [tbd] in the text edit field situated at the right of the “Load int scene” button and clicking on the button will load the respective WING internal scene and apply changes to the WING digital audio engine.
“New Mix”
This button enables you to switch from one Mix to another without exiting WingReaperAutoMate. When you engage “New Mix”, WingReaperAutoMate proposes you to save your current work; It also set REAPER to a “STOP” and “RtZ” state, and optionally deletes all events from the current Mix so you can start from a clean slate. What is important is that “New Mix” does not change any of the current/ongoing WING scene or settings currently in place, unless of course if you also decide to load a scene using “Scene Load” or “GetS” after calling “New Mix”.
You will also be asked if you want to reset WingReaperAutoMate interface state to initial values, affecting “Autom_ON”, “Repeat”, “ReadWrite_ON”, etc. states.
“Ch #1”, “Ch #2”, “Delete”, “Reset”
A basic feature of WingReaperAutoMate is to record a time stamp with all WING OSC events. This is great if you don’t make unwanted moves/actions or don’t make mistakes. But we all know this will not always be the case and it may become useful to be able to go back (a little or a lot) in time, erase changes that were made, and record new ones. These two selections enable the program to perform selected operations simultaneously on one, two, or a range of channels of your choice so you can cover for stereo channels or multiple channels covering for a single instrument such as drums, while event recording is active.
If ‘Ch #1’ or ‘Ch #2’ are set alone (i.e. of them is OFF), the Actions as described below will take place for Ch #1 or Ch #2. If Ch #2 is set and is less than Ch #1, the Actions as described below will take place for both Ch #1 and Ch #2. If Ch #1 is set and is less than Ch #2, the Actions as described below will take place for the range of channels Ch #1 to Ch #2, included.
Actions can be one of:
- ‘Delete’ the complete automation data records for the selected channels. ‘Delete’ suppresses the data that has been recorded as Automation is in Write mode. It will not change the initial state of the channels which recorded data is deleted.
- ‘Reset’ the selected channels to an initial state, so you can set again channel attributes such as name, icon, color, compression, EQ, etc. Note that ‘Reset’ does not change the values saved in the initial state scene; This is achieved by pressing the “Save Scene” button (see later in this document).
- Engage the “Auto” button (see later in the document) to temporarily suspend automation on the selected channels.
- A selective erase function with engaging the “EditMode” button; this feature should be used with caution and will be active only when at least “Play” and “Read/Write” buttons are engaged along with the “Autom_ON” button in the in the WING User Interface; The use of a GPIOs and addition of a foot pedal assigned to the function provides it a very convenient addition.
“Undo”
This function offers a 16-level undo capability. A click on the ‘Undo‘ button will undo all changes made at the console and recorded since the last press on the “Read/Write” button.
Each time you enable “Read/Write” from its OFF state, a signature is generated and saved with all subsequent events that will be recorded, until “Read/Write” returns to OFF. WingReaperAutoMate remembers the last 16 signatures and each press on “Undo” will use the most recent signature to remove all events signed with it, and pop to the previous signature if there is one. The ‘Undo’ Action is not dependent on the values of “Ch #1” or “Ch #2”.
“From”, “To”, “->0:0”
In addition to the above, you can click on the ‘From’ and ‘To’ buttons (after having moved the audio cursor to specific time values) to respectively set start and end times limiting the scope of ‘Delete’, “Susp.Auto”, “Edit”, or ‘Undo’ Actions to apply only between the two values represented by ‘From’ and ‘To’ (included). If both ‘From’ and ‘To’ are set to 0, the Actions above will apply on the entire mix.
Pressing on ‘->0:0’ resets the values of ‘From’ and ‘To’.
“WING logo”
Clicking on the logo will get you to the x32ram.com website using your default web browser.
WING User Interface
WingReaperAutoMate makes use of the WING DAW mode to interface transport. The implementation of DAW mode on WING is quite convenient and using MIDI over USB means no lag in processing MIDI commands. The WING User Interface spans over 5 layers of 8 buttons situated at he lower section of the center User Control area on the console, and uses the Jog Wheel and cursor buttons to provide easy to use REAPER project navigation. On each of the 5 layers, the basic transport functions “Stop”, “Play/Pause”, “REW” and “FFW” use the 4 leftmost buttons, always arranged in the same manner, so basic transport is always available at the tip of your fingers.
Additional WingReaperAutoMate functions are using the other set of 4 buttons of each of the 5 layers, thus providing access to up to 20 additional features.
Although not recommended, it is possible for users to modify the setup/layout of transport functions/features in changing the data provided under the UIxInitNode tags (x = 0..4) in the configuration file. If you decide to change the data and order or position of functions/features, make sure you first save the initial data and understand the OSC data sent by these node strings.
Functions/Features Description
Jog Wheel & Navigation buttons
WingReaperAutoMate uses the Jog Wheel to enable audio cursor movement and audio scrubbing in your projects. Audio scrubbing (as opposed to audio cursor move alone) rely on the “Scrub” button to be engaged; see below.
The four navigation buttons located left of the Jog Wheel provide additional navigation options in your project, from strip change to X/Y moves. When associated with the “Zoom” button, navigation buttons will act as zoom-in/zoom-out functions on the REAPER tracks; see below.
Buttons
WingReaperAutoMate proposes different functions which are described in the following paragraphs. For each function, we try to detail the actual effect or impact in REAPER, the current mix and WING.
“Stop”
This function stops audio and brings the audio cursor to an halt state. “Play”, “Pause”, or “Record” if any of these functions were active are cancelled.
“Play”, “Pause”
“Play” and “Pause” are very standard transport functions; They act in WingReaperAutoMate exactly as expected, “Play” starts audio in REAPER and possibly (depending on the “Autom_ON” button) automation events associated to the digital audio samples being played (rendered) with the WING audio engine over USB. Pressing the button again will set REAPER in “Pause” state with no change to the audio cursor so that a new “Play” button press will resume from the current position; In “Pause” state, other functions may still have been active, depending on the state of other buttons, such as recording events (see below under Instantaneous Changes).
“Pause” state changes can also result of the use or encounter of REAPER markers with name RWPAUSE found in the REAPER timeline.
“FFWD, REWIND”
These functions respectively move forward or backward the audio cursor in the REAPER project by an amount of time provided by REAPER. If REAPER markers are set as part of your project, forward and backward moves will jump from marker to marker.
“RtZ” [Rewind To Zero]
This function rewinds the REAPER audio project to its very beginning. REAPER’s audio cursor goes to the left all the way, at time = 0:00:00. For WingReaperAutoMate, this sets the first event in the event recording list as the next event to synchronize with time, and the WING audio engine state is set to initial values thanks to a scene loaded at startup, a WING scene the user has prepared and saved using the “Save Scene” function, or a scene that has been loaded with the use of the “Load” or “GetS” buttons (see below).
“Scrub”
This function enables audio samples rendering to follow the cursor position after a move has been performed using the Jog Wheel. Scrubbing can take place moving forward of backwards; In both cases, the processing of intermediate automation events will be managed so that the state of WING is correct at the time audio rendering continues right after an audio scrub action took place. When moving backwards, there is a user settable threshold of time below which the automation settings will not be replayed since time = 0:00:00 to provide better user friendliness, this has a 2000ms default value and can be controlled through the ‘WCatchUpThreshold’ entry in the configuration file.
“Read/Write”
This is a key function of WingReaperAutoMate; When set, Automation will be in “Write” mode and will record WING changes or OSC events that will follow your mixing work, and permits to play them back in sync with audio. By default, ”Read/Write” is not engaged and corresponds to Automation being in “Read” mode. ”Read/Write” actually sets an internal WingReaperAutoMate state changing the way data is processed when one hits “Play”; not only audio data will be played from REAPER, but all WING events will be recorded, synchronized with audio. This recorded data represents a Mix that can then be played back later, such as when one clicks on “RtZ” for example.
The events that are recorded in the Mix can be altered by the ‘DoNotRecord’ tag in the configuration file. You probably do one want to record things such as desk bank changes with your Mix! The default value set for the ‘DoNotRecord’ entry value is generally suitable for most users.
At any time during a Mix, you may decide to change an already recorded fader curve (or recorded moves); Just grab and move the fader! Because WING does not have touch-sensitive faders, it is best to grab the fader just before it starts or when it slightly pauses in its recorded curve; This will avoid ‘fighting’ against fader motors and prevent fader motor and belt wear. The fader (or other WING parameter) signature will be kept until a timeout expires after your last move; at that point the already recorded curve will resume if it is still active. The fader signature timeout is settable in the .ini file, under the ‘TouchThreshold’ entry.
”Read/Write” state changes can also result of the use or encounter of REAPER markers with name RWON or RWOFF found in the REAPER timeline.
Pressing/Enabling “Read/Write” also creates a new undo signature. You can perform your mix changes in separate states, dis-engaging and re-engaging “Read/Write”; This will provide you with up to 16 undo levels to work with, using the “Undo” button in the Windows UI.
“Autom_ON”
When navigating through your audio project, you can decide whether automation is active (“Read” or “Write” depending on “Read/Write”) or not (“Off”). Resetting “Autom_ON” automatically resets “Read/Write”.
By automation, we mean execution of the recorded events from your Mix in sync with audio sample from the REAPER Project. There may be times where it is better not to have automation. You can decide which state is given to automation as WingReaperAutoMate starts by setting a flag accordingly in the configuration file. When “Autom_ON” is active, syncing back in time such as in the case of an “RtZ” request by the user or whenever jog time drops below a value set in the configuration file, the WING engine state is reset to ensure the WING will correctly represent the evolution of events as time progress. The internal scene used for this is either the state of WING when WingReaperAutoMate is launched, the scene accompanying the Mix when loading it, or the scene that was saved when pressing the ‘Save Scene’ button.
You can disengage “Autom_ON” at any time during “Play”. When doing this, automation will stop, until “Autom_ON” is re-engaged again. At that point, WingReaperAutoMate will synchronize events with time to ensure your mix sounds as intended. This is a different behavior as when using “Susp.Auto” (see later in this document)
“Zoom”
The “Zoom” function has specific actions for the 4 navigation buttons situated left of the jog wheel. When disabled, the navigation buttons navigate left & right or up & down along the time strip or the different tracks of the REAPER project. When enabled, the navigation buttons will zoom in or out REAPER tracks stretching/compressing time, or expanding/reducing the vertical size of REAPER tracks.
“Time/Beat”
This button alternates the display of REAPER time between different formats provided by REAPER. The available formats are H:M:S, Samples, Beats, and Absolute Frames
“RECORD”
“RECORD” is also a very standard transport function. Pressing this function key sets REAPER to a record state, assuming there are REAPER tracks armed for recording. If this is not the case, a warning will be displayed by REAPER, requiring user input. You can/(should?) use the “Rec-Rdy” function prior to engaging “RECORD” (see below).
“SvSc”/”Rec-Rdy”
“SvSc” (a.k.a. “Save Scene”) enables setting/saving an initial WING state for a project. This important operation saves a set of OSC nodes used to set all channels and audio parameters to a known starting state for the project. It also will later be saved with the Mix, and used as a reference start point/state each time there’s a need to play events from a known reference, enabling correct parameters being set when scrubbing through audio for example, or rewinding past the time threshold represented by the ‘WCatchUpThreshold’ entry value in the configuration file.
The “Save Scene” functions doubles up with “Rec-Rdy” (for “Record Arming/Readying” and marked RcRdy): If instead of pressing and releasing the button (which will effectively save the current state of your WING as described above), you maintain the button pressed down, you will notice the WING channel strip Select lights are all set OFF. You can use (while keeping the “Rec-Rdy” button down) the channel strip’ Select buttons to toggle the Record Arm of the respective REAPER tracks. When releasing the button, the system will return to its normal behavior for Select buttons. REAPER tracks will reflect the record arming/un-arming as requested while the button was maintained pressed down. A subsequent use of the “Record” function will effectively record on REAPER tracks that have been record-armed.
“ReaperMute”
Pressing the “ReaperMute” button will, as in the case of “Rec-Rdy” set all WING channel strip Select lights to OFF; You can then while keeping the “ReaperMute” button down, press on the SELECT button of a WING channel strip and this will toggle the MUTE state of the respective REAPER track.
When releasing the “ReaperMute” button, the system will return to its normal behavior for Select buttons.
“ReaperSolo”
Pressing the “ReaperSolo” button will, as in the case of “Rec-Rdy” set all WING channel strip Select lights to OFF; You can then while keeping the “ReaperSolo” button down, press on the SELECT button of a WING channel strip and this will toggle the MUTE state of the respective REAPER track.
When releasing the “ReaperSolo” button, the system will return to its normal behavior for Select buttons.
“Susp.Auto”
“Susp.Auto” stands for ‘suspend automation’ and does just that: It disables automation for the channels or channel range chosen with the ‘Ch #1 and “Ch #2’ entries in the application UI. This function is associated to GPIO #1 and can be activated using a footswitch for a better ease of use. Note that in the case of “Susp.Auto”, there is no catch up of automation events when releasing “Susp.Auto”, unlike in the case of “Autom_ON”.
“EditMode”
“EditMode” can be used to erase recorded WING OSC events from the event list. As with any erasing tool, this can be dangerous for your mix! No less than four very logical steps are required for this function to take effect: Specific Channel numbers or a channel range (chosen with the ‘Ch #1’ and ‘Ch #2’ entries in the application UI) must be set in the application user interface window and the “EditMode” button must be engaged. As a third condition, WingReaperAutoMate must also have “Autom_ON” active. When all conditions are met and when engaging “Play”, events signed with the selected channels will be removed from the Mix at the time they synchronize with the playing audio. They will therefore not be executed, as if automation was disabled for the selected channels. In addition, and if “Read/Write” is also engaged simultaneously to “Play” and “EditMode”, new events will be recorded, and replace events being removed for the (maximum two) selected channels, while other channels’ events will continue to be executed or recorded as expected, adding to the already existing Mix. Note nevertheless that due to reference timestamp values not being as accurate as the recorded timestamps, some of the newly recorded events may also be deleted. It is therefore better to first delete/erase data, and in a second pass, record new events.
Even if not using the ‘Ch #1’ and ‘Ch #2’ entries in the application UI and “EditMode”, you can simply modify already recorded fader moves of a fader (or other parameters) on the fly; Please refer to the “Read/Write” paragraph.
The “EditMode” feature enables for example to remove or replace large sections of fader curves, without the risk of forcing on the actual physical faders as WING does not have touch-sensitive faders. In order to make the feature easier to use, GPIO #2 and foot-controlled switch are attached to the function.
“Loop”
The “Loop” function enables… looping within an audio section in the REAPER project. The selection of audio samples to cycle through is set using the “Beg. Loop” and “End Loop” reference points using the audio cursor.
“Beg. Loop”, “End Loop”
“Beg./End Loop” mark the beginning or the end of an audio section used for loops. To make the audio loop effective, use the “Loop” function. The “Beg. Loop” button press sets the beginning of the loop at the current audio cursor position in REAPER, and pressing “End Loop” marks the end of the loop at the current cursor position. If the loop set by “Beg. Loop” and “End Loop” is longer than the value of the ‘WCatchUpThreshold’ entry value in the configuration file, WingReaperAutoMate will reset the project scene to its initial state and replay all events until the beginning of the loop as the audio cursor is at the beginning of the loop, to ensure WING parameters evolve correctly between the two reference points.
“Del. Loop”
“Del. Loop” deletes the loop (if one exists) from the REAPER audio project.
“Add Marker”
“Add Marker” adds a REAPER marker to the REAPER project. Markers are useful tags to point to or select specific spots in the audio mix. Markers are added at the current audio cursor position.
“Del Marker”
“Del Marker” deletes the REAPER marker at the cursor position (assuming there is a marker of course).
“Marker Loop”
“Marker Loop” tells REAPER to loop in the audio from a marker named MLPE found in the REAPER timeline.to a previous marker with a different name. REAPER will not loop between two consecutive markers both named MLPE. “Marker Loop” can be enabled and disabled at any time.
Additional Features
As presented in the WING optional setup chapter, there is a possibility to simultaneously control some of the REAPER tracks attributes/settings directly from the console while using WingReaperAutoMate.
Additionally, you can precisely pre-record (or automate) the punch in and punch out features offered by WingReaperAutoMate from REAPER. In order to do so, you just add markers to your REAPER project and give them specific names (RWON and RWOFF) recognized by WingReaperAutoMate as enabling or disabling the “Read/Write” button directly from REAPER. This gives the ability to precisely record a section of WingReaperAutoMate changes or automation in your mix, simplifying the steps to watch for so you can concentrate on your Mix.
Markers with name RWPAUSE can be used to set REAPER in a PAUSE state at a precise time values. Make sure you remove the markers to play your entire mix!
Markers with name MLPE can be used to tell REAPER to loop between this (MLPE) position and the previous marker it finds in the timeline. If no previous marker is found, REAPER will loop from the beginning of the audio; REAPER will not loop between consecutive markers both named MLPE.
The following names are used:
- RWON: sets Read/Write
- RWOFF: resets Read/Write
- RWPAUSE: sets REAPER to PAUSE
- MLPE: sets end of Marker Loop
[1] Not implemented a.t.m. Will be updated/implemented when WING FW supports internal scenes management available outside of an opened internal show.
User Interface Features (WingReaperAutoMate)
User Interface
WingReaperAutoMate has a simple user interface [UI] with a low set of options so you can focus on your mixing work.
The user interface per se (how you interact with the program) spans over two sections, one is a “WING User Interface” with actual knobs and buttons on the WING console and is detailed later in this chapter. The other one is the application user interface, a window on your PC screen, probably the same system as the one running REAPER. The main application window at launch time is shown below:
There are more technical fields that can be set at initialization time and are modifiable using the configuration file. The tool main window offers several fields you can fill and a few buttons that can be actioned. These are described in the following paragraphs.
Application User Interface [UI]
“WING IP Address”
This is the IP at which your WING is present on your local network. This field is also present in the configuration file and can be left empty; In that case, the “Connect” button below will display “Search WING” instead, enabling you to discover your WING automatically on the local network. Note that the broadcast request for WING presence is done only on the last 255 addresses of the local network, which should be suitable for most use cases.
Even if an IP address is found automatically, it may not be the one of the devices you want to connect to; In that case, just disconnect, enter the device IP address and connect again. This can happen in situations where multiple consoles are present on the network.
“AutoMate Mode” / [“Connect”, “Search WING”, “Running”, “ReadWrite_ON”]
This is the main button for running WingReaperAutoMate. If the WING IP address is already known at initialization time (i.e. provided with the configuration file), it will be displayed in the “WING IP Address” field and the button will display “Connect”. If the WING IP address is left blank, the button will display “Search WING”. In the latter case, the WING will be auto discovered and its IP address will be displayed in the respective field once found. With “Connect” or “Search WING” options, WingReaperAutoMate will start and initialize the mixing console, using all options and initial data found in the configuration file. If all steps go well, the button will finally display “Running”, showing the tool is ready to manage OSC and MIDI data between REAPER and WING.
This button will alternate between “Running” and “ReadWrite_ON”, displaying the event recording status of WingReaperAutoMate, so users can keep track of the program running state,
“Mix Name” / “Load”, “Save”, “GetS”
WingReaperAutoMate workflow manages WING events relative to REAPER audio data. This combined information can be saved and restored as ‘Mix’es using the “Save” and “Load” buttons, respectively. When using “Save” or “Load”, the tool refers to a project name which is entered or selected by the user and is used for naming project files and being echoed in the “Mix Name” user interface field. A Mix is comprised of two files, one containing OSC events and one containing an initial WING state (a scene).
Using the “Save” and “Load” buttons, one can create different versions of an audio mix, and replay them at will for comparing changes for example. Note that the text edit field is read-only and will get filled with a Mix name resulting of the selection you will have made after pressing on one of the “Save”, “Load”, or “GetS” buttons.
The “GetS” button enables you to load only the state or scene part of an existing Mix, thus helping setting up a starting scene for a new Mix session, or testing different settings for an existing one (assuming you kept different prior Mix sessions to test with). The loaded scene becomes the start scene/state for your current session.
“Load int. scene” [1]
WING scenes play a key role in ensuring a project mix starts from or correctly maintains its proper WING set of parameters. Setting a scene number value [tbd] in the text edit field situated at the right of the “Load int scene” button and clicking on the button will load the respective WING internal scene and apply changes to the WING digital audio engine.
“New Mix”
This button enables you to switch from one Mix to another without exiting WingReaperAutoMate. When you engage “New Mix”, WingReaperAutoMate proposes you to save your current work; It also set REAPER to a “STOP” and “RtZ” state, and optionally deletes all events from the current Mix so you can start from a clean slate. What is important is that “New Mix” does not change any of the current/ongoing WING scene or settings currently in place, unless of course if you also decide to load a scene using “Scene Load” or “GetS” after calling “New Mix”.
You will also be asked if you want to reset WingReaperAutoMate interface state to initial values, affecting “Autom_ON”, “Repeat”, “ReadWrite_ON”, etc. states.
“Ch #1”, “Ch #2”, “Delete”, “Reset”
A basic feature of WingReaperAutoMate is to record a time stamp with all WING OSC events. This is great if you don’t make unwanted moves/actions or don’t make mistakes. But we all know this will not always be the case and it may become useful to be able to go back (a little or a lot) in time, erase changes that were made, and record new ones. These two selections enable the program to perform selected operations simultaneously on one, two, or a range of channels of your choice so you can cover for stereo channels or multiple channels covering for a single instrument such as drums, while event recording is active.
If ‘Ch #1’ or ‘Ch #2’ are set alone (i.e. of them is OFF), the Actions as described below will take place for Ch #1 or Ch #2. If Ch #2 is set and is less than Ch #1, the Actions as described below will take place for both Ch #1 and Ch #2. If Ch #1 is set and is less than Ch #2, the Actions as described below will take place for the range of channels Ch #1 to Ch #2, included.
Actions can be one of:
“Undo”
This function offers a 16-level undo capability. A click on the ‘Undo‘ button will undo all changes made at the console and recorded since the last press on the “Read/Write” button.
Each time you enable “Read/Write” from its OFF state, a signature is generated and saved with all subsequent events that will be recorded, until “Read/Write” returns to OFF. WingReaperAutoMate remembers the last 16 signatures and each press on “Undo” will use the most recent signature to remove all events signed with it, and pop to the previous signature if there is one. The ‘Undo’ Action is not dependent on the values of “Ch #1” or “Ch #2”.
“From”, “To”, “->0:0”
In addition to the above, you can click on the ‘From’ and ‘To’ buttons (after having moved the audio cursor to specific time values) to respectively set start and end times limiting the scope of ‘Delete’, “Susp.Auto”, “Edit”, or ‘Undo’ Actions to apply only between the two values represented by ‘From’ and ‘To’ (included). If both ‘From’ and ‘To’ are set to 0, the Actions above will apply on the entire mix.
Pressing on ‘->0:0’ resets the values of ‘From’ and ‘To’.
“WING logo”
Clicking on the logo will get you to the x32ram.com website using your default web browser.
WING User Interface
WingReaperAutoMate makes use of the WING DAW mode to interface transport. The implementation of DAW mode on WING is quite convenient and using MIDI over USB means no lag in processing MIDI commands. The WING User Interface spans over 5 layers of 8 buttons situated at he lower section of the center User Control area on the console, and uses the Jog Wheel and cursor buttons to provide easy to use REAPER project navigation. On each of the 5 layers, the basic transport functions “Stop”, “Play/Pause”, “REW” and “FFW” use the 4 leftmost buttons, always arranged in the same manner, so basic transport is always available at the tip of your fingers.
Additional WingReaperAutoMate functions are using the other set of 4 buttons of each of the 5 layers, thus providing access to up to 20 additional features.
Although not recommended, it is possible for users to modify the setup/layout of transport functions/features in changing the data provided under the UIxInitNode tags (x = 0..4) in the configuration file. If you decide to change the data and order or position of functions/features, make sure you first save the initial data and understand the OSC data sent by these node strings.
Functions/Features Description
Jog Wheel & Navigation buttons
WingReaperAutoMate uses the Jog Wheel to enable audio cursor movement and audio scrubbing in your projects. Audio scrubbing (as opposed to audio cursor move alone) rely on the “Scrub” button to be engaged; see below.
The four navigation buttons located left of the Jog Wheel provide additional navigation options in your project, from strip change to X/Y moves. When associated with the “Zoom” button, navigation buttons will act as zoom-in/zoom-out functions on the REAPER tracks; see below.
Buttons
WingReaperAutoMate proposes different functions which are described in the following paragraphs. For each function, we try to detail the actual effect or impact in REAPER, the current mix and WING.
“Stop”
This function stops audio and brings the audio cursor to an halt state. “Play”, “Pause”, or “Record” if any of these functions were active are cancelled.
“Play”, “Pause”
“Play” and “Pause” are very standard transport functions; They act in WingReaperAutoMate exactly as expected, “Play” starts audio in REAPER and possibly (depending on the “Autom_ON” button) automation events associated to the digital audio samples being played (rendered) with the WING audio engine over USB. Pressing the button again will set REAPER in “Pause” state with no change to the audio cursor so that a new “Play” button press will resume from the current position; In “Pause” state, other functions may still have been active, depending on the state of other buttons, such as recording events (see below under Instantaneous Changes).
“Pause” state changes can also result of the use or encounter of REAPER markers with name RWPAUSE found in the REAPER timeline.
“FFWD, REWIND”
These functions respectively move forward or backward the audio cursor in the REAPER project by an amount of time provided by REAPER. If REAPER markers are set as part of your project, forward and backward moves will jump from marker to marker.
“RtZ” [Rewind To Zero]
This function rewinds the REAPER audio project to its very beginning. REAPER’s audio cursor goes to the left all the way, at time = 0:00:00. For WingReaperAutoMate, this sets the first event in the event recording list as the next event to synchronize with time, and the WING audio engine state is set to initial values thanks to a scene loaded at startup, a WING scene the user has prepared and saved using the “Save Scene” function, or a scene that has been loaded with the use of the “Load” or “GetS” buttons (see below).
“Scrub”
This function enables audio samples rendering to follow the cursor position after a move has been performed using the Jog Wheel. Scrubbing can take place moving forward of backwards; In both cases, the processing of intermediate automation events will be managed so that the state of WING is correct at the time audio rendering continues right after an audio scrub action took place. When moving backwards, there is a user settable threshold of time below which the automation settings will not be replayed since time = 0:00:00 to provide better user friendliness, this has a 2000ms default value and can be controlled through the ‘WCatchUpThreshold’ entry in the configuration file.
“Read/Write”
This is a key function of WingReaperAutoMate; When set, Automation will be in “Write” mode and will record WING changes or OSC events that will follow your mixing work, and permits to play them back in sync with audio. By default, ”Read/Write” is not engaged and corresponds to Automation being in “Read” mode. ”Read/Write” actually sets an internal WingReaperAutoMate state changing the way data is processed when one hits “Play”; not only audio data will be played from REAPER, but all WING events will be recorded, synchronized with audio. This recorded data represents a Mix that can then be played back later, such as when one clicks on “RtZ” for example.
The events that are recorded in the Mix can be altered by the ‘DoNotRecord’ tag in the configuration file. You probably do one want to record things such as desk bank changes with your Mix! The default value set for the ‘DoNotRecord’ entry value is generally suitable for most users.
At any time during a Mix, you may decide to change an already recorded fader curve (or recorded moves); Just grab and move the fader! Because WING does not have touch-sensitive faders, it is best to grab the fader just before it starts or when it slightly pauses in its recorded curve; This will avoid ‘fighting’ against fader motors and prevent fader motor and belt wear. The fader (or other WING parameter) signature will be kept until a timeout expires after your last move; at that point the already recorded curve will resume if it is still active. The fader signature timeout is settable in the .ini file, under the ‘TouchThreshold’ entry.
”Read/Write” state changes can also result of the use or encounter of REAPER markers with name RWON or RWOFF found in the REAPER timeline.
Pressing/Enabling “Read/Write” also creates a new undo signature. You can perform your mix changes in separate states, dis-engaging and re-engaging “Read/Write”; This will provide you with up to 16 undo levels to work with, using the “Undo” button in the Windows UI.
“Autom_ON”
When navigating through your audio project, you can decide whether automation is active (“Read” or “Write” depending on “Read/Write”) or not (“Off”). Resetting “Autom_ON” automatically resets “Read/Write”.
By automation, we mean execution of the recorded events from your Mix in sync with audio sample from the REAPER Project. There may be times where it is better not to have automation. You can decide which state is given to automation as WingReaperAutoMate starts by setting a flag accordingly in the configuration file. When “Autom_ON” is active, syncing back in time such as in the case of an “RtZ” request by the user or whenever jog time drops below a value set in the configuration file, the WING engine state is reset to ensure the WING will correctly represent the evolution of events as time progress. The internal scene used for this is either the state of WING when WingReaperAutoMate is launched, the scene accompanying the Mix when loading it, or the scene that was saved when pressing the ‘Save Scene’ button.
You can disengage “Autom_ON” at any time during “Play”. When doing this, automation will stop, until “Autom_ON” is re-engaged again. At that point, WingReaperAutoMate will synchronize events with time to ensure your mix sounds as intended. This is a different behavior as when using “Susp.Auto” (see later in this document)
“Zoom”
The “Zoom” function has specific actions for the 4 navigation buttons situated left of the jog wheel. When disabled, the navigation buttons navigate left & right or up & down along the time strip or the different tracks of the REAPER project. When enabled, the navigation buttons will zoom in or out REAPER tracks stretching/compressing time, or expanding/reducing the vertical size of REAPER tracks.
“Time/Beat”
This button alternates the display of REAPER time between different formats provided by REAPER. The available formats are H:M:S, Samples, Beats, and Absolute Frames
“RECORD”
“RECORD” is also a very standard transport function. Pressing this function key sets REAPER to a record state, assuming there are REAPER tracks armed for recording. If this is not the case, a warning will be displayed by REAPER, requiring user input. You can/(should?) use the “Rec-Rdy” function prior to engaging “RECORD” (see below).
“SvSc”/”Rec-Rdy”
“SvSc” (a.k.a. “Save Scene”) enables setting/saving an initial WING state for a project. This important operation saves a set of OSC nodes used to set all channels and audio parameters to a known starting state for the project. It also will later be saved with the Mix, and used as a reference start point/state each time there’s a need to play events from a known reference, enabling correct parameters being set when scrubbing through audio for example, or rewinding past the time threshold represented by the ‘WCatchUpThreshold’ entry value in the configuration file.
The “Save Scene” functions doubles up with “Rec-Rdy” (for “Record Arming/Readying” and marked RcRdy): If instead of pressing and releasing the button (which will effectively save the current state of your WING as described above), you maintain the button pressed down, you will notice the WING channel strip Select lights are all set OFF. You can use (while keeping the “Rec-Rdy” button down) the channel strip’ Select buttons to toggle the Record Arm of the respective REAPER tracks. When releasing the button, the system will return to its normal behavior for Select buttons. REAPER tracks will reflect the record arming/un-arming as requested while the button was maintained pressed down. A subsequent use of the “Record” function will effectively record on REAPER tracks that have been record-armed.
“ReaperMute”
Pressing the “ReaperMute” button will, as in the case of “Rec-Rdy” set all WING channel strip Select lights to OFF; You can then while keeping the “ReaperMute” button down, press on the SELECT button of a WING channel strip and this will toggle the MUTE state of the respective REAPER track.
When releasing the “ReaperMute” button, the system will return to its normal behavior for Select buttons.
“ReaperSolo”
Pressing the “ReaperSolo” button will, as in the case of “Rec-Rdy” set all WING channel strip Select lights to OFF; You can then while keeping the “ReaperSolo” button down, press on the SELECT button of a WING channel strip and this will toggle the MUTE state of the respective REAPER track.
When releasing the “ReaperSolo” button, the system will return to its normal behavior for Select buttons.
“Susp.Auto”
“Susp.Auto” stands for ‘suspend automation’ and does just that: It disables automation for the channels or channel range chosen with the ‘Ch #1 and “Ch #2’ entries in the application UI. This function is associated to GPIO #1 and can be activated using a footswitch for a better ease of use. Note that in the case of “Susp.Auto”, there is no catch up of automation events when releasing “Susp.Auto”, unlike in the case of “Autom_ON”.
“EditMode”
“EditMode” can be used to erase recorded WING OSC events from the event list. As with any erasing tool, this can be dangerous for your mix! No less than four very logical steps are required for this function to take effect: Specific Channel numbers or a channel range (chosen with the ‘Ch #1’ and ‘Ch #2’ entries in the application UI) must be set in the application user interface window and the “EditMode” button must be engaged. As a third condition, WingReaperAutoMate must also have “Autom_ON” active. When all conditions are met and when engaging “Play”, events signed with the selected channels will be removed from the Mix at the time they synchronize with the playing audio. They will therefore not be executed, as if automation was disabled for the selected channels. In addition, and if “Read/Write” is also engaged simultaneously to “Play” and “EditMode”, new events will be recorded, and replace events being removed for the (maximum two) selected channels, while other channels’ events will continue to be executed or recorded as expected, adding to the already existing Mix. Note nevertheless that due to reference timestamp values not being as accurate as the recorded timestamps, some of the newly recorded events may also be deleted. It is therefore better to first delete/erase data, and in a second pass, record new events.
Even if not using the ‘Ch #1’ and ‘Ch #2’ entries in the application UI and “EditMode”, you can simply modify already recorded fader moves of a fader (or other parameters) on the fly; Please refer to the “Read/Write” paragraph.
The “EditMode” feature enables for example to remove or replace large sections of fader curves, without the risk of forcing on the actual physical faders as WING does not have touch-sensitive faders. In order to make the feature easier to use, GPIO #2 and foot-controlled switch are attached to the function.
“Loop”
The “Loop” function enables… looping within an audio section in the REAPER project. The selection of audio samples to cycle through is set using the “Beg. Loop” and “End Loop” reference points using the audio cursor.
“Beg. Loop”, “End Loop”
“Beg./End Loop” mark the beginning or the end of an audio section used for loops. To make the audio loop effective, use the “Loop” function. The “Beg. Loop” button press sets the beginning of the loop at the current audio cursor position in REAPER, and pressing “End Loop” marks the end of the loop at the current cursor position. If the loop set by “Beg. Loop” and “End Loop” is longer than the value of the ‘WCatchUpThreshold’ entry value in the configuration file, WingReaperAutoMate will reset the project scene to its initial state and replay all events until the beginning of the loop as the audio cursor is at the beginning of the loop, to ensure WING parameters evolve correctly between the two reference points.
“Del. Loop”
“Del. Loop” deletes the loop (if one exists) from the REAPER audio project.
“Add Marker”
“Add Marker” adds a REAPER marker to the REAPER project. Markers are useful tags to point to or select specific spots in the audio mix. Markers are added at the current audio cursor position.
“Del Marker”
“Del Marker” deletes the REAPER marker at the cursor position (assuming there is a marker of course).
“Marker Loop”
“Marker Loop” tells REAPER to loop in the audio from a marker named MLPE found in the REAPER timeline.to a previous marker with a different name. REAPER will not loop between two consecutive markers both named MLPE. “Marker Loop” can be enabled and disabled at any time.
Additional Features
As presented in the WING optional setup chapter, there is a possibility to simultaneously control some of the REAPER tracks attributes/settings directly from the console while using WingReaperAutoMate.
Additionally, you can precisely pre-record (or automate) the punch in and punch out features offered by WingReaperAutoMate from REAPER. In order to do so, you just add markers to your REAPER project and give them specific names (RWON and RWOFF) recognized by WingReaperAutoMate as enabling or disabling the “Read/Write” button directly from REAPER. This gives the ability to precisely record a section of WingReaperAutoMate changes or automation in your mix, simplifying the steps to watch for so you can concentrate on your Mix.
Markers with name RWPAUSE can be used to set REAPER in a PAUSE state at a precise time values. Make sure you remove the markers to play your entire mix!
Markers with name MLPE can be used to tell REAPER to loop between this (MLPE) position and the previous marker it finds in the timeline. If no previous marker is found, REAPER will loop from the beginning of the audio; REAPER will not loop between consecutive markers both named MLPE.
The following names are used:
[1] Not implemented a.t.m. Will be updated/implemented when WING FW supports internal scenes management available outside of an opened internal show.
Patrick
Computer scientist, music enthusiast and guitar player, Patrick-Gilles has acquired an X32 in 2014 and wrote the UNOFFICIAL X32/M32 OSC REMOTE PROTOCOL, which soon became the reference for many X32 or M32 users and application programmers. Patrick-Gilles has also published and open-sourced several X32 or M32 utilities and applications.