Fixing Tempo Drift with Sound Forge

Sometimes you want to use a live recording in ACID but the Beatmapper can’t be used effectively because the tempo drifts several times throughout the song. In these extreme cases you can fix tempo drift in a wave editor like Sound Forge. Sound Forge has an optimized workflow for working with sound files at this level or granularity where each measure may have to be corrected. Creating that many beatmaps in ACID is just too time consuming. The procedure in Sound Forge involves slicing the original song into measures and time-stretching each measure to be a constant length. Then append each measure to a new wave file to create a new file that is perfectly locked to the tempo.

Here is an overview of the procedure:

  1. Open the source wave file to be beatmapped in Sound Forge
  2. Make a loop selection of one or more measures in duration
  3. Copy and paste to a new wave to a temporary wave
  4. Time-stretch the temporary wave to match the song’s BPM
  5. Append the temporary wave to the target wave
  6. Delete the temporary wave and repeat at step 2 until the entire file is mapped.

Tip: Turn on the ACID Loop Creation toolbar in Sound Forge to assist in working with ACID Loops. (View | Toolbars… | ACID Loop Creation Tools)

tempodrift01

Open the wave file in Sound Forge. I like to start by mapping the tempo of the file with Markers. To do this, play the file and tap the ‘M’ key on each beat. Do this for a few measures to give you a visual cue of the beats in each measure.

tempodrift02

Once several measures have been marked, stop and make a selection from the first marker to the fifth marker. This should encompass the four beats of the first measure. Fine tune the ends of the selection so that the measure loops perfectly when played as a loop in Sound Forge. If you hear clicks or pops, make sure you use either the ‘Z’ key to snap your selection to the zero cross points, or use the menu Options > Auto Snap to Zero (Ctrl+B). This will ensure that all cuts are a zero crossings. Looping at the zero crossing will help eliminate clicks or pops at the loop point.

 tempodrift03

Turn on the ACID Loop Creation Tools toolbar (View > Toolbars… > ACID Loop Creation Tools) to be able to see the BPM readout from your selection. There are icons on this toolbar to Shift Selection Right which we will be using a lot in this procedure. Turn on the Selection grid lines button from this toolbar to see the beat grids. These vertical lines should line up fairly close to your markers. You may try and select two or more measures if you think they will stay on the beat. The object is to make your selections just as large as the amount of time it takes the song to drift off tempo, but no larger. If you Beatmap the song in ACID first, this will give you a good indication of how soon tempo drift will occur.

 tempodrift04

Once you are happy that your selection loops seamlessly, Copy it to a new wave file with Ctrl+CCtrl+E. This new file will be used as the target to build the beatmapped song. Select File > Save As on the new file and give the file a name. Next, select the entire new wave and make a note of the duration by writing it down. You will time-stretch all the other measures to this duration.

 tempodrift05

Give the original sound file the focus and press the Shift Selection Right button on the ACID toolbar to advance the selection to the next measure.

tempodrift06

IMPORTANT: From this point on, don’t touch the left selection point. If you do, the song will have gaps a playback will be jumpy.

Play the new looped section. If this new selection doesn’t loops seamlessly, adjust the right hand selection point until it does. Do not at any time adjust the left hand selection point. Doing so will interrupt the flow of the song. Move the right selection point, if needed, to make the measure loop seamlessly. Copy this selection to a new wave with Ctrl+CCtrl+E.

 tempodrift07

This new wave is just temporary. We are only using it as a scratch pad for doing the time stretching. On this new wave select Process > Sony Time Stretch…. In the Time Stretch dialog either change Input format to Tempo (bpm) and enter the beats per minute of the final song, or change the Final Time to match the length of the first measure. All of the subsequent measures will be adjusted to this time. Press OK to time stretch.

 tempodrift08

Now copy and paste this file to the end of the target file we are creating. Use Ctrl+C to copy, give the new target file the focus, press the ‘End’ key to be sure the cursor is positioned at the end of the file, and finally press Ctrl+V to append the new measure at the end of the file. Press Ctrl+S to save the target file.

 tempodrift09

You can now delete the temporary file of the last measure without saving it.

Repeat the steps of:

  1. Advance the selection
  2. Adjust the right side of the selection to make a seamless loop
  3. Copy the loop to a new temporary wave
  4. Apply Sony Time-stretch to the temporary wave to match the length of the first measure
  5. Append the temporary wave to the new target beatmapped file
  6. Delete the temporary wave
  7. Go To Step 1

Repeat until the entire file is beatmapped. It’s very tedious, but it can be done. If you don’t have Sound Forge you can use the Sound Forge Audio Studio. It has all the features you need for this job.

Happy Composing,

JRSig

Johnny “Roy” Rofrano

About John Rofrano

John Rofrano is a Senior VASST Trainer and the author of Instant ACID, a book on Sony ACID Pro software, from CMP Books. He is also the developer of Ultimate S Pro, Vegas Pro Production Assistant, Mayhem, and other software plug-ins including the FASST Apps for Sony Vegas Pro NLE software. John has been a performing musician, singer, songwriter for over 40 years, and programmer and computer architect for the past 28 years. He is also a forum moderator at the Creative COW.