Busy making things: tinycast, github, links, photos, @mc.

Explaining my Weird, Uncontrollable Podcasting Workflow

Posted: July 26th, 2015 | Author: | Filed under: Journalism, Projects | Comments Off

A little background

I’ve been podcasting lately, mostly for fun and to play with technology that I haven’t had an excuse to play with before. I hadn’t had a ton of time to listen to podcasts much until I moved down to Austin, Texas last summer. We live in the northern suburbs and I take a train downtown every workday.

After listening to some podcasts I wanted to see if I could fill that commute time with something productive, so I started recording short podcasts on my phone from the front seat of my car after writing scripts on the train. This quickly turned in to buying some dedicated equipment: a TASCAM DR-44WL recorder, an Audio Technica AT897 shotgun microphone, and a rotating array of studio microphones from a local rental house and borrowed from friends.

I also started learning everything I could about podcasting production and audio storytelling. I basically slurped up everything at Transom.org with a straw, and continue to do so on a regular basis. I followed every link on This American Life’s Make Radio page. I follow a bunch of people that make great podcasts and great radio, signed up for a bunch of newsletters, and generally immersed myself in this world I was learning more and more about.

I still struggle a little with bringing the drama and spinning a great narrative, but I think I’ve got a lot of the fundamental skills down, it’s just time to iterate and get better. I’ve settled on a format that I like, covering a single subject in about 4-6 minutes or so. Some of my best shows so far cover a disastrous software bug that killed people in a medical machine called Therac-25 and a kind of personal essay about me dealing with perfectionist paralysis. You can listen to more shows at tinycast.in or subscribe via wherever you get your podcasts from.

The Uncontrollable Workflow

I’m a little weirded out by the workflow of a typical Tinycast episode, mostly because it feels like parts of it are somehow beyond my control. More accurately, I’m not quite sure how my brain works sometimes.

Pretty much every episode starts out as a single line entry in a note in the Notes app that’s with me all the time. This is where I jot down a rough thought or topic I might like to cover. Sometimes it’s just a word or two, sometimes it’s a paragraph if I have some initial thoughts on direction or specific things to consider.

Ideas tend to ferment there. Sometimes I’ll do a little ambient research to see if there’s a unique story or a new way of looking at it, or if the subject itself is random enough that most people have probably never heard of it.

Then, at some random and undetermined point in time, inspiration strikes. I’ll start doing research in earnest, and start collecting an outline of ideas and links in Google Docs. A lot of the time I’ll also take a trip to The Perry-Castañeda Library at UT Austin. The sixth floor is my favorite.

From there I turn the outline in to a script, writing like I speak. Given the format and the time (and my ability to say uhh and um a lot), scripting, editing, then recording works well for me.

Once I have about two to two and a half pages of script that have gone through a couple rounds of edits, it’s time to record. This involves our awesomely huge walk-in closet that has just the right amount of stuff in it to provide an acoustically dead space to record in. I usually do one or two full takes through the script (reading from an iPad), re-recording any mistakes I make and sometimes trying different approaches to certain areas of the script.

Every once in awhile I’ll have a listen and decide to try again, but usually it’s time to head to the next step: a rough edit of the vocal track. For this I use a digital audio editor (DAW) called Auria, which works on the iPad. It’s fully featured and has a selection of plug-ins as well. I also make use of FabFilter‘s compressor, limiter, and EQ plugins. If you’re looking to do the same on a computer, Audacity is the obvious free choice, Reaper looks like a great low-cost option, and Pro Tools is the crazy expensive but industry standard option if you’re going to be doing a lot of collaboration.

The rough edit involves removing any mistakes I’ve made and choosing between two or three takes of a passage that either gave me trouble or one I thought might have multiple interpretations. I move edits and removals to a second muted track in case I want to revisit them later.

You’re Almost Done/So Far to Go

Once a rough edit is in place and I’ve confirmed that I’m in the right ballpark time-wise, it’s time to find some music beds and apply any sounds or ambience that are appropriate for the episode. Licensing music for podcasts can be tricky. I’m a pretty conservative guy when it comes to laws and licensing, but I think I’ve landed on some personal guidelines that I’m comfortable with. I’m not a lawyer and this isn’t advice, but it works for me.

First off, I’m comfortable using Creative Commons Attribution only licenses, commonly abbreviated CC-BY. For content licensed CC-BY, the simple act of announcing the author and work during credits and linking back in the show notes more than covers both the letter and the spirit of the license. Kevin MacLeod has an amazing selection of music licensed this way. I’ve also used tracks from Josh Woodward and Chris Zabriskie. I also made sure to pick up their music on bandcamp or find a way to make sure they know how much I appreciate them licensing their music the way they do.

Free Music Archive is a great way to discover CC-BY music, but you have to be careful since there’s a lot of stuff licensed under a non-commercial license (CC-BY-NC) and things marked no derivatives. Creative Commons Search also links out to custom searches for Soundcloud and other sources.

There’s also a lot of really good stuff that can be licensed without losing an arm or a leg. Chad Crouch has a great collection of production music at Sound of Picture with great rates for podcasts. Kevin MacLeod’s music can be licensed on his site as well. The mysterious Breakmaster Cylinder licenses ridiculously great beats and production music via Person B Productions.

Selecting and using music is another extremely unscientific part of the process. A lot of the time I know when something is just “it” or works for a specific tone or cadence I’m looking for. A lot of the time I’ll move words and music around a little bit until they line up and just work. I wish I could explain this part of the process a little better but that’s all I’ve got.

Wrapping Up

Once a mix feels right in my Sony MDR-7506 headphones or my PreSonus Eris E5 monitors, it’s time to walk the mix to stock iPhone earbuds and the car stereo, two places where everything has to sound correct. This is also the time that I compare the loudness of the episode to other podcasts I listen to. Loudness is a thing that I understand at a high level but still struggle with details on sometimes. Rob Byers has a solid intro on Transom and Paul Figgiani has written some great stuff on the Google+ Podcast Technology Resources community. I try to stay a little quieter than -16 LUFS but recently messed up and shipped an episode with the music beds way too quiet trying to hit that number. ALWAYS walk the final final mix.

Once the mix is locked down I export WAVs and m4as. The m4a file gets uploaded via Transmit for iOS to the bucket for my Amazon Cloudfront distribution. This acts as my content distribution network (CDN). I also upload the m4a to Soundcloud. The WAV gets converted to an MP2 file for PRX, the Public Radio Exchange.

As soon as all that is done, I copy the script (now the transcript) over to my wordpress install, add the link to the audio file so that it gets picked up in podcast clients. I also add any links or other references in addition to the hyperlinked transcript. Then I push the publish button.

Actually Concluding

It turns out that all of this is a pretty huge amount of work for what amounts to about a 5 minute podcast. I really like the level of polish that episodes have, but I do still miss some of the spontaneity of my earlier episodes. I may break out shorter quicker episodes elswhere at some point. They’re a different kind of fun.

There’s also a lot of room for innovation, streamlining, and pain point reduction in the mobile podcast production tooling space. Lots of people are working on it but I don’t think anyone has landed on the right features that would allow me to produce something like The Tinycast all from a single app without a ton of steps. I’d probably settle for two: one for production and the other for distribution.

There you have it. A little look in to my process, and maybe more about my brain than you cared to know. If you’re interested in creating a podcast or other thing of your own the best advice I can give you is to just do it, get it out there, and if you stick with it you’ll likely want to make it better. Everything else should fall in to place from there.

And We’re Back

Posted: January 5th, 2014 | Author: | Filed under: PHP, Weblogs | Comments Off

After a short 101 days of downtime, postneo.com is back. Sorry about that.

The very ancient VPS that the site was on died one day and never came back. I figured that it would be a huge pain to bring it back online but it actually went pretty quickly.

I brought up a new box at DigitalOcean since I had been meaning to try them out. It’s still early but I’m definitely impressed. I ended up moving all of my small utility box stuff off of Cloud Servers and on to this new box as well.

The first thing to do was to bring back the old blog back up on the new box with a new web stack (Nginx instead of Lighttpd) with nothing but a MySQL dump and my web content. Once the database was loaded, content put in place, and configuration updated I was good to go. Aside from the fact that it pretty much just worked in its new home, the thing that blew my mind about WordPress was that the upgrade from 3.1.2 circa 2011 to 3.8 was about as quick and simple as it gets. I followed the instructions and was on the latest release in literally 10 minutes.

There’s definitely a lesson to be learned there in how to delight and amaze your users as we write our software. I was delighted and amazed as a user and humbled as a software developer by this collection of PHP files that “just worked.”

UIQ 3.0 SDK Released!

Posted: April 1st, 2005 | Author: | Filed under: Mobile | 2 Comments »

Wow, it seems like I’ve been waiting for this for years. Oh wait, I have. Today UIQ released an SDK for their new flagship product, UIQ 3.0. The SDK is designed to work with either Metroworks CodeWarrior Development Studio for Symbian or Borland’s C++ BuilderX.

For more information and to download a trial version of the UIQ 3.0 SDK, visit their web site.

Yes, this is a lame April Fools joke. I wish it wasn’t though. Jim and I have been excited about the prospects of UIQ3 since it was pre-pre-pre-pre-announced what feels like years ago now. It has the potential to rock the low to mid-range market bringing “real apps” and “a real OS” to those free-to-inexpensive on contract phones. The other thing that rocks about it is that one code base can scale from low-end uniprocessor devices to top notch touchscreen and/or QWERTY devices. It’s really exciting. I just want it to see the light of day.

PyCon DC 2005 Registration Open

Posted: December 23rd, 2004 | Author: | Filed under: Python | 7 Comments »

Steve Holden:

Following my last message, I am pleased to be able to
announce that you can register for PyCon DC 2005 on the
web at


Rock on! PyCon DC is probably one of the best bang/buck conferences out there, and it’s right in my backyard! I hope to see everyone there this year.

Extending Python for Series 60

Posted: December 23rd, 2004 | Author: | Filed under: Mobile, Python | 10 Comments »

This morning Jim pointed me to some extension modules for Series 60 Python by the Personal Distributed Information Store project. While I’m very excited to see Series 60 Python specific releases, you don’t have to go to that much trouble to get a working xml parser. There’s a perfectly good xml parser built right in to Python 2.2.2.

You’ll probably not find this written anywhere obvious, but here’s what works quite well for getting a much more complete Python environment on your Series 60 device:

  1. Grab the Python 2.2.2 source tarball.
  2. tar xzvf or do whatever it takes to decompress the file.
  3. Insert your MMC to a card reader or plug in your taco via USB.
  4. Drag the boatload of .py files and subfolders in lib to E:SYSTEMLIBS (you did install to the MMC, right?) making sure not to overwrite any existing files.
  5. Import xml.dom.minidom or whatever library you need.

I’m sure there are modules that just plain won’t work. Nokia have already included a lot of the basics (thank you thank you thank you for getting urllib working!). If the public release is anything like the pre-release software, the xml parsers and a few other things should work just fine. I spot-cheked a few examples from Dive Into Python on the prerelease and the xml-related stuff worked fine.

Update: In the comments attached to this post, effbot clarifies:

Adding the xml python package won’t help you if you don’t have an XML parser; pyexpat adds exactly that.

Python for Series 60 Released!

Posted: December 22nd, 2004 | Author: | Filed under: Python | 7 Comments »

Jim, Ewan, and Erik have already spoken about it, but Python for Series 60 is in the wild!

I’ve been tinkering with the public release and should have some fun stuff to share shortly.

/me is back.

Posted: December 22nd, 2004 | Author: | Filed under: *BSD, .NET, Apple, Java, Linux, MySQL, Open Source, Perl, PHP, Projects, Python, Web Services, Weblogs | 45 Comments »

It’s been a long couple of months and I apologize for the hiatus. It’s a long story for another day, but lets put it this way, I’m back! I’ve moved from Radio Userland to WordPress. I promise that I’ll share my (semi-painful and procrastination-ridden) migration process in due time.

The .css that is currently driving the site is Dots by Alex King, which I’m currently tweaking. I’ve still got some random bits that I need to find and url rewrite to fit the new engine, but I’ve done my best to keep the old permalinks. If you find something that’s whacky, please drop me a line at matt at the domain ooiio.com. Thanks!