By Updated

Audio Looper

Loop a short audio clip into a long one (up to 30 minutes) in your browser. Pick a target duration, get a seamless crossfade by default, or use byte-perfect Fast mode for pure noise sources. Powered by ffmpeg.wasm. No upload, no signup.

Interactive tool

ffmpeg.wasm engine loads on first run (~32 MB)

The engine is cached for the rest of your session. Every transcode runs entirely in your browser: files never leave your device.

Threading: detecting…

Drop an audio file here

Up to 60 seconds works best for loops. Longer sources don't need a looper.

What is the Audio Looper?

A free, in-browser audio looper that repeats a short clip into a long one: up to 30 minutes, with a seamless crossfade between iterations so the join is inaudible. Runs entirely through ffmpeg.wasm, so the source file never leaves your browser. Built for UGC creators who need long background beds from short noise, ambient, or music clips.

How to Use the Audio Looper

  1. 1Drop an audio file (mp3, aac, ogg, opus, wav, flac): under 60 seconds works best
  2. 2Pick a target duration with the preset chips or type one in (mm:ss)
  3. 3Leave Seamless mode on for music / fan / rain, or toggle Fast mode for pure white noise
  4. 4Optional: add a fade-in and fade-out on the final long file
  5. 5Click Loop: preview the result, then download
What you get

Key features

Seamless crossfade by default

A two-pass acrossfade renders one clean join, then streams it to the target duration: no clicks, no pops, no phase pops at loop points

Fast mode for noise sources

Optional byte-perfect mode (-c copy) skips re-encoding entirely. 3 s into 10 min finishes in under a second and loses zero quality

Preset durations for UGC

One-click chips for Story (15 s), Reel (60 s), TikTok-friendly 3 min, and long beds up to 30 min

Optional fade-in / fade-out

Apply fade envelopes to the final long file via the afade filter: useful for soft starts and clean endings under a voice-over

Six output formats

mp3 / aac / ogg / opus / wav / flac, or keep the source format and re-encode at the same bitrate

Projected size before render

Live byte estimate so you know what you are about to download before committing to a long render

100% private

No upload, no signup, no logs: the audio is processed locally in your browser through ffmpeg.wasm

Why Loop Audio Locally?

Online "loop audio" sites upload your file, often watermark, rate-limit, or cap output at a few minutes. Looping locally is private, fast, and watermark-free. The two-pass crossfade renders a clean master once and then copies it, so a 30-minute output ships in seconds instead of minutes, and the join between iterations is inaudible.

Common use cases

  • Extend a 3-second white noise clip into a 10-minute focus / sleep bed
  • Build a long background ambient for a TikTok or Instagram Reel
  • Loop a sound-effect bed under a podcast intro or outro
  • Turn a short rain / fan / fire recording into a multi-minute ASMR loop
  • Pre-render a long backing pad for a voice-over without leaving the browser

Seamless mode vs Fast mode

Seamless mode renders a short master with a small crossfade between two copies of the input (default 30 ms), then loops that master to the target duration. The crossfade hides the discontinuity at the join, so even tonal content like a fan hum or AC compressor cycles seamlessly. Fast mode skips the master pass and uses ffmpeg's -c copy stream loop: instant and byte-perfect, but it leaves the raw waveform discontinuity in place. That is inaudible on pure white / pink noise but can click on tonal sources, so the toggle is opt-in.

Why is the output capped at 30 minutes?

The ffmpeg.wasm virtual filesystem has to materialise the output blob in memory before handing it back to the browser. Above 30 minutes for lossy formats (or 15 minutes for wav / flac) the tab tends to run out of memory on lower-spec devices. Multi-hour sleep / ASMR renders are on the roadmap as a server-side option.

How the crossfade is built

Stage 1 takes the input twice and joins them with ffmpeg's acrossfade filter using a triangular curve (c1=tri, c2=tri) of the configured duration. Stage 2 stream-loops that master to the target length with -stream_loop -1 and -t, then applies any final fade-in / fade-out via afade and encodes to the chosen format. The whole pipeline runs in a single ffmpeg session via withFfmpeg(): only one engine load.

Pro tips

Tips & best practices

Use Fast mode for pure noise

White, pink, and brown noise have no temporal correlation: the join is inaudible even without crossfade. Fast mode is byte-perfect and instant.

Bump crossfade to 100-300 ms for music beds

On melodic or percussive material a longer crossfade smooths the join. 30 ms is the right default for noise / ambient; reach for 100-300 ms on music.

Trim before looping

If your source has a click at the start or end, run it through the Audio Trimmer first to snap to a clean boundary. The cleaner the source, the cleaner the loop.

Keep source short

For clean noise beds, a 1-3 second source is plenty. Shorter sources mean a smaller master and a faster render.

Built for trust

Privacy & security

Looping runs entirely in ffmpeg.wasm inside your browser. The source audio is never uploaded, logged, or stored. Engine artefacts are served from our own origin (not a third-party CDN).

Frequently Asked Questions

What is the difference between Seamless and Fast mode?

Seamless renders a small crossfaded master, then stream-loops it to the target duration: the join between iterations is inaudible on any source. Fast mode uses ffmpeg -c copy on a stream loop, so it produces a byte-perfect output in milliseconds, but the raw waveform discontinuity at the join can click on tonal sources. Seamless is the safe default. Fast is the right choice for pure noise.

Why is the output capped at 30 minutes?

ffmpeg.wasm has to materialise the output blob in the browser's virtual filesystem before handing it back. Above 30 minutes (lossy) or 15 minutes (wav / flac), browser memory becomes the bottleneck. Multi-hour loops for sleep / ASMR content are on the roadmap as a server-side option.

Will my looped audio lose quality?

In Fast mode, no: -c copy is a byte-perfect repeat with no re-encoding. In Seamless mode there is one generation of re-encoding (the master pass), then the stream-loop is bit-perfect to that master. Pick wav or flac as the output format to avoid any lossy compression.

Why does the tool only accept clips up to 60 seconds?

Longer sources do not need looping. They are already long. If you want to repeat a 5-minute clip a few times, use a podcast editor or a video editor instead. For trimming a long source to a clean loop point first, use the Audio Trimmer.

Does my file get uploaded?

No. Looping runs entirely in your browser through ffmpeg.wasm. The audio is never sent to a server. The ffmpeg engine artefacts are served from our own origin under /ffmpeg/<version>/.

How should I set the crossfade duration?

For white / pink / brown noise: 30 ms (the default) is inaudible. For ambient with subtle tonal content (fan, AC, rain): 50-100 ms hides any phase pop. For musical or rhythmic beds: 200-500 ms gives a smooth blend.