Having just completed two audiobooks (more on those adventures to come), I found that the most tedious portion of the process was without doubt the editing of each chapter. During the recording phase, I used the “finger snap” method of marking out my errors; any time I made a mistake, I would snap my fingers near the microphone in order to create a spiked waveform that I could find more easily while scrolling through the file. As you can see in the screen grab, there are sharp peaks in the wavefrom. As I scroll and scrub through, I see the mistakes, delete the area immediately before it, and smooth out the transition between the sections. Tedious, but necessary work.
After all of this work, I thought I would look into a better way of doing it. My friend Corey Snow, an experienced audiobook narrator, was working on a way to use what is called the “punch and roll ” method with Adobe Audition. Punch and roll is a method that is more easily found in Pro Tools, but doesn’t appear to be a common function in any of the next tier down DAWs that are common in the voiceover world. It allows the user to select where they want to pick up, automatically delete the error, roll back a few seconds so they can hear where they were, and start reading again immediately after that, eliminating the need for post production editing of the type I was doing before.
While researching the issue, I found an article on the indispensable Voice Over Xtra by Adam Verner outlining how to do this for Adobe Audition using the free AutoHotKey tool for Windows. AutoHotKey is a very powerful scripting tool that can take control of applications, your desktop, anything, and automating tasks. In my first reading of the article, I thought he was speaking of scripting available inside of Audition. Since my weapon of choice is Sony Sound Forge 10, I thought I would inquire with one of the masters of the product, Jeffery P. Fisher. He wrote co-wrote one of my favorite voiceover books, The Voice Artists Guide to Recording at Home and on the Road with Harlan Hogan. I got a simple and succinct answer: “No punch and roll in Forge. You can punch in to a section, you can punch in and continue to roll … but not as you describe.”
That felt like a pretty solid setback, especially since trying to get through the Sound Forge scripting language looked like me trying to program in C: that is, impossible (I spent 20 years in IT, but I couldn’t program my way out of a wet paper bag). Then I realized what Adam had done; he used AutoHotKey to do automation that wasn’t available in Audition itself.
So armed with his Audition script, I started plugging away at a Sound Forge 10 script to make punch and roll possible. During the process, I ran into a few issues that Sound Forge presented with its interface.
- Sound Forge does not have preroll built in – Audition 3.0 has a built in preroll setting, where Sound Forge only offers it for the preview function when opening a file. I was able to overcome this by forcing Sound Forge to seek to a specific point in the audio file 3 seconds before the cut.
- The playback function returns the cursor to where it started – This causes the system to start recording over existing audio…yes, that IS a problem.
- Starting the “Record” option automatically launches a new window when done programmatically – When attempting to start the recording function again after the cut and playback, Sound Forge would consistently open a new file, rather than add to the existing file. Ultimately I had to start the recording an another fashion.
Here is the script, complete with documentation. Download and install AutoHotKey first
#IfWinActive ahk_class Forge10MDIClass /* Looks for Sound Forge 10 running */
; Punch ‘n Roll Mimic
^P:: /* Defins the needed keystroke as CTRL-P*/
Send {Shift down}{End}{Shift up}{Delete}{f} / *Selects wavefrom from point of cursor to end and deletes it */
Send ^g{DOWN 30} /* opens ‘Edit -> Go To” and presses down arrow 30 times, moving cursor back 3 seconds */
Send {TAB 2} /* presses TAB key twice to move focus to OK button */
Send {Enter} /* presses OK */
Send {SPACE} /* Starts playback */
sleep, 3050 /* Pauses script while 3 seconds of playback occurs */
Send {Enter} /* Pauses playback */
Send !{0} /* Sets focus to this waveform window so record function will happen here */
Click 28, 92 /* Mouse click on “Record” button */
Sleep, 100 /* Waits one tenth of a second */
Click 204, 210 /* Clicks “Go To End” button in record window to force record to start at end of edit */
Click 70, 211 /* Clicks “Record” button in record window to start recording */
return /* Ends Script */
You can download the undocumented script here. You can place it in any folder on your computer, then double click the file to activate the script when you are running AutoHotKey.
I have run this on both my studio computer running Windows XP and my laptop running Windows 7 successfully. The only restriction is that your Transport Bar (where the Record/Play/FF buttons are) is in the top left corner under the main menu bar. This is necessary because I am pressing the buttons here as though a mouse were clicking them, instead of using keystrokes (which causes Sound Forge to open a new file instead of recording in the same file). The script is looking for these buttons in a very specific location relative to the Sound Forge window.
Here’s a sample of the punch in. The punch in happens at 18.617 seconds.
[soundcloud url=”http://api.soundcloud.com/tracks/71837468″ params=”auto_play=false&show_artwork=false&color=005eff” width=”100%” height=”166″ iframe=”true” /]
I have only started using it, but it will make a tremendous difference in longform reads and audiobooks. My thanks to Adam for coming up with this great way to use the tools at hand to get what you need!