# Using Capo for transcription

Capo is an application that can independently change the playback speed and pitch of almost any audio file on your Macintosh. Its creator, Chris Liscio of SuperMegaUltraGroovy, designed it to be used by musicians to help them learn songs, but it can also be used to transcribe spoken-word recordings. All that’s required is a little AppleScript.

A simple transcription setup consists of

1. The audio file opened in Capo with an appropriate speed setting.
2. The transcription file opened in a word processor or text editor.
3. A three-line AppleScript.
4. A way to invoke the AppleScript from the word processor or text editor.

The AppleScript will look something like this:

tell application "Capo" to activate
tell application "System Events" to tell process "Capo" to keystroke space
tell application "??????" to activate


where the ?????? is replaced with the name of the word processor/text editor. The second line is an example of GUI Scripting--it uses the System Events agent to send a space character to Capo, which Capo interprets as a command to pause (if it’s playing) or play (if it’s paused). The first and third lines shift the foreground application between Capo and the word processor/text editor.

To transcribe a spoken-word recording, you start playing it back in Capo at a speed you can keep up with. Switch to your word processor/text editor and start typing. If you get behind, use the AppleScript to pause the recording while you catch up. Use the AppleScript again to resume.

How you invoke the AppleScript from within the word processor/text editor depends on the particulars of that application. I do all my writing in TextMate, so I’ve set up a command in the Bundle Editor that looks like this:

The command itself is this one long line,

osascript -e 'tell application "Capo" to activate' -e 'tell application "System Events" to tell process "Capo" to keystroke space' -e 'tell application "TextMate" to activate'


which is simply the three lines of AppleScript turned into a single shell command. I have this command bound to the ⌃⌥⌘⎵ (Control-Option-Command-Space) key combination. This is an easy combination to type because the three modifier keys are lined up next to each other; I can mash them down with my left hand while my right thumb hits the spacebar.

I used to transcribe with Transcriva, which combines audio playback and text editing in a single application, but I’ve switched to the Capo/TextMate combination because:

• I prefer editing in TextMate.
• Capo has better sound quality than Transcriva.
• The old version of Transcriva (v. 1.2, which I own) changes pitch when it changes speed.
• The old version of Transcriva uses the ancient Mac CR line endings instead of the current Unix-style LF line endings, and I’m tired of converting them.
• The current version of Transcriva (v. 2, which I don’t own) can change speed without changing pitch, but it can’t export the transcription as a plain text file (which is why I don’t own it). (This is wrong; see update below.)
• The publishers of Transcriva have never replied to my support questions regarding line endings and export options, so to hell with them.

With Griffin’s iTalk application on my iPhone, which I discussed back in December, and the Capo/TextMate combination on my computer, I have a very nice system for taking voice notes wherever I go, and for turning them into text when I get back to the office.

Update 5/15/09
Via Twitter, I’ve just learned from Peter Hosey (@boredzo) that Transcriva 2 does allow plain text export. This is relatively new; it wasn’t the case when I first tried it out in January. Also, Transcriva 2 seems to export with LF line endings, which means that Bartas has fixed both things I asked them to fix. I’m still annoyed that they wouldn’t reply to my support requests (no, changing the program is not a proper reply--why should I be informed of the changes by a third party?) and don’t intend to go back to Transcriva.