Guide
How to make a looping BRSTM
Updated October 18, 2026
Before you start
- Audio you have the rights to: your own composition, music licensed for this use or a copy you own for personal use. Do not share the result if the music is not yours; see Copyright.
- Audacity (free) to prepare the audio and find the loop.
- A BRSTM converter: LoopingAudioConverter if you are on Windows and prefer windows over commands, or VGAudio if you are comfortable with the command line. Both are in BRSTM tools.
How a BRSTM loop works
A BRSTM stores a single point: where the loop starts. The loop end is always the end of the audio. When playback reaches the end, it jumps back to the loop start. So for a perfect seam, the sound at the very end of the file must flow into the sound right at the loop start.
In practice, you look for a moment that repeats in the music (the start of a phrase or a bar), mark its first occurrence as the loop start and the second as the loop end, and cut the audio right there.
Step by step
Prepare the audio in Audacity
Open your WAV. Keep it stereo, at 32,000, 44,100 or 48,000 Hz. If the theme has an ending that is not part of the loop (silence, a final chord), do not delete it yet.
Switch the selection to samples
In the selection toolbar at the bottom, change the format from "hh:mm:ss" to "samples". You will see exact positions, which is what a BRSTM needs.
Find the loop start and end
Find the moment the music starts repeating and the equivalent moment in the repetition. Select that region and play it on a loop with Audacity's looping option: if you cannot hear the seam, you have it. If you struggle, PyMusicLooper can suggest the points automatically.
Write down both values in samples
If you have them in seconds, convert them with the loop calculator.
Cut at the loop end
Delete everything after the loop end and export as a 16-bit WAV. The file now ends exactly where the theme should jump back.
Convert to BRSTM
With LoopingAudioConverter: add the WAV, choose BRSTM as the output format and enter the loop start in samples. With VGAudio, in one line (example below).
Check it
Open the result in the BRSTM inspector: you will see the loop drawn and can listen to the seam. If you hear a jump, adjust a few samples and convert again.
Listen to it
Put it in its folder (one subfolder per album) and load it in BRSTM Player. Press ∞ and let it play.
Step 6 with VGAudio, for a loop that starts at sample 154,336 and ends at 2,116,800:
VGAudioCli theme.wav theme.brstm -l 154336-2116800
Tips for an invisible loop
- Look for a musical point: the start of a bar or a phrase works much better than an arbitrary point.
- Same volume and instruments on both sides of the seam: if an instrument plays at the loop end but not at the loop start, the cut will be noticeable.
- Watch out for reverb: the tail of a sound still ringing at the loop end disappears abruptly on the jump. Choose a point without long tails.
- Fine-tune in samples, not seconds: a few dozen samples can turn a click into a perfect seam.
- Keep the intro: everything before the loop start plays only once, just like in games.
Common mistakes
| What happens | Why | How to fix it |
|---|---|---|
| There is a click on every pass | The loop start and end do not match in sound | Move the start or end a few samples and convert again |
| The loop feels early or late | You started from an MP3, which adds silence at the start | Use the original WAV or FLAC |
| There is silence before it jumps back | You did not cut the audio at the loop end | Delete everything after the loop end |
| The player says it is not a valid BRSTM | The converter produced another format or the file was cut short | Check it with the inspector and export again |