Suggestions for best approach/language for this scenario

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. Thanks, Avi

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Wed, 4 Jun 2014 10:09:18 AM Avi Miller wrote:
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.
A quick Google reveals some possible helpful projects: Rivendell (GPL) - http://www.rivendellaudio.org/ Airtime (GPL) - https://github.com/sourcefabric/Airtime OpenBroadcaster (AGPL) - http://www.openbroadcaster.com/ there's also this (over a year old) look at some of these projects: http://mediarealm.com.au/articles/2013/05/open-source-radio-software/ Good luck! Chris - -- Chris Samuel : http://www.csamuel.org/ : Melbourne, VIC -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQEVAwUBU48OqY1yjaOTJg85AQIgBwf/T2LFzedc1LlOQ7fK/mEvHcwoE9NF9bER NhquwlhjxoKJsVWWx/OSfW1yIzU0JwZolhDV94f6azPe5r/qz0DrpXuLzCuQEu8n /gICyrsXaizyxFwFhEoTZfzZLx82nhqCgJ9f8qUzqN5pgMRDpKR3u+NWpV2hupjy Gde1lBwV893nOou65+V3umHCju2lUw2zsa6JkMRLh8ZHMHrjxcvKQn6YQxPK+d2D 0Fz8ZP2UrQ9v2UZrdhqXLHVHWN3VZh2e6Smy8bGk27Mj98qchrTl6vtY/f2acR4K zK3eO2el9WJvvqnav8st5/FIHgShQNJs9Ql2QniepSLDprNBOM1NyQ== =xFTF -----END PGP SIGNATURE-----

Hey Chris, On 4 Jun 2014, at 10:18 pm, Chris Samuel <chris@csamuel.org> wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Wed, 4 Jun 2014 10:09:18 AM Avi Miller wrote:
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.
A quick Google reveals some possible helpful projects:
Ah, sorry - perhaps I was being obtuse: we already have the radio automation software. What I need is a system that connects to a TCP port on the radio automation system and listens for data. It should also open a port so that the streaming encoder can connect to it. When it receives data from the automation system, it delivers it to the streaming encoder. If after the duration sent by the automation system, the “piece-in-the-middle” hasn’t received an update, it will then send a generic “now playing” message to the downstream streaming encoder. Does that make more sense? It’s kinda like an MQ system, if I could find one that could just bind to TCP ports. Cheers, Avi

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Wed, 4 Jun 2014 10:22:26 PM Avi Miller wrote:
Does that make more sense? It’s kinda like an MQ system, if I could find one that could just bind to TCP ports.
It does, but I have no idea what to suggest for that. :-) I suspect you'll end up writing one yourself, perhaps in Perl, or maybe Python+Twisted? Good luck! Chris - -- Chris Samuel : http://www.csamuel.org/ : Melbourne, VIC -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQEUAwUBU48ROY1yjaOTJg85AQI/Wgf4m08GJFSHv+jayC7AytOmoBhu7CyGCFVa iz4WjOzXv4uIPEJcoP9VciFfTlDIHKiqHkdSP1KDRQaPEuKzjGUeE9FQ19Qnq/U2 Tbt7jEHwnwZs5RBF7yHbV5Feaw+onO+hPQ1+MjkydYu49Aj2ZTgQjTg4WS9NLjA+ 6zjHqPmr/jvZ7vtAbMDTadJTnfmcLYb+NA4Okjgg/Km/niTlvXNFwxxt5hTOUPCl cc0FgMXkfbmN9kIan/Y+fqnlcjUjqCGkFKIIGFQbxr4q1ruigPfFgToIe5RX2WdA D/U05vLnrEpxC7RI9KF00jjVTZK6t3EJSGck4xqOEuxhD+4lYwNf =Uenv -----END PGP SIGNATURE-----
participants (2)
-
Avi Miller
-
Chris Samuel