WING

©Patrick-Gilles Maillot - donnations accepted: paypal.me/PMaillot 

And the console arrived, and ... how to put this: "Wow!".

A lot has been added to the console since its early days. There's a learning curve, quite steep if you never played with digital consoles, but having used an X32 helped a lot. There are still significant differences.

Starting with FW 2.0, a single document covers both OSC and binary/native protocols (listed below in the OSC and wapi chapters); Be warned these is not a "user guide" document, which is quite demanded by the WING user community, and although I agree, I  also think I am not experienced enough with live digital mixing to write such document; There must be much more knowledgeable people out there capable of putting this on paper. 

Some of the must see videos are the "How To" series. Watch them carefully, they are really well made and a lot to learn from them.



IMPORTANT NOTE

All 'Windows' utilities below are designed and tested under Windows 11; 

They should work with no issues on Windows 10 and XP. 

Earlier versions of Windows are not supported


Windows 11 Users:  I just moved to Windows 11 and found out the so-called "Console Window " 

behavior is different in Win 11 compared to previous versions of Windows. You will most likely want to

set the "Settings->Privacy&Security->for Developers->Terminal" option to "Windows Console Host"




-- wapi --

This document  talks about the WING internals from a software point of view, and how to program the console from an external application. To this effect, I started with a little help from Behringer to access the binary/native interface of the console, a rather low-level approach to the desk, where everything is in binary and not necessarily easy to get to. This helped me writing software to discover and list the full set of parameters, discover the accessible internal structures and automatically generate the list of tokens to be later used in wapi.

I could then start to write software in the form or a C library providing an abstraction layer to the console and enabling simple procedure calls to perform actions using the console. This is "wapi", for WING API [Application Programming Interface].

I've already written quite a bit of software, enabling to read data from the console, set attribute values, and more such as getting meter data. The WING attributes list is quite impressive with currently nearly 30000 parameters!!!, and all of WING capabilities are not completely exposed to users yet.

All of this, the wapi library [Windows, Linux, RPi & Mac (when I have access to a Mac to compile newer versions) ] and associated include files are available in a GitHub repository, along with several test programs.

Feedback welcome, as always.

A quick list of demo videos I posted so far: First steps towards wapi, first test using wapi, updating plugins using wapi, meters access and display using wapi, and more to come or presented below:

wcc is an application running on Windows, Mac, Rpi and Linux based computers for managing WING CUSTOM CONTROL knobs and buttons. The program is launched in a command‐line or terminal window and will automatically find and connect through network to the WING console in the same local (/24) network as the computer.

wcc enables saving and restoring snippets. It also enables associating snippets to buttons as ON/OFF or temporary push buttons. All buttons and commands can be organized as menus, even menus calling menus, offering an infinite set of commands available from fthe CUSCOM CONTROL section. One specific capability of wcc is to be able to simultaneously communicate with up to 8 OSC devices or servers and send them OSC commands when tou press a WING CC button or turn a WING CC knob. 

This enables for example the distant control of another WING, an X32, recording studio gear, video stream apps such as OBS or Atem (using OSC for OBS or atemOSC), or for example light systems that accept OSC commands.

All snippets and OSC commands are fully configurable thanks to the use of text editable definition files.

wcc also offers a direct (in-line command with -a, -o, -z options) and file (with -F option) loading of buttons and associated ON and [optional] OFF snippets load capability. All buttons work on a toggle basis to enable stable loading of ON or [optional] OFF snippet for the respective button value. But they can self-modify and become ‘push’ rather than ‘toggle’ type. In that case, PPT or ‘fugitive’ actions (still with separate ON and OFF snippet capability) open a new set of functions WING does not offer natively. In addition, rather than loading a snippet, you can reference another file containing new button definitions to allow an infinite, menu or browse-like organization of button-base functionality on WING.

All actions and parameters can also be handled through MIDI.

Documentation and a demo (showing OBS studio control) are available.

wxfade is a great application running on Windows, Linux, Mac, or Rpi based computers for managing WING scenes.

WING scenes are handled as binary files and are kept in the same directory the program runs from. The program is launched in a command‐line or terminal window and will automatically find and connect through network to the WING console in the same local network as the computer.

wxfade enables several operations with an infinite number of scenes such as save, restore, fade and cross-fade. It can be run in interactive mode, using the console to trigger actions, or as script commands. 

wxfade scenes are saved as binary files on your computer and the restore, fade and cross-fade operations accept either GLOBAL SAFES console settings  or Program SAFES options preventing complete strips, or the fader, mute, solo, eq or any other combination of scene parameters from being modified by the restoring or fading of a scene. Program SAFES can be changed on the fly using a WING Custom Control button that will load the new SAFE definitions from a file, GLOBAL SAFES are also available directly at the console screen.. 

wxfade enables the control of several fade IN and fade OUT parameters for DCAS, and a fade OUT / fade IN action on the touch of a button, making it easy to manage music vs. speaker panel setups of transitions between scenes using only DCA as it is often the case in theatres. 

wxfade also proposes direct (in-line command with -a, -o, -z options) and file (with -F option) loading of buttons and associated ON and [optional] OFF snippets load capability, even with GPIO, GPIO settings. All buttons work on a toggle basis to enable stable loading of ON or OFF snippet for the respective button value. But they can self-modify and become 'push' rather than 'toggle' type. In that case, PPT or 'fugitive' actions (still with separate ON and OFF snippet capability) open a new set of functions WING does not offer natively. 

In addition, rather than loading a snippet, you can reference another file containing new button definitions to allow an infinite, menu or browse-like organization of button-base functionality on WING. Demos of early versions: [link1, link2]. Demo of 3.0. Demo of ver 5.0. Demo of ver 5.5. Demo of ver 6.0.

All actions and parameters can also be handled through MIDI.


wxfade is available in the Products section at https://x32ram.com and comes with a user guide

Your own, direct recordings on WING made easier.

wmultitake is a Windows application offering you the capability to create your own/personal recordings directly to WING with a single click! Routing and bouncing are automatically taken care of. Your WING becomes as easy to use as a 4track recorder we used in the 80's, except you will be able to record up to 32 tracks, monitor your takes as you progress, mix later on the console, and produce professional quality media using all the WING capabilities.

wmultitake is available in the Products section at https://x32ram.com. Comes with a user guide and demo video.  

Now in ver 1.4: The full state of the console is saved when connecting, and restored upon exiting the application. Also,  inputs can now be Mono, Stereo or Mid/Side, recording 1 or 2 tracks per take. You have also the option of customizing sources and the given name, color and icon will be used for recording on SD cards as well as during monitoring (on the desk) enabling you to easily distinguish what is what in the routing and mixing stages. Two new features have been added, with the capability to replace the last recorded take, and being able to mix whatever has been recorded so far. All of the above with routing of IO and SD fully automated!

wSDwatchdog is a small utility to alarm you when the time left for SD recording is falling below a given value (default threshold: 10mns). Should the time falls below the threshold, the WING Scribbles LED will blink on a regular basis, reminding you to take action.
This aims at reducing frustration when one is busy mixing and recording of a live show will not complete because of a lack of space on one of the SD cards.

Demo: https://youtu.be/WFztatHS6tI

A screen saver program for WING (Window terminal, Linux  application). Launch this small utility and adjust lights for screen saving as well as out of screen saving mode. The screen saver timer can be chosen when launching the application in a terminal window (defaults to 20s). Source code is available on the wapi GitHub repository.

When the program runs, it will display its status "Screensaver ON" or "Screensaver OFF". In case of network errors such as following your computer going to sleep mode for example, the program will reconnect to the network and you will see several messages being displayed; This is normal.

During normal operation, you can adjust the lights levels of your WING; adjustments made while in screensaver mode will be saved as "low lighting" settings, and while off of screensaver mode will be saved as "high lighting" settings.

A small rta / meters display program showing WING RTA in a Windows canvas. Try using audio or the local oscillator in sine/pink/white noise :)

Now in ver 0.1 with a better match to WING levels, and colors...

A small wapi-based program changing the behavior of WING Mutes (on all channel strips). When entering mute, a strip is first decreasing its level with a 3dB/30ms slope before the mute is finally activated. The un-mute is activated back at the level the channel strip was prior to the mute request.
The corresponding program is less than 45 lines of C code.

The latest version includes multi-threading in order to enable multiple moves to take place simultaneously, and a number of parameters that can be set at program startup to change behavior. use -h  to list options.

This version is also Windows GUI based, and can run as a command-line with using option '-g 0' when starting the program.

Another wapi-based program changing the behavior of WING DCA faders. The goal is to provide a fade effect on DCA, lowering (down) or augmenting (up) fader vales based on the down and up times set in the program. DCA Fade-IN action is set by enabling the respective DCA MUTE, and Fade-OUT results of disabling the respective DCA MUTE.

The program automatically searches and connects to WING. It can be suspended (as in the picture left) by clicking the "Running.." button. Fade times are expressed in seconds.
Note that once in MUTES, the low level of a DCA can be set and will become the new 'low' value. Similarly the high level of DCA can be changed at anytime if the respective DCA MUTE is disabled.
Each of the 16 DCAs can be enabled or not using the respective checkbox under the IP address value.
UP can be LOW and vice versa, enabling nice effects in some occasions.

A wapi-based Windows application to play audio data contained in the USB stick playlist, of from SD cards 

Select a source for the Player from the proposed list and just hit Play/Pause/Stop. 

Make sure a USB playlist is available for playing audio from USB

You can go to the next or previous song in the USB or SD song/session list. Note that for SD cards, the list circulates through 1st and last sessions, when it blocks at 1st song or last song for USB stick. 

You can set/force the current starting point of the song by entering a value in seconds and pressing "From". If you enter a value in seconds right of "Loop" and press that button, the playing song will loop between the two values (from and loop). 

The current counter (in seconds too) is given bottom left.

Starting with version 0.5, wplayer supports recording for SD1 and SD2.

A wapi-based, command-line Windows, Linux or Rpi application to list all events generated by WING when changes take place

Want to find out more about what's going on?

Want to know all possible values for a parameter?

Etc. etc.

wevents will capture and display all events generated by WING and display them along with their associated value. Can be useful for debug of course, but is also a key tool for documenting what's happening in different situations.

Just run the program and watch WING events being displayed. hit Ctrl-C when done.

PS: weventshex is a (outdated now) special version that also provides the IEEE/hex format along with int and floating point data

I recently updated (in v 1.0)  the event buffer capacity to 1K events/500us, and the wapi buffer in the program is 10k bytes. I barely get notices for possible overflow. The theoretical number of 10byte events per second is 10k, showing the actual traffic on a 1Gb/s network is really about 1/10th of that. My typical testing is done moving up and down 12 or 20 faders at once. That's a lot of data exchanged per second. 

Use the -t option if you want to lower the time interval between event captures. This will also eliminate the possible overflow messages if you get some.

A simple wapi-based utility to save and restore 'scenes' from and to the Wing Desk.
Scenes are saved in the working directory, with names WING_bScene_[1...127]. These are pure WING binary files.

Run as simple command line tool. This program subscribes to WING events when launched in interactive mode (see below). Launch it and let run in the background as long as your WING is connected.

Currently saved: Ch, Aux, Fx, Bus, Mtx, Main, Dca, and Fx

Each 'scene' file is 124kB.

WARNING: This is now ver 3.0, with a 'low res' SAFES mechanism for restoring scenes, see below; a small video shows wscene running in non-interactive mode. This last release also fixes an issue when restoring scenes in non-interactive mode and includes options to choose MIDI channels and controllers if needed.


--wScenes-- ver 3.0  @2021-22 Patrick-Gilles Maillot


usage: wScenes [-i, to launch interactive mode]

               [-l 1..16 (Default: 2), set choice of layer]

               [-b 1..4 (Default: 1), set choice of button & knob set]

               [-s 1..127, save state to scene file WING_bScene_1..127]

               [-r 1..127, restore state from scene file WING_bScene_1..127]

               [-S <safes>, safes is a list of channels safe from restore:

                            ex: /ch/1,/ch/5-10,/mtx/1-4

                                ch 1, 5 to 10 and matrix 1 to 4 will not be restored]

               [-m <ch,cc1,cc2,cc3>, changes default MIDI settings, with ch = MIDI channel]

                            cc1: controller for scene number [1..127]

                            cc2: controller for saving scene on value 127->0

                            cc2: controller for restoring scene on value 127->0


 In interactive mode (option -i), wScenes subscribes WING events and looks for User Control

 Layer and Encoder number set with options -l and -b, and the two Buttons (up and down) values.

 Select a scene number using the knob. Button UP saves the desk state to a file named WING_bScene_1..127.

 Button Down restores the Desk state from file WING_bScene_1..127


 Option -i is needed along with options -b or -l

 Option -s <num> launches a one-shot Desk state save to file WING_bScene_<num>

 Option -r <num> launches a one-shot Desk state restore from file WING_bScene_<num>


 The Files WING_bScene_0..127 are binary files located in the same directory as the program

A wapi-based Windows, Linux or Rpi application to display WING fader values in real-time:

usage: wfdrvalues [-i WING ipv4 address]

                  [-t scribble restore timeout in ms]

                  [-s keep Ch and Aux strips safe from link customization changes]

       Captures fader WING events and displays their value (prior DCA) on the respective 

       scribble WING scribbles are restored after a timeout (option -t), or as soon as 

       changing channel strips.

       Applies to all WING channel strips, except DCA as so-called DCA names are used as 

       internal TAGS when channels get associated to a DCA.

A video showing the tool  in action (early version with 500ms timeout). Note that you must remove the "link customization to source" for Channel and Aux strips to display fader values if you use the -s option.

A small wapi-based Windows utility to manage a mono source towards 2 stereo outputs to create a quadrophony/Leslie effect.

Channels should be different and both receive the same mono source. The user can manually rotate right/left the wheel, or choose auto-mode and adjust rotation speed with the horizontal slider.

Input and Output routing are left to the user.

A wapi-based Windows program to manage Tap Tempo for any delay capable WING effect, either from tapping tempo on the GUI button, Ctrl-t from the keyboard (app must have Windows' focus), or getting the tap tempo from audio signals on a chosen WING Channel 

The program will automatically find your WING in the same /24 subnetwork and show a "Connected" status. Clicking on that button will close the application.

Operation: Select an FX slot for WING [1..16] and click "Check" to validate if this is a Delay-type FX. 

Supported delay models are: DEL/REV, ST-DL, TAP-DL, TAPE-DL, OILCAN, and BBD-DL

You can then click on "TAP" to set the tempo value, or update the FX time value directly on the desk, or set it from the "BPM value" followed by clicking on "BPM". Actual tempo can be averaged over 5 successive tempo settings by turning on the "Avg/5" button. The combo box on the left enables you to set a divider/multiplier to the tempo value, defaulting to 1.
Finally you can also click on "Auto OFF/ON" button to auto-set the tempo (Averaging and divider/multiplier still applying) using a WING audio channel "Ch", and adjusting the Gate threshold ("Sens") on the signal that comes to the channel; The tempo will be set by the gate opening signal (small green dot showing in the Gate). Adjust Gate parameters to achieve consistent results. 

If the Glb (for Global) flag is set, the current tempo value will automatically be set to the selected FX when changing FX. Averaging is turned OFF when Global is set.

Windows, Linux, or Rpi, wapi‐based remote automixing solution for  up to 40 channels on WING. wautomix automatically manages up to 40 fader levels of inputs  channels based on their post‐trim/gain meter values. The program uses a threshold level to decide what  to do for each channel, independently.  wautomix can run in a terminal console as a shell program, or can run as a  Windows GUI  program [default]. In both cases the WING console should be powered on and connected to the same /24 subnetwork as the PC running the  application. The program to automatically find and connect to the WING desk.  

Shell Mode:  To run the application in a terminal console, the user will launch the program using the -c option. The  ‐h option can also be used to print all optional settings supported by the application:  

wxautomix: AutoMix for WING - v 0.3 - (c)2022 Patrick-Gilles Maillot

usage: wautomix [-c: Set Command Line mode - default: GUI mode]

                [-s 0..11: Set mixing channel index (Bus 1..8 ,Main 1..4) - default=8 Main 1]

                [-t -144..10: Set sensitivity value in dB - default=-50.]

                [-n 0..1: Set NOMA off(0) or on(1) - default: 1]

                [-d 0..10: Delay in seconds before fader down value - default: 4]

                [-l 1..40: Last channel used in wautomix - default: 8]

                [-f 1..40: First channel used in wautomix - default: 1]

                [-r -144..10: Active channel faders low value in dB - default: -144.0]

                [-u -144..10: Active channel faders high value in dB - default: 0.0]

                [-g 0..5000: Time in ms for faders get to their down value - default: 100]


Uses the WING mixing desk in remote Automix automated mode for the designated channels 

Ever wanted to know what's inside the WING?

Here's wbin,  a wapi-based Windows or Linux application to dialog with WING in native/binary mode, somewhat equivalent to what wosc does using OSC protocol.

A little nerdy maybe :), but proven useful in many situations. The program will also report instant changes that take place at the desk. Warning: A lot of data can be displayed!

Maybe you'll want to familiarize with the WING binary interface first ;-)

Known commands are:

wbin - v0.01 - (c)2021 Patrick-Gilles Maillot


Connecting to Wing.Using wapi ver: 1.16

WING found at IP: 192.168.0.11


toggle debug mode         d

set Max bytes shown       m <number>

assert hash from name     a [<node name>]

set hash:                 h [<hash>]

get hash/list node data: g|l [<hash>]

set data:                 s <format: i|f|s> [<data>]

toggle:                   t [<hash>]

clicks/steps (+/-):       c [<number>]

parse node description:   p [<hash>]

write data to file:       f <file> [<node name>]

goto root (hash=0):       r

up to parent:             u

send bin data:            w <hex data>

exit:                    q|e


A small demo / app displaying the FAST dBFS and SPL values from OSM (Open Sound Meter), showing how to join a multicast group and get the server data to display them on 4 WING scribbles. The source code can easily be adapted to other cases and environments, and is available at https://github.com/pmaillot/wapi/tree/master/wosm 

A small video is available on Youtube for those interested.

-- OSC --

WING supports OSC starting with version 1.7.x (post 1.7.02). I describe in the WING Remote Protocols document how to use OSC with WING. 

I wrote a small application (wosc) to dialog with WING over OSC. The notation used is similar/close to the one used with X32_Command (for X32).

The OSC implementation for WING supports get/set operations; i.e. you need to inquire for data; It is also possible to set a single subscription for all binary or OSC messages, and get event-based messages from the desk.

The AutoMate Series for WING

The "AutoMate" series of programs are great examples of OSC-based software, adding automation to the consoles (X32, M32, WING) from Behringer.

Overtime, there's been a large list of features added to the programs, delivering in the Recording/Mixing Studio the best these consoles have to offer. Full automation of all console parameters means you can work your mixes over and over with the full feature set and flexibility the consoles provide.

The AutoMate series offer the comfort of working directly with the desk and its surface controls, as if you were mixing live, except you can go back in time, modify settings, recall parameters, play loops, etc. All the things you find in DAW programs, replacing the cumbersome use of the mouse with actual controls from the desk  surface. 

Details, docs & videos at http://x32ram.com

AutoMate for WING & REAPER

A good example of use of OSC with WING is the WingReaperAutoMate program, initially released on Jan 2021 and already making a number of WING users happy :). 

There are numerous videos of the capabilities used in programming the desk, getting events from it and managing DAW settings as well as hand-free GPIO use.

 Watch WingReaperAutoMate in action with this video (music here).


AutoMate for WING & W-Live

Another great example of use of OSC with WING is the WingWLiveAutoMate program, which I release June 7, 2022.

 It inherits a lot of the advanced features of WING, enabling full automation of the console, without the need for a DAW or DAW connection.

 Watch an early test version of WingWLiveAutoMate in action with this video.

A simple, yet powerful, Windows-based command line program to interact with WING over OSC. The program will automatically find your console if present on the same network, use the -i option otherwise.

Usage: wosc [-i ipv4 address]            [-d 0/1, [0], debug option]            [-v 0/1  [1], verbose option]            [-k 0/1  [1], keyboard mode on]            [-t int  [10], delay between batch commands in ms]            [-s file, reads node formatted data lines from 'file']            [-f file, sets batch mode on, getting input data from 'file']        default is to broadcast for finding WING console and        max buffer sizes are 1kB for sending, 10kB for receiving
 If option -s file is used, the program reads data from the provided file    until EOF has been reached, and exits after that.
 If option -f file is used, the program runs in batch mode, taking data from    the provided file until EOF has been reached, or 'exit' or 'kill' entered.
 If not killed or no -f option, the program runs in standard mode, taking data    from the keyboard or <stdin> on linux systems. While executing, the following commands can be used:   'help' | '?': will display this help text   '#line of text.....': will print out the input line as a comment line   'exit' | 'quit': will quit the current mode   'kill': [batch mode only] will exit the program   'time <value>': will change the delay between batch commands to <value>   'verbose <on|off>': will change the verbose mode   'verbose': will return the current verbose mode   'wremote <bin | osc | off>': will change the wremote mode (only 1 valid at a given time)   'wremote': will return the current wremote mode   '' (empty line) [standard mode only]: will repeat the last entered command
   ~<data> (debug line) [standard mode only]: sends <data> (2x format) without any parsing
 All other commands are parsed and sent to WING. Typical WING command structures:   <command> [<format> [<data> [<data> [...]]]], where for example:      command: /?, /, /ch/1/fdr, ...      format: ',' ',i' ',f' ',s' or a combination: ',siss' ',ffiss' ...      data: a list of int, float or string types separated by a space char...
   format can also be : ',b' used on node commands, see below:      the ',b' format is used to request a node definition, or to request node data      such as /ch/1 ,b <data in hex>;      for example, setting color of channel 1 to index 5 (refer to native commands):         /ch/1 ,b d75a46d1bcd400000005dd
      for example, entering /ch/1/mute ,b dd replies with the node data as binary and a         description of the node contents:         parse 30 bytes node             len: 26, hash: f50f69f8, index: 0, flags: 0040             name: mute longname: MUTE, type: <int> [0..1]End of help - wosc v0.4

WING supports string, int, float and blob OSC Tag Types. The blob type is used for nodes and enabling transmitting native commands to WING when appropriate.

WING OSC implementation also enables a 'real-time' (so to speak) discovery of the WING dynamic JSON data structure by using nodes. Indeed, the internal WING data structures evolve as FX plugins or other elements are inserted/removed or enabled/disabled.

WING OSC also enables to receive the expected OSC reply onto a specified port (this was not possible on X32).

Note: Starting with ver 0.6, wosc has become a multi-threaded application with a thread dedicated to user input for a better handling of keyboard events.

A simple OSC utility to save and restore 'scenes' from and to the Wing Desk.
Scenes are saved in the working directory, with names WING_Scene_[1...127]. These are text files even if they don't appear as such in your files.

Run as simple command line tool. This program uses the only OSC subscription slot available in WING when launched in interactive mode (see below). Launch it and let run in the background as long as your WING is connected.

Currently saved: Ch, Aux, Fx, Bus,  Mtx, Main,  Dca, and Fx

Each 'scene' file is 114kB.

WARNING: Safes are limited to full set of channel parameters, and only work with applying -r option. This last release includes options to choose MIDI channels and controllers if needed.



--Wing_Scenes-- ver 3.0  @2021 Patrick-Gilles Maillot


usage: Wing_Scenes [-i, to launch interactive mode]

                   [-l 1..16 (Default: 2), set choice of layer]

                   [-b 1..4 (Default: 1), set choice of button & knob set]

                   [-s 1..127, save state to scene file WING_Scene_1..127]

                   [-r 1..127, restore state from scene file WING_Scene_1..127]

                   [-S <safes>, safes is a list of channels safe from restore:

                            ex: /ch/1,/ch/5-10,/mtx/1-4

                                ch 1, 5 to 10 and matrix 1 to 4 will not be restored]

                   [-m <ch,cc1,cc2,cc3>, changes default MIDI settings, with ch = MIDI channel]

                            cc1: controller for scene number [1..127]

                            cc2: controller for saving scene on value 127->0

                            cc2: controller for restoring scene on value 127->0


 In interactive mode (option -i 1), Wing_Scenes uses the WING OSC subscription to constantly

 read the DESK and looks for OSC messages for User control layer and Encoder number set with

 options -l and -b, and the two Buttons (up and down) values. Select a scene number using the knob.

 Button UP saves the desk state to a file named WING_Scene_1..127

 Button Down restores the Desk state from file WING_Scene_1..127


 Option -i is needed along with options -b or -l

 Option -s <num> launches a one-shot Desk state save to file WING_Scene_<num>

 Option -r <num> launches a one-shot Desk state restore from file WING_Scene_<num>


 Option -r is needed along with option -S


 The Files WING_Scene_0..127 are located in the same directory as the program

Have WING commands control other devices through MIDI or OSC.

WCommander scans for a user selected subset of WING OSC commands. If a matching command is found, the tool can fire a MIDI or OSC command to another device, optionally using parameters sent with the matching command.

When using the WING command parameters, a formula can be applied using a reverse polish notation calculator.

The program can be launched directly, in that case it will attempt to open ./WCommander.txt, a file that contains the list of commands to match and replace with user selected commands. WCommander can also be launched from a terminal window, with a -f option, enabling you to create and keep a set of files to fit different situations.

-- MIDI --

Standard DIN5 and USB MIDI are supported.

MIDI Remote‐Control is supported using WING MIDI Port 4.  MIDI CC is provided for FADER, MUTE, PAN on different MIDI channels  on all channels, and Custom Controls Remote (RX only, user layers 1..16) is available on MIDI CH6.

WING also supports MIDI SYSEX messages, part of the MIDI protocol implementation in the console.  SYSEX is a key component of MIDI implementation for advanced, digital desks as many commands are  dedicated to controlling the desk as a surface control, rather than sending MIDI instrument notes.  Standard 3 bytes MIDI messages are generally not long enough to support the full set of capabilities  these new desks offer. This is made possible through the use and support of SYSEX functionality.  

A quick WING MIDI implementation document is available as part of the Wing Remote Protocols document as a specific chapter.


To further use MIDI with WING, the desk offers a DAW mode that can support multiple DAWs. This document gives information on how to setup a REAPER interface to WING DAW mode. The Behringer site also have several other DAW presets.


Although an OSC based program, WCommander (see above in the OSC section) can be used to send MIDI to your studio/live equipment from WING.

Send OSC, or snippets from MIDI commands

This little application inherits from Midi2OSC, and adds to its capabilities the following:

The command file for MidiOSCProxy must have a .mop extension.

Attention: Use the Dbg checkboxes with caution: You must acknowledge each single message!!!

An OSC & MIDI based "If This Then That" program

MidiOscIttt is a simple “If This Then That” program with triggers based on MIDI or OSC data input. 

The  Output is also MIDI or OSC data.  While there are many services and applets capable of handling IFTTT scenarios for MIDI, and some for  OSC, very few handle both simultaneously and as a standalone application.  

MidiOscIttt does not rely on external http servers, doesn’t need an internet connection (but needs  ethernet for handling UDP/OSC datagrams) and can be tailored to your needs in order to perform  scenarios you decide, based on a text‐only definition file (no JSON involved).  

MidiOscIttt can also launch applications based on the received MIDI or OSC data