Ember+ for LUCI STUDIO

Remote control with Ember+ clients

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

The Ember+ remote control is managed by the separate program called “LUCI Studio Manager”, which is distributed with LUCI STUDIO. You can find it in the Start menu as “LUCI Studio Manager” or, when you purchased LUCI STUDIO installed on USB, in your USB drive’s folder.

 



Ember+ control protocol

Each LUCI STUDIO is managed through it’s own Ember+ port and can be remotely controlled by one or more Ember+ client application. The display will show the nr of Ember+ clients E+(nr) that are connected with the Instance. eg. Here the 3e Instance has 2 remote clients connected, the rest 1.
Below you can see how this is set up:

 



Activate Ember+ Plugin

The Ember+ feature is a separate plugin that can be bought in our shop. Easiest way is to select the “Buy” link in the LUCI STUDIO “About” window, so you get directly to the shop item with your activation code filled in.
After finishing the purchase, press the “Re-Activate for License update” button and wait for a positive result. Now LUCI STUDIO is ready for Ember+.

Start-up

To use Ember+ in your LUCI Studio instances the program “LUCI Studio Manager” needs to be started only once per PC. It will then communicate with all LUCI STUDIO instances internally and receives the Ember+ commands externally.
It acts like a relay for your Ember+ commands to all LUCI STUDIO instances. This is done in order to relieve the LUCI STUDIO instances from any external communication which could interfere with your live streams.

To setup “LUCI Studio Manager” please read its manual. Once setup, the “LUCI Studio Manager” would look something like this when having 4 LUCI STUDIO instances:

The LUCI Studio instances are set like this in the Options / Ember+ page:

All instances MUST have different instance names and port numbers. The port numbers are the ports that your Ember+ remote control connects to.

Every Ember+ client that is used for remotely control the Luci Studio instances use this ember port to connect to the right Luci Studio. Revert to your (3e party) Ember+ client software manual how to set this up.

Luci Studio supports the following commands/parameters to be changed or watched, using the Ember+ protocol. The Ember parameter tree looks like this:

Identity
  • product: Luci Studio
  • company: Technica Del Arte
  • serial: not used
  • version: current version nr of Luci Studio
  • features: not used
  • name*: the name of the instance
  • group*: instance group number ( color 0..12 )
Commands:
  • Disconnect: hang-up current call ( or Reject incoming )
  • Accept: Accept incoming call
  • Register: Toggles the LUCI STUDIO Connection button for SIP registration or RTP connection
  • Connect: Connect to a destination. Connection parameters are transferred in the Argument as a UTF8 string encoded as json. Example:
    "D":"0031433219499@iptel.org","S":"48000","A":"MP2","B":"64000","M":"M"
    D: Destination
    P: Protocol, possible values: “sip”,”rtp”,”sc-rtp”,”mc-src”,”mc-rcv”
    S: Samplerate
    A: Algorithm/Codec , possible values:”MP2″,”AAC-LC”,”AAC-LD”,”AAC-ELD”,”AAC-ELDV2″,”AAC-HE”,”AAC-HEv2″,”G711-A”,”G711-u”,”G722″,”Linear 16 bit”,”Linear 24 bit”,”ULCC”,”ULCC-24″,”ULCC-s”,”Opus Low delay”,”Opus Voice”,”Opus Audio”,”Follow caller”
    B: Bitrate
    M:Mode, “M”=mono, “S”=stereo
  • WarningAcknowledge: Acknowledge the warning with integer value 1 = “Accept role” 0 = “Reject Role”, 2 = thirth role  ( see Connection Info: )
  • Record: set recording on( value true ) or off ( value false ) ( see Recording Info )
  • Play: play/stop the selected file to be played
Connection Info
  • Status:
    • “Not Ready”: LUCI Studio instance not started
    • “Stand By”: LUCI Studio instance started
    • “Incoming Call Waiting”: Waiting for incoming connection (Only the Antenna is active).
    • “Calling”: Calling a destination, or incoming call.
    • “Synchronized”: Incoming stream is decoded Ok.
    • “UDP Warning”: No valid input stream data
    • “UDP Error”: Above warning has timed out, signalling a connection loss
  • Destination: Server,Callee or Caller.
  • Incoming format: A UTF8 string formatted as json, compatible with “Connect” command.
  • Outgoing format: A UTF8 string formatted as json, compatible with “Connect” command.
  • Station: The currently chosen station profile name.
  • Jitter buffer*: current jitter buffer, in ms, to use.
  • Dynamic jitter buffer*: current dynamic jitter buffer to use, in ms.
  • Live jitter buffer: jitter buffer that the streaming engine currently uses. Dependent on Jitter buffer and Dynamic jitter buffer. If the dynamic jitter buffer is 0, then this is always constant and the same as the Jitter buffer.
  • Live VU values: An Octet array of the following values: Maximum Delta of Peak Input VU value, The Peak Input VU value, Maximum Delta of Peak Output VU value, The Peak Output VU value, the Peak Input Jitter value, Peak Output Jitter value. Values are scales from 0..60, overload = 80, and are all peak values of the last 180 msec. Delta values are useful as a audio signalling indicator. VU values are averages of all channels.
  • WarningMessage: Information that has to be acknowledged, like error message dialogs. The string is a list of “::” separated items: “title text::message text::Acceptbutton text::Reject button text::Thirth Button text”. After receiving, the message can be acknowledged by the “WarningAcknowledge” command.
  • Connection Time: The time durance that the connection is valid. The value string is hours:minutes:seconds.
  • Dropped packets:  counter value as in the Info window of LUCI STUDIO
  • Sequence errors:  counter value as in the Info window of LUCI STUDIO
  • Buffer underrun:  value as in the Info window of LUCI STUDIO
  • Buffer status:  value as in the Info window of LUCI STUDIO
  • Peak jitter IN**: The maximum jitter value of the IN stream
  • Peak jitter OUT**: The maximum jitter value of the OUT stream ( send by reciever, so only when available )
  • Mic Vu**: an Octed array of the Mic VU (OUT) starting with the number of channels, then the VU value per channel with a max of 8 channels. Values are scales from 0..60 (equals -60..0 dB), overload = 80
  • Net Vu**: an Octed array of the Net VU (IN) starting with the number of channels, then the VU value per channel with a max of 8 channels. Values are scales from 0..60 (equals -60..0 dB)
SIP and STUN info
  • SIP Status:
    • “Offline”: at non SIP protocols
    • “Registering”: trying to REGISTER
    • “Calling”: trying to Call
    • “Incoming call”: signalling an incoming call
    • “Call in progress”: connection current
    • “Registered”: Registered to SIP server
  • SIP URI: own URI of LUCI Studio instance
  • STUN Status: Not used
  • External IP: Not used
Audio IO
  • Input: the input channels used.
  • Output: the output channels used.
  • Driver: using Asio-driver name , Wasapi or standard Windows driver.
Recording
  • State: Info about recording state ( “Stop”,”Pause”,”Recording” ).
  • File name: the filename string of the recording.
  • Time: the Recording time string in minutes:seconds.
Play

  • Play State: Info about playing state ( “Stop”,”Playing” ).
  • File name: the filename string of the file to play.
  • Time: the time in minutes:seconds. When playing it shows the rest time, else it shows the file length.

Note *: These can be changed by an Ember+ remote control, also during streaming.

Note **: These values are replacements for the “Live VU values”