2 tesira-driver: Networked Audio Mixer
This driver was written to control the Biamp Tesira devices. These devices act as a fully programmable network-capable audio mixers.
Since capabilities of these devices are really wide, the driver is not able to cover them all and instead focuses on a single key area. Volume and mute control on a central matrix mixer.
2.1 Command Line Arguments
-r, --rpc-endpoint —
Endpoint to receive commands on. Defaults to tcp://127.0.0.1:46102. -p, --pub-endpoint —
Endpoint to push notifications from. Defaults to tcp://127.0.0.1:46202. -i, --identity —
Identity for both endpoints. Defaults to tesira.
Apart from these flags, the tesira-driver command expects an address of the device to connect to via its telnet interface and name of the mixer element to control. For example:
tesira-driver --identity audio 10.0.0.135 Mixer2
Would connect to the device, scan the Mixer2 object and assume the audio identity.
2.2 Command Messages
To request immediate notification about mixer status:
(hasheq 'request "status")
It takes some time to get all the information from the device. Asking for status too frequently could cause control slowdown.
To change volume on an input or output line respectively:
(hasheq 'request "set-input-level!" 'input input 'level level) (hasheq 'request "set-output-level!" 'output output 'level level) Where input and output are numbers of the mixer input or output line in question, counting from 0. The level is the volume in dB. Valid volumes range from -100.0 to 12.0.
To mute an input or output line completely (without affecting the configured volume level):
(hasheq 'request "set-input-mute!" 'input input 'mute? mute?) (hasheq 'request "set-output-mute!" 'output output 'mute? mute?) Where input and output are numbers of the mixer input or output line in question, counting from 0. The mute? boolean flag indicates whether the line should be muted or not.
To change input or output line label:
(hasheq 'request "set-input-label!" 'input input 'label label) (hasheq 'request "set-output-label!" 'output output 'label label) Where input and output are numbers of the mixer input or output line in question, counting from 0. The label is a string with new name for that particular line.
2.3 Published Messages
When the device is running, a simple beacon is sent:
(hasheq 'delta (hasheq 'status "online"))
When an input or output level has been modified:
(hasheq 'delta (hasheq 'input (hasheq 'input input-number 'status (hasheq 'label "Mic 1" 'level 0.0 'mute? #f)))) (hasheq 'delta (hasheq 'output (hasheq 'output output-number 'status (hasheq 'label "Speaker L" 'level 0.0 'mute? #f)))) When full status have been requested:
(hasheq 'full (hasheq 'status "online" 'mixer (hasheq 'inputs (list (hasheq 'label "Mic 1" 'level 0.0 'mute? #f) ...) 'outputs (list (hasheq 'label "Speaker L" 'level 0.0 'mute? #f) ...))))