Ember+ for LUCI STUDIO

Remote control with 3th party 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 “Windows” folder.

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.

When you use multiple instances and start the “LUCI Studio Manager” your screen would look something like this:

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.

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: SIP registration or RTP go live
  • 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-HE”,”AAC-HEv2″,”G711-A”,”G711-u”,”G722″,”L16″,”L24″,”ULCC”,”ULCC-24″,”Opus Low delay”,”Opus Voice”,”Opus Audio”
    B: Bitrate
    M:Mode, “M”=mono, “S”=stereo
  • WarningAcknowledge: Acknowledge the warning with true or false ( see Connection Info: )
  • Record: set recording on( value true ) or off ( value false ) ( see Recording Info )
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..79 , overload = 80, and are all peak values of the last 180 msec. Delta values are useful as a audio signalling indicator.
  • WarningMessage: Information that has to be acknowledged, like error message dialogs. The string is a list of “::” separated items: “title text::message text::Acknowledge button text::Cancel 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.
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.

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


Use LUCI Studio Manager as Watchdog

“LUCI Studio Manager” can be used to automatically startup your LUCI STUDIO instances and act as watchdog to restart them on failure. For this, “LUCI Studio Manager” looks for the configuration file “LUCI Studio Manager.ini” file in the same directory where “LUCI Studio Manager.exe” is located ( usually C:/Program Files/LUCI Studio/ ) . There you must define a section called “Instances” with the following “keys”:

[Instances]
Path_To_Exe="F:\Luci Studio\Windows\LuciStudio.exe"
Instance0="D:\LUCI STUDIO\LUCI ST VC01.lsup"
Instance0_autostart=1
Instance0_emberport=9023
Instance0_inactivitytime=10
Instance1="D:\LUCI STUDIO\LUCI ST VC02.lsup"
Instance1_autostart=1
Instance1_emberport=9024
Instance1_inactivitytime=10

Every instance has the name InstanceX where X is a unique number ( 0,1.. ) and several options:

  • Path_To_Exe = only applicable for Luci Studio on USB so you can define an exact path to the LuciStudio.exe program ( as of v 5.7.5 )
  • InstanceX=: the absolute file path of the instance lsup file in “..” quotes
  • InstanceX_autostart=: Let the manager start the luci instance, 1 = on , 0 = off
  • InstanceX_emberport=: override the ember-port set in the lsup file and use this port for ember communication with this instance
  • InstanceX_inactivitytime=:  this will restart the instance when it does not respond within the set time ( in seconds ).

Note: Although the “LUCI Studio Manager.exe” is installed in the c:\Program Files\LUCI Studio. It can be moved/copied to any other User writeable location like the lsup files location.