Audio Looper: How to Loop Audio Seamlessly

Flat illustration of a waveform whose end joins back into its start in a seamless loop, made with an audio looper

To loop audio seamlessly, open the free Audio Looper, a loop maker that runs in your browser, and set a loop start and end on the waveform. Leave Snap to zero crossings on, keep a short Seam crossfade, play the loop on repeat to check the join, and export as WAV. It works on a file you already have, and your audio never leaves your device.

Why loops click or gap: the seam

Every loop has one weak spot: the moment the last sample hands back to the first. A seamless audio loop is one where you can't hear that moment, and three things usually give it away.

  • A click. If the waveform is at one level at the end of the loop and a very different level at the start, playback jumps between them instantly. You hear that jump as a tick, once per cycle.
  • A gap. Silence at the seam means silence at the file's start or end. Sometimes it's in the source; very often the MP3 format adds it (see the export section).
  • A bump or drift. If level or tone changes across the seam, you hear it pulse. With rhythmic material, a loop that isn't a whole number of bars lands the beat early or late on every pass.

The looper handles clicks with snapping and crossfades. Gaps come down to the export format. Bumps and drift come down to where you put the loop points.

What you'll need

  • An audio file you already have: MP3, WAV, FLAC, or M4A. It's decoded in your browser, with no upload and no account.
  • A sense of the material. Rhythmic audio (a groove, a music bed with drums) must loop in whole bars. Textural audio (rain, room tone, a pad) can be any length but needs a smooth, level-matched seam.
  • The tempo, if it's rhythmic, so you can set an exact bar length.

Step by step with the audio looper online

  1. Drop your file onto the Audio Looper. It decodes locally and draws the waveform, with a first loop (up to 4 seconds from the start) highlighted.
  2. Set the loop edges. Drag on the waveform and whichever edge is nearer moves. For fine control, use the Loop start and Loop end sliders.
  3. Press play and listen to the seam. The preview loops the exact cycle that gets exported, crossfade included. Move the edges while it plays and you hear each change immediately.
  4. Choose how the points behave. Under Loop points, Snap to zero crossings (the default) nudges each edge to a clean spot in the waveform. Exactly where I put them turns that off.
  5. Set the Seam crossfade. The slider runs 0 to 200 ms, defaults to 10 ms, and reads Off at 0.
  6. For rhythmic material, check the length. The Loop length readout shows seconds plus what tempo that would be as "one 4-beat bar". Halve and Double shrink or extend the loop from its start point.
  7. Set Repeats in the download, from 1 to 200 copies in one file. The ceiling drops for longer loops so the download stays at 20 minutes or less.
  8. Pick WAV, MP3, or Opus and click Export. WAV is the default and the right choice for a file that has to loop on its own.

Choosing loop points: rhythmic vs textural

Rhythmic material: whole bars

A music bed with a beat only loops cleanly at a whole number of bars. In 4/4, one bar lasts 240 ÷ BPM seconds: 2.0 seconds at 120 BPM, so four bars is 8.0 seconds. Start on a downbeat (the "one", usually a strong kick) and set the length to whole bars.

The Loop length readout works in reverse too. If your track is 120 BPM and the readout says "one 4-beat bar at 60.0 BPM", the loop is exactly two bars. If you don't know the tempo, run the file through the BPM Finder or see How to Find the BPM of Any Song (3 Ways). For background beds, four or eight bars sounds less repetitive than one.

Textural material: matching level and tone

Ambience and pads can be any length, but the seam has to disappear:

  • Pick points with similar level and density. Rain that's loud at the end and quiet at the start pulses every cycle, however clean the samples.
  • Keep distinctive events away from the seam. A bird call or a cough just before the loop point gets cut mid-sound and becomes the thing people notice repeating.
  • Use a longer crossfade, from tens of milliseconds up to 200 ms, and a longer loop. A 30-second ambience loop gives the ear far less to latch onto than a 5-second one.

Zero crossings and seam crossfades, explained

With snapping on, the looper moves each point to the nearest spot within about 20 ms where the waveform rises upward through zero, measured on all channels added together. Since start and end both sit on an upward crossing, the level and direction match across the seam, which removes the most common cause of clicks. If there's no crossing nearby (in digital silence, say), the point stays put.

A zero crossing alone doesn't guarantee a silent seam, though. The waveform's shape either side can still differ, and in stereo the left and right channels may not cross zero together even when their sum does. That's the crossfade's job.

The Seam crossfade blends the last few milliseconds of the loop into the audio just before your start point in the original file, so the end of the loop is already turning into the sound that leads into the start. That means it needs audio before the loop start: a loop starting at 0:00 has nothing to blend with, and the crossfade is shortened automatically when there's less audio available than you asked for. Too short and a stubborn seam can still tick; too long on a beat and it softens the rhythm right at the seam. For beats, a few to about 20 ms is plenty. Save long values for textures.

Export: why WAV loops and MP3 gaps

You build a perfect loop, export MP3, set your player to repeat, and hear a gap every cycle. That gap comes from the format, not your loop points. According to the LAME documentation, the encoder adds 576 samples of delay at the start and decoders add about 528 more, so there's roughly 1,100 samples, about 25 ms at 44.1 kHz, of extra silence up front. The last frame is also padded out to a full 1,152 samples. A player only removes this if it reads gapless-playback information, and many don't. Opus has a similar "pre-skip". That's why the looper warns that a single MP3 or Opus cycle won't loop gaplessly in a player.

Repeats baked into one file are always seamless, because the looper renders them as one continuous block before encoding; only the wrap from the file's end back to its start can gap. WAV stores samples exactly, with nothing added at either end, which makes it the safe loop format. MP3 vs WAV vs FLAC: Which to Use compares the formats in more detail.

For games, check your engine's audio docs. Godot, for example, can read loop points from WAV files and sets looping for compressed formats in import settings, and older Unity documentation warned that MP3 loops can click. A single WAV cycle is the safest thing to hand to an engine, a video editor, or a looping player.

Making a 1 hour loop (MP3 or WAV)

The looper caps each download at 20 minutes. The simplest route to an hour is to export a 20-minute file and let your player repeat it three times; with WAV the wrap stays clean.

For a single hour-long file, export a 20-minute WAV and join three copies in the Audio Joiner with its crossfade Off. Join WAV copies, not MP3s, which would carry their padding into each join. Decoded audio takes far more memory than the file on disk, and an hour of it plus the three source copies can run past a gigabyte in one tab, so do this on a desktop or laptop rather than a phone. Export the result as MP3 if you need a smaller file; the joins inside stay seamless.

Troubleshooting

It still clicks

Raise the Seam crossfade a few milliseconds or nudge a loop point. Make sure Snap to zero crossings is selected. If the loop starts at the very beginning of the file, move the start later so the crossfade has audio to blend.

A thump, a volume bump, or a smeared beat

The crossfade is too long for the material; bring it toward 10 ms on beats. A level bump in ambience means the start and end sit at different loudness, so move one to a matching spot.

The loop drifts against the video or tempo

The length isn't a whole number of bars. Check the tempo, compare it with the Loop length readout, and use Halve or Double. A loop 20 ms too long is a full second out after 50 repeats.

There's a gap when the player repeats

You exported MP3 or Opus. Re-export as WAV, or bake more repeats into one file.

It swells in at the start of every cycle

The loop starts inside a fade-in at the top of the source. Move the start past the fade. If you want a fade on the finished file, add it afterwards with How to Fade Audio In and Out (Free).

Related tasks

Want a one- or two-bar sample to build a beat on instead? How to Cut a Sample or Loop From a Song covers that. For a plain trim with no looping, use the audio cutter. More guides are in the how-to library.

Frequently asked questions

Why does my audio loop click? A click happens when the waveform sits at a different level at the end of the loop than at the start, so playback jumps between them instantly. Starting and ending on upward zero crossings removes most clicks, and a short seam crossfade of a few milliseconds handles the rest. If it still ticks, nudge one loop point slightly or raise the crossfade a little.

Is this audio looper free? Yes. The Vocal Cut Audio Looper is free, needs no account, and runs entirely in your browser. You load an MP3, WAV, FLAC, or M4A file you already have, set the loop, and export it as WAV, MP3, or Opus. Your audio never leaves your device, and there's no upload step.

What format is best for a seamless loop? WAV. It stores audio samples exactly, with nothing added at the start or end, so a single cycle repeats without a gap. MP3 and Opus add a short stretch of silence at the start of every file, roughly 25 ms for MP3 at 44.1 kHz, which shows up as a gap when a player repeats the file. Repeats baked into one MP3 are still seamless.

How long should a loop crossfade be? For music with a beat, a few milliseconds up to about 20 ms is usually enough to hide a click without softening the rhythm. For ambience, rain, drones, and pads, longer values from tens of milliseconds up to 200 ms smooth over changes in texture. Start at the default 10 ms and adjust by ear while the loop plays.

Can I make a 1 hour loop? Not in one step. The Audio Looper caps each download at 20 minutes, so either export a 20-minute file and set your player to repeat it, or export a 20-minute WAV and join three copies end to end in an audio joiner with no crossfade. Export the hour as MP3 afterwards if you need a smaller file.