Last Wednesday, in the midst of the poor weather, I discovered that the Montgomery County Fire & Rescue Service streams four of their many trunking talkgroups online. But VLC will only open one stream at a time, and while you can open multiple streams at once in QuickTime Player, it’s still sort of ungainly. It seemed to me that there had to be a better way; it would be nice to be able to save and restore lists of streams, and set the volume and balance per-stream, but also have a master control for all of the streams.
The result is depicted in the screenshot above; the code is available here on GitHub. All of the basic functionality actually works at this point, but there are still a number of items in the TODO file. The software uses Apple’s poorly-documented AppleScriptObjC framework, although there is also a bit of Objective-C in the codebase, mainly for interfacing with QuickTime (which is a C API) to do things that QTKit can’t. (As a result, it only runs as a 32-bit application, but this isn’t a serious drawback.)
Incidentally, this is the first application I’ve developed that compiled to native code in quite a long time—while I got my start developing applications using FutureBasic on the Mac (which produced native code), after that I learned Perl and PHP, followed by Java and then Python. All of those are languages which are either interpreted or which compile to bytecode. I have also dabbled in Erlang and even Visual Basic, and they, too, do not produce native code. While the AppleScript parts of this project are not compiled to native code, the Objective-C parts most certainly are.