How to Create BGM Loops with Audacity

Loops are commonly used for BGM in video games. There are more interesting solutions such as tracker modules or dynamic stuff, but for most games loops are just fine. They are simple to use and generally work everywhere.

Typical BGM loop usage in games:

  • simple loop: The most basic thing to do, just loop it and eventually fade it out at the very end.
  • intro+loop: The intro is played once and after that it enters the loop. Quake3 did that with some of the tracks the rest were simple loops.
  • 2 crossfaded loops: Both loops are started simultaneously. Both have the same tempo and length, but one sounds more fiercely. The volume is crossfaded accordingly to the amount of action. Silent Hill (サイレントヒル) for example used this technique.

Now that you roughly know what loops can be used for, I'll explain how to make your piece of music loop perfectly. I'll use Audacity for this, because it's open source software, cross platform (Windows, Mac OS, and Linux), and perfectly suited for this task.

After you've composed your track in your favorite software sequencer (it doesn't matter if you use Rebirth, Reason, Orion or whatever - it's the same everywhere) ensure that it loops fine there. That is, set start and length accordingly and let it play continuously. If everything is fine, you can move on with this tutorial.

Step 1: Exporting twice

First export the loop as WAV. Well, that was easy.

Then add lots of empty padding at the end. Ensure that no sound is played there and that the master mixer stays where it is. You have to "wait" till all samples/synths are finished and this can take quite a bit - especially if there is some delay, echo or reverb involved. So, add sufficiently big padding. As a rule of thumb: make the padding as long as the loop itself. E.g. if the loop starts at bar 1 and has a length of 16, change it to 32.

With a playlist like Orion's it's quite easy to ensure that no new sounds are played. If I remember correctly Reason offers something similar. Rebirth, however, doesn't. It's a bit of a pain in that regard.

First export loop settings (Orion):
Orion loop settings 1

Second export loop settings (Orion):
Orion loop settings 2

Now export that padded loop as WAV as well. I usually put an underscore character at the end of the file name, because it visualizes that running flat out aspect (of the wave form) very well.

Step 2: Make it Loop

Start Audacity and change the sampling rate of the project if necessary:
changing the sampling rate via the button in the lower left corner

The default is 44100Hz (or 44.1kHz), which usually is what you want. If your source material happens to use a different sampling rate change it via that context menu, which appears if you click on that button in the lower left.

With that potential issue out of the way drag both WAVs into Audacity:
the 2 WAVs imported into Audacity

In the lower right you can see the stuff our first exported loop is missing. Without it the beginning sounds weaker than it should and it may even introduce audible artifacts such as plopping or clicking.

Note: If the second export doesn't end with complete silence increase the padding until it does.

Zoom in until you can see the sampling points. Keep the end of the upper track on screen while you zoom in. It's a bit fiddly, but not that hard to do. Place the cursor in the lower track right after the end of the upper track. At this zoom level it's hard to miss:
zoomed in all the way

Now select everything from the cursor position to the start of the track via Edit->Select...->Start to Cursor.
Edit->Select...->Start to Cursor

Almost there. Zoom out via the Fit project in window button and you should see something like:

Now cut (Ctrl+X or Edit->Cut) or delete (del) the selection. After doing that you get the final result:
the final result

Now is a great chance to compare a plain export with our "bleed over" version. Hold shift and click on the play button for loop-playback. If you want to hear the plain export just mute the lower track (don't forget to un-mute it at the end). Awesome, isn't it?

The obvious last step is exporting as WAV via File->Export As WAV:
File->Export As WAV

Exporting only as MP3 or Ogg Vorbis may be tempting, but you may need to re-encode it in a different format or different quality/bitrate settings later on. Lossy stuff won't do the trick. So, do yourself a favor and keep a lossless version around. :)


Post new comment

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options