Table of Contents

Ember+ Remote Control

Ember+ is a lightweight control protocol developed by Lawo and L-S-B Broadcast Technologies. It was published an open standard, and various companies have implemented Ember+ in their products since.

In Ember+, a device (or software) can act as a “provider” or as a “consumer”. The provider, e.g. a mixing console, publishes a tree of “parameters” which reflect the current status of the system (e.g. fader on/off, volume levels, etc.). The “consumer” acts as a client, subscribes to parameter changes, and can also send parameter updates in order to make changes to the provider where possible.

mAirList implements an Ember+ consumer which can be used as a regular remote control inside mAirList.

Supported Hardware

mAirList can connect to any kind of Ember+ provider. However the following limitations apply (as of mAirList 5.3):

A list of manufacturers who have implemented Ember+ in their products can be found in the ember-plus Wiki. Products include Lawo R3LAY VRX (formerly JADE Studio), and also DHD Series 52 with firmware 8.x.x.x (as an alternative or addition to the native DHD control protocol).

System Requirements

The Ember+ remote is based on ember_slim.dll which requires Microsoft Visual C++ Redistributable 2013 x86 to be installed on your system: http://www.microsoft.com/en-us/download/details.aspx?id=40784

Configuration

Open the standalone configuration app or the Control Panel, go to the Remote Control page, and add a new Ember+ Consumer remote.

Connection setup and monitor

To establish a connection to an Ember+ provider, first enter the IP address or hostname, and the TCP port (usually 9000).

When you are adding a new Ember+ remote, or when using the standalone config app, check the Monitor option to establish a connection to the provider and enable the monitor and parameter tree (see below). When reconfiguring an existing remote from the Control Panel while mAirList is running, the monitor will always be enabled.

In the Monitor list, mAirList displays all received parameter changes from the provider, and you can double-click a row in order to assign a new remote control command to a particular parameter.

Commands

On the Commands tab, you assign remote control commands to Ember+ parameter changes.

Parameter names are specified in a path-like manner, using the / sign as a separator. The easiest way to assign a command to a parameter is to double-click a parameter in the monitor or parameter tree view, but you may also add one manually.

For numeric parameters, various conditions (equal, greater than, greater or equal, …) can be used to match the received value.

In the Value field, just enter the parameter value that should trigger the command, which you must select from the dropdown list or type manually.

Please note that boolean parameters use the values true and false (in lower case letters).

Parameter tree

When the monitor function is enabled on the Connection tab, mAirList will propagate the parameter tree which is display on the last tab of the configuration dialog:

Parameter updates received from the provider will be displayed in real time, and you can also double-click any parameter in order to assign a remote control command to it (see above).

Scripting

The Ember+ remote control provides a script extension that can be used to send parameter updates to the Ember+ provider from a script.

The remotes are accessed by the following function:

function EmberPlusConsumerRemote(iIndex: integer): IEmberPlusConsumerRemote;

Remotes are 0-based, so EmberPlusConsumerRemote(0) returns the first Ember+ remote in the system, as a reference to an IEmberPlusConsumerRemote interface. That interface provides a method for parameter updates:

procedure SetParameterValue(iIDPath: string; iValue: string);

IDPath is the path to the parameter in the tree, using the / sign as the delimiter (the same notation as used in the remote control command assignments, see above).

Example:

EmberPlusConsumerRemote(0).SetParameterValue('/Device/SomeLabel', 'foobar');

Note that the value is always given as a string, mAirList will automatically convert it to the correct type. Use 'true' and 'false' for boolean parameters.

Important notice: mAirList fetches the entire parameter tree from the provider. This is an asynchronous operation, and depending on the size of the tree, it can take a few seconds until the entire tree is known to mAirList. If you try to set a parameter that has not been fetched yet (e.g. in an OnLoad procedure that is executed during startup), you wil see an Unknown parameter error message. In this case, try to defer the call for a bit, using a sleep(…) operation.