Open Source Broadcast Software Released
I’ll admit my first ever merge request really knocked the old self confidence. As a plucky young intern beavering away over the summer, I made some changes I thought made sense and hit push. Less than a minute later there was a loud thud from the corner of my desk and the lead dev telling me to “read this”.
Turns out I’d basically written Java in Perl. Skillful but didn’t quite get the nuances of the language.
Well, today, I’m releasing a bunch of the software tools Solid Radio uses to keep its broadcasts going as open source. GPL v3 licence if you like to be specific. It took a bit to build up the confidence but there may be something useful for you in there.
Anyway, let’s take a quick look at the projects:
AllDay DJ
Find it over on GitHub.
This is an old project somewhat resurrected. Seriously, the original version of AllDay DJ is almost old enough to drink!
PlayoutOne is the app we currently use at Solid Radio and Solid Classics. It’s solid and does the job for the money but doesn’t quite fit out niche completely. The long term aim for this one is a cloud / web based playout system that works with mobile, laptop and desktop users. The ability to voice track on any device is a key goal.
In time, I expect I’ll write yet another music scheduler as well. Ah well, another reason to crack out the old strategy pattern…
Solid Radio Alexa Skill
Find it over a GitHub.
It’s simple and not bad as a first run at a NodeJS Lambda on AWS. Somewhat constrained by the limitations, it allows any radio station tied to the Radio Music Stats platform (that powers Solid Radio) to burst out of Alexa’s speakers. Talking of which…
Radio Music Stats
Find it over at GitHub.
This is actually a re-work of the much older PHP Radio Music Stats website. The original aim was a Compare My Radio clone with a “now playing” API. In reality, we ended up with a websocket capable “now playing” API that doesn’t yet draw any graphs or generate reports. On the up side, it powers the Alexa skill, Solid Radio website and even our mobile app.
As part of this role, it also acts as a data aggregator – scraping presenter and schedule information from the main website.
Solid Radio Mobile App (React Native)
Find it over at GitHub.
A modern approach with React Native, though I’ll be first to admit TypeScript might not have been a bad call. This relies heavily on Radio Music Stats but works well on both iOS and Android. It supports multiple radio stations from a list managed in Firebase.
One of the neat features most people don’t notice is the EPG showing days and times in your local timezone if you’re outside the station’s timezone.
Older Projects
While this is all the new and shiny current stuff, there’s a range of tools I’ve open sourced in the past you may find a use for:
- G:RTC and G:RTC call server. These acts as a quick-n-dirty proof of concept client/server combination for high quality WebRTC audio calls.
- Wave File Fixer. A Java application that sorts “off by one” issues in wave files.
- Pi Hunter and the server. Used for a one-off event to track a dummy on a stretcher working its way round the Robin Hood Half Marathon for charity.
- The MAP (Modular Audio Processor). Ambition that didn’t deliver! It was supposed to be an audio processor you could build out of components. Ended up dying as a simple lookahead limiter in Python.
- Puppet VXLAN Module.
- DCS IP Router. A TCP/IP server for the serial controlled DCS audio router.
- DCS IP Client. Supposed to be a frontend for the above. Ended as one of many studio clocks I’ve written over the years.
- Raspberry Pi STL. Make use of LiquidSoap to pull a web stream over the internet.