Beat-synced slideshows,
powered by AI music analysis

Import your photos and music. Beat Editor detects the song structure, then cuts your photos to the rhythm — automatically, with cinematic precision.

The 6-step workflow

From photos to finished video in under a minute.

1

Import photos

Drag photos into the editor or click Import Photos. Supports JPG, PNG, WebP, HEIC. Mixed aspect ratios are handled automatically with blur-fill (no black bars).

★ Star your best 3–5 photos before generating — they'll land on the drops.
2

Import audio

Drop an audio file or drag it directly onto the timeline. Multiple audio segments are supported for longer projects.

3

Detect beats

Click Detect to find the BPM and precise beat grid. This takes a few seconds and runs entirely in your browser. The waveform and beat markers appear on the timeline.

4

Analyze song structure

Click the Analyze dropdown to identify song sections (intro, verse, chorus, drop, outro). Choose a tier based on how much quality you want — analysis results are cached, so you only pay once per song.

Free tiers work great. Premium tiers unlock AI-powered section detection for dramatically better edits.
5

Smart Generate

Click ⚡ Smart to generate the beat-synced timeline. The generator reads your analysis, places cuts at musically meaningful moments, and assigns your photos (favorites at the drops).

6

Export to MP4

Click Export to render your project. Uses hardware-accelerated WebCodecs in modern browsers, with ffmpeg.wasm as a fallback. Choose Draft / Standard / High quality.


Five analysis tiers

Analysis tells Smart Generate where the song's sections are and how energetic each one is. Better analysis = more cinematic cuts.

Essentia (Local) Free
Runs entirely in your browser using the Essentia.js WASM library. Detects BPM and basic sections from spectral analysis. No server or API key required.
Browser-only No API key Offline Spectral sections
Free
~7 seconds
Server (allin1) Free
Runs a deep-learning beat tracking model on our server. Returns precise beat timestamps, downbeats, section labels, and per-frame section probabilities (activations). Powers the confidence heatmap on the timeline. ~1:30 fresh, instant when cached.
Precise beats Downbeat detection Section labels Confidence heatmap Cached after first run
Free
~1s (cached)
Server v2 (allin1fix) Free Trial
Trial tier running the openmirlab/all-in-one-fix fork on modern PyTorch 2.x and Python 3.11. Same output as Server. Currently ~10× slower on CPU than legacy (NATTEN 0.14.6 → 0.17.5 regression) — kept for experimentation and future GPU deployment, not recommended for everyday use.
Same output as Server Modern PyTorch Slower on CPU
Free
~5 min fresh
Gemini AI Premium
Uses Gemini 3.1 Flash-Lite to understand the song semantically. Returns rich section labels, key moments (first drop, main buildup), and confidence scores. Requires your own Gemini API key.
Semantic sections Key moments Gemini API key required
~$0.004
~11 seconds
Super Premium Best
Same parallel merge as Premium, but uses Gemini Flash 3 (the full model) instead of Flash-Lite. Produces more nuanced section detection and graduated buildups — 8→4→2→1 beat intervals accelerating into drops. Noticeably better on complex tracks.
Graduated buildups 8→4→2→1 acceleration Complex tracks Gemini Flash 3
~$0.014
~22 seconds

Which tier should I use?

Just trying it out? Server (allin1) — free, fast, good results
Best balance of cost + quality? Premium — precise beats + smart sections for $0.004
Making something special? Super Premium — graduated buildups feel professionally edited
Offline or no server? Essentia (Local) — basic but works anywhere
How Premium / Super Premium works
allin1 (server)
376 precise beat timestamps · downbeats · beat 1/2/3/4 in each bar
runs in parallel ↓
Gemini AI
intro (bars 1–16) · verse building energy · drop with fast cuts · outro
merge: snap Gemini section boundaries to nearest allin1 downbeat ↓
Merged result
cuts land exactly on beats AND follow the song's emotional arc
Analysis is cached. Results are stored in your browser's IndexedDB keyed by a SHA-256 fingerprint of your audio file. Re-importing the same track in a new project shows results instantly and costs nothing extra.

How the generator works

Smart Generate reads your analysis and builds a timeline where every cut lands on a musical beat, with cut frequency driven by the section's energy.

Cut intervals by section type
Drop / Chorus
1–2 beats
Fast, energetic cuts. Favourites land here.
Buildup
2–4 beats
Builds tension into the drop.
Verse
4 beats
Moderate pace, one bar per cut.
Intro / Outro
8 beats
Slow, gentle. Lets photos breathe.
Super Premium graduated buildups: Instead of a fixed interval, buildups accelerate 8→4→2→1 beats as they approach the drop, creating a natural tension ramp that feels like a professional edit.
OptionWhat it does
PatternChoose Auto (energy-based) or a named pattern like EDM Drop, Cinematic, Dynamic. Named patterns override cut intervals per section.
HumanizeAdds natural timing variation. 0 = robotic precision. 0.3–0.5 = natural feel. High values introduce occasional beat skips in calm sections.
Smart Photo PlacementFavourites (gold star) go to drops and choruses. Normal photos fill verses and intros. On by default.
TransitionsNone / Smart (musically-aware, picks transition style per section energy) / or a specific type. Smart at 50% frequency works well.
Ken BurnsZoom/pan animation per clip. Random, Off, or a specific preset (Zoom In, Pan Left, Drift, etc.). Skipped automatically on short clips and simple graphics.
ShuffleRandomise photo order. Re-generate freely — only cut placement changes, analysis stays cached.

Per-clip effects and colour grading

Select any clip and use the Properties panel to apply effects. All effects are WebGL-powered and render in both preview and export.

📼
VHS
Retro VHS tape look with animated scan lines and noise.
🎞
Film Grain
Organic, animated grain overlay that gives a film-stock feel.
Glitch
Digital glitch bursts timed to playback — great on drops.
🌅
Retro / Vintage
Warm colour shift and vignette for a vintage photo aesthetic.
🔴
Chromatic Aberration
RGB channel offset — subtle lens distortion effect.
📺
Scan Lines
CRT monitor scan line overlay.
15 colour grade presets across 5 categories — with 11 adjustable parameters each
CinematicTeal & Orange · Moody Dark · Bleach Bypass
VintageWarm · Faded Film · Lo-Fi · Cross Process
ModernHigh Contrast · Pastel Pop
CreativeGolden Hour · Sunset Glow · Cool Blue · Forest Green
B&WClassic · Film Noir
Text overlays can be added anywhere on the timeline. 12 animation types (fade, typewriter, bounce, slide, scale) with 7 built-in presets: Bold Title, Lower Third, Caption, Cinematic, Neon, Minimal, Impact.

Getting the best results

👑
Mark your 1–2 best shots as Heroes (👑). They'll land on THE most intense moment of the song — the main drop or peak chorus. The crown icon cycles: ☆ normal → ★ favorite → 👑 hero → ☆.
Mark 3–5 other strong photos as Favourites (★). They'll fill other drops and chorus peaks around your heroes.
Use Premium analysis for the best balance of cost and quality. At $0.004 per track it's cheaper than a cup of coffee and dramatically improves edit quality over free tiers.
Re-generate freely. Analysis is cached, so clicking Smart Generate again is instant. Each run reshuffles photos and creates a fresh timeline — try it 3–4 times and pick your favourite.
Humanize at 0.3–0.5 gives natural variation without losing the beat. Too low feels robotic; too high and cuts drift off the rhythm.
Smart transitions at 50% frequency work well. Not every cut needs a transition — a mix of hard cuts and smooth transitions feels more natural.
Try different patterns. "EDM Drop" vs "Cinematic" give very different feels even with the same photos and music. Pattern mode uses preset section overrides to drive cutting style.
Blur-fill at import time eliminates black bars when your photos don't match the project aspect ratio. Enable it in the Import Options modal for a polished look.
Double-click any slider to reset it to default — works on Ken Burns, colour grading, and transform controls.

Quick reference

Play / PauseSpace
Seek 1 second← / →
Seek 5 secondsShift + ← / →
Jump to start / endHome / End
Zoom timeline+ / −
Pan timelineShift + Scroll
UndoCtrl+Z
RedoCtrl+Shift+Z
SaveCtrl+S