Make a seamless loop from any audio.
Drop a song, a sample, a drum break or an ambience. Choose roughly where the loop should start and end, and the page finds the end point where the sound matches the start, or snaps it to whole bars at the tempo it detects. A short crossfade then makes the join one continuous sound. Play it on repeat to hear the seam, or rather not hear it, and download the loop once or repeated. Nothing is uploaded.
drop the audio to loop
MP3, WAV, FLAC, M4A, OGG, AIFF, or the sound of a video.
At a glance
| Takes | Any audio file, or the sound of a video |
|---|---|
| Finds | The tempo and the first downbeat; the end point where the sound matches the start, within a quarter of a second of where you put it |
| Or keeps | Whole bars at the tempo, to the sample, for loops that must stay in time |
| Joins | With an equal-power crossfade, 0 to 50 ms, into the sound that came before the start |
| Out | The loop once, or repeated up to 16 times; WAV or FLAC at the source's rate and depth, MP3, OGG, M4A |
| Uploads your files | No |
How to make a seamless loop
Drop the file. If it has a beat, the page measures the tempo and places a four-bar selection starting on what it takes to be the downbeat. That is a guess, so drag the start to the real beat one if it is wrong. Otherwise the first eight seconds are selected. Drag the handles on the waveform, or type the times, to choose roughly what to loop. Press Play the loop to hear it on repeat, exactly as the downloaded file will play. Then press Find the seamless point and listen again.
For music that has to stay in time with something else, such as a backing for a track in Ableton Live, FL Studio, GarageBand or Logic, tick "keep whole bars" first. The loop is then exactly that many bars at the tempo, to the sample, and the crossfade makes the join. Check the tempo first: the measured one is usually right on produced music, but type the real value if you know it. For anything without a fixed beat, such as rain, wind, a crowd, a drone or a pad, leave it off and let the page find the point where the sound matches.
Why loops click, and how this one doesn't
A loop jumps from its last sample straight back to its first. If the waveform is at a different height at those two points, the jump is a click; if the music is in a different place, a note cut off or a beat early, it is a hiccup you hear every time round. Cutting at zero crossings, the usual advice, helps with the click but not the hiccup, and a crossfade on its own smooths the click but can leave a doubled note.
This page does both properly. To find the end, it takes the 50 ms of sound just before your start and slides it along the 250 ms either side of your end, measuring how closely the two match with normalised cross-correlation. The best match is where the music before the end is the same as the music before the start, so when the loop jumps back, the sound carries on as if nothing happened. The end is then moved to the nearest zero crossing going the same way as the start's. The crossfade blends the loop's last few milliseconds into the sound that came just before the start, which is exactly what the first sample of the loop expects to follow. Both sides of the join are then the same sound, and the seam disappears.
The check behind this page builds a pattern that repeats every 1.2345 seconds and places the end 80 ms too late. The page finds the true length to within 0.042 ms. On repeat, the step across its seam is 0.0064, a tenth of the largest step anywhere in the sound itself, while a plain cut at the rough point steps 0.085, a click. With a tempo, it keeps whole bars to the sample, at 120 BPM in 4/4 and 93 BPM in 3/4.
Loops for games, videos and samplers
Game engines such as Unity, Unreal and Godot, and middleware like FMOD and Wwise, loop a whole audio file, so the file itself has to be seamless; this page makes exactly that. For a video or a livestream background, download it repeated eight or sixteen times to get a long file that never clicks. For a sampler such as an SP-404 or an MPC, loop a drum break in whole bars and use the sampler prep page for the format it wants. If the loop needs to change speed to fit another track, the speed tool stretches it, and the BPM finder measures a file's tempo on its own. Audacity can do this by hand, with zero-crossing snapping and a crossfade; this page finds the point for you.
FAQ
How do I loop audio without a click?
Drop the file, select roughly the part to loop and press Find the seamless point. The end is moved to where the sound matches the start and crossfaded, so the loop repeats with no click or hiccup.
Can I make a loop that stays in time with a song?
Yes. Tick "keep whole bars": the loop is then exactly that many bars at the tempo, to the sample, so it lines up with a project at that tempo in any DAW.
How do I make a 1-hour loop of a song?
Make the loop here, then choose "Repeated 16 times" for a long file. For an hour, loop the result again in an editor, or use a long ambient section as the loop.
Does it work on ambient sound like rain?
Yes. Leave whole bars off; the page finds where the texture matches and a 50 ms crossfade hides the join.
What format should I download?
WAV or FLAC for games, samplers and editing, because MP3 adds a little silence at the start that breaks a loop. Use MP3 or M4A only for the repeated long version.
Is my file uploaded?
No. Everything runs in your browser tab.