Over the past couple weeks, we completed the refinement of the broadcast server implementation and deployed it into the production environment. For more details, read on.
**What is the Broadcast Server?**
When we boil it down, the radio station is an always-on audio stream that is constantly generated in real-time from a collection of audio files, but with some additional fanciness. When people think about what the radio station is, it’s too easy for it to get boiled down into “an automated playlist” which is only one part of the system.
The broadcast server handles some of those fancier features such as song transitions and crossfades, hourly trailers, the ability for a DJ connection to cut in for events such as Gensokyo Radio Live, and of course, the aforementioned automated song selection system. Without the broadcast server (or something in place to do its most basic functions), there would be no audio stream, so it is arguably the heart of the radio station.
**Before and After Reimplementation**
For nearly two months, the role of the broadcast server was passed to a machine in one of the station’s studios and essentially ran a very similar software stack as when we were colocating server hardware in a datacenter some years back. Overall, it’s pretty similar to what the broadcast server normally runs but with a few key differences: we had trailers turned off (no hourly radio IDs), the sound profile was different (listeners described this as being overall “quieter”), and the library was unabridged (since we ran it from the studio where we have access to 100% of the station library).
After the broadcast server was put back into production, listeners would have noticed the radio ID trailers come back and the sound profile returned to how it was before. The library initially ran with songs from a limited subset of circles, but it has since been updated with a new song rotation system. Since the broadcast server has limited space for the song library, in the past we’ve handled this by manually updating the broadcast-side library, and in reality this meant it was updated maybe once a week at most.
With the new deployment, the station automatically rotates songs in and out of the broadcast server’s song list on a regular basis with no manual intervention required. When combined with the broadcast server’s custom song selection system, this should result in a “consistent variety” of songs played on the station meaning that matching circles, albums, artists, and titles don’t play too close to one another while ensuring that infrequently played songs play more often. The new deployment of the broadcast server also enables some potentially more advanced song selection techniques that factor in time, regions, current listeners, and other signals to adjust the radio station’s songs in real-time.
**What’s Next**
With Broadcast back up, we’re looking at a few work items.
* One is the store where we left it in a functional state but with pending work on the merch integration as well as improved consignment features for artists and creators that sell through the website.
* One is the mail server which we actually have running, but additional configuration is needed to bring it into a functional, public-facing state.
* One is continued system stability improvements; stability is definitely better now than it was at the beginning of this month, but it’s not the solid, high-availability system that we’re aiming for. We’re already looking into additional hardware and other infrastructure solutions that may help to address the more stubborn issues that keep cropping up. In the meantime, if an otherwise active system does go down and it stays that way for over 5 minutes, please ping Lunar about it via Discord.
That’s all for this update, stay tuned for more improvements and development updates, and thanks for listening!
[Knowledge #229]
