Did you know that you can listen to an audio version of every TidBITS article we publish? A loyal TidBITS reader at the MacTech Boot Camp conference was telling me how much he enjoyed our staff podcast appearances on MacBreak Weekly, MacVoices, the Tech Night Owl Live, and more. But when I asked if he listened to the audio versions of our articles, he pleaded ignorance.
So, for the record, if you want to listen to TidBITS on your iPhone, iPod, iPad, or Mac, you can. For a single article, look for a Listen link in the metadata line on headline pages and at the very top of articles. And for a podcast that can be automatically synced to your preferred listening device, the easiest way to subscribe is via iTunes (the link is in the upper left of the TidBITS site, in the “Get TidBITS via...” box). We generally record articles on Monday, just before the email issue goes out, so the audio versions are best for those who don’t want to keep up with our coverage on a daily basis.
What I wanted to share with you was not the mere fact of our audio editions, but how we just improved their quality, thanks to help from a friend. One of the problems we’ve had is that we generally each record our own articles, and it’s nearly impossible to ensure identical input volume settings. So one person might be acceptably loud and the next rather quiet, necessitating much fiddling with volume controls. Not ideal while driving!
The solution to this problem is The Levelator, free software developed by The Conversations Network, a California non-profit. Through some advanced magic, The Levelator makes audio files use a consistent loudness. It was designed to automate the post-production work of making multiple people in an interview sound equally loud, as well as to eliminate loudness variations from one podcast to another.
Although The Levelator runs on Mac OS X, calling it a Mac program is a stretch. It has no settings, next to no interface (you simply drop a WAV or AIFF file on it), and it’s not scriptable, which makes it difficult to integrate into an automated workflow. And workflow is extremely important to us, since our dirty little secret is that we’re recording these audio versions not because we want to make the best possible podcast, but because we’re already reading our articles out loud as a final proofing pass. (It’s an effective way of catching subtle typos and other infelicities.)
So we need the process to be as simple and streamlined as possible, and adding The Levelator into the mix was going to cause headaches. Previously, our standard workflow involved recording directly in Rogue Amoeba’s Audio Hijack Pro, where the recording, encoding, file naming, and metadata assignment could all take place in a single step. Since The Levelator works on uncompressed WAV and AIFF files and creates a new file in the process, names and metadata have to be assigned after the fact. It’s not hard to do that, but it’s tedious and repetitive, especially late on a Monday night when all I want to do is make dinner.
While searching for a solution to this problem, I ran across a few relevant scripts on the excellent Doug’s AppleScripts for iTunes site, which collects a vast number of utility scripts for controlling iTunes, managing music, converting files, and more. None were quite what I needed though, and my AppleScript skills are minimal, so I decided to ask Doug Adams himself if he might be able to help out. He’s a long-time TidBITS reader, and was enthusiastic about helping to build a tool that would give us a streamlined interface for our audio versions.
Our tool, which came to be known as PodBOT, needed to do four basic things, in this order:
Convert The Levelator’s output file (which has a predictable name and location) to a much smaller 48 Kbps AAC file. PodBOT does this via the command-line program afconvert.
Collect metadata about the audio file — file name, title, author, issue number, article text, and more — and embed it into the audio file so it looks good in iTunes (for instance, the article text appear in the Lyrics field in iTunes). For this, PodBOT leans on iTunes, since Doug knew how to get iTunes to assign such metadata without leaving a copy of the file cluttering the library.
Optionally, upload the file to our server via SFTP and tickle the TidBITS Publishing System into linking the file to its article. We chose to use either Transmit or Fetch, both of which are easily scriptable in such a way that PodBOT could rely on an existing bookmark that already contained the necessary credentials.
Doug ended up writing PodBOT as a simple Cocoa application that encapsulates a lot of AppleScript, and it’s finely honed to our exact needs, looking up data for each recording from the TidBITS Publishing System automatically when possible. Much of the rest of the metadata it assigns never changes or is programmatic (like the date), and PodBOT doesn’t even offer fields for those items. For the few fields that require personalized input, like Voiced By, PodBOT remembers the previous setting so it doesn’t have to be entered each time. And simple options like whether or not to trash the original and final files after successful upload let each of our editors decide how much data they want to keep locally.
Even better, since PodBOT is happy to create the final file without uploading, we can give it and some simple instructions to outside authors who want to record their own articles, without worrying about needing to get their audio settings to match ours or telling them exactly how to find and format the metadata, since it’s all looked up automatically.
I feel a little weird writing this article, since PodBOT is an internal tool, and not something that would be useful to anyone outside TidBITS. But the more general lesson that developing PodBOT has hammered home is that one of the key benefits Mac OS X has over iOS is its capability to tie multiple applications together, rather than requiring a single app to do absolutely everything. I love iOS for what it can do, but it can’t always hold a candle to what Mac OS X makes possible. Similarly, although there’s no question that sandboxing in Mac OS X provides some security and reliability advantages, the loss of being able to integrate multiple applications into a single workflow would be devastating to many industries (see “The Sandbox Conundrum: Security vs. Innovation,” 28 February 2012). AppleScript itself was saved from the chopping block when Steve Jobs first returned to Apple because it was such a necessary workflow component in the publishing industry; Apple may be a very different company now, but that doesn’t mean that any less work gets done on Macs.
In the end, thanks to Doug Adams for his highly capable and enthusiastic development efforts, thanks to The Conversations Network for The Levelator, and thanks to Apple for continuing to make an operating system that enables multiple applications to work together to create something that’s far easier to use than the individual parts. Let’s hope future versions of Mac OS X don’t make highly specific utilities like PodBOT impossible by confining most apps to a sandbox and reducing support for inter-application communication technologies.