[Linux-aus] Suggestions for best approach/language for this scenario

Avi Miller avi.miller at gmail.com
Wed Jun 4 10:09:18 EST 2014

Hey LUV’rs and LA'rs,

I volunteer for a community/NFP radio station here in Melbourne. We’re currently deploying a new radio automation system, as well as replacing our existing online streaming services.

The radio automation system that has a TCP service running on a particular port. Whenever a play event fires in the studio, the automation system sends out the data to anything listening on that port. I have control over what the automation system sends.

What I need to do is write an intermediate daemon that connects to the upstream automation system looking for song events (which has an associated duration field) and presents a similar interface to the stream publisher. 

This is because we don’t use the automation system for every show, so after the event duration expires I want my intermediate system to send currently airing show information instead. This way, the client-side streaming apps will either see information about the song currently being played, or if automation is not active, information about the show currently on air.

As an added bonus, I’d like the intermediate daemon to also submit RESTful API requests to a web service online.

So, it looks vaguely like this:

[Stream publisher] ==> [Intermediate daemon] ==> [Automation system]
                                             ==REST=> [web service]

I suspect I’ll need a multi-threaded application, with one thread to listen for events from the automation system and two more to send events to the stream publisher and the RESTful service. Given that the majority of my programming experience is in PHP, I’m going to have to learn something new for this.

So, I’m looking for suggestions on the programming language and/or tools that would be well-suited for this task. Alternatively, if there is already something that could do this (or be munged to do this), I’m all ears.


More information about the linux-aus mailing list