Virtual Switching
The real audio switching these days is done in Liquidsoap, a software-defined audio processing system. This is ultimately found in sel.liq.
The process of switching at its most complicated is:
- A source is selected in MyRadio via SIS (Studio Information System) API Func
- MyRadio makes a Telnet connection with a command to Selector Listener, a piece of software running on a raspberry Pi connected to the serial of the physical Selector
- The physical selector makes a decision on if the current source is allowed to be selected (based on power and lock status) and selects it.
- SelectorListener writes a database record to record its change, this changes the MyRadio API/Timelord display etc (be careful to update the configuration if the database server is changed!)
- SelectorListener makes a Telnet connection to Liquidsoap to actually perform the source selection.
Note that if you're selecting from the selector buttons, step 1 and 2 are skipped. Also note that this therefore means that the physical selector is considered the master of the selector output, so things get very borked / unresponsive if it's not present.
At a pinch, you can telnet liquidsoap directly and force a switch.
One last note is that if Liquidsoap is restarted, it will switch to a default source (typically Off-Air). The MyRadio API will likely be incorrectly reporting the selector state until the physical selector is told to change to the same source that liquidsoap is outputing, before selecting back to whatever source is required.