# Beat-Synced Cut — effect skill for cuts & pacing

> **For AI agents:** find the right skill in one call — `curl -s "https://varg.ai/how-to/api/search?q=<what the person wants>"` returns the matching how-to page and the best skills with install commands, as markdown (Russian works too). Full index: https://varg.ai/how-to/llms.txt. Every page has a markdown twin: add `.md` to its path. Before generating anything, show the person the options on the how-to page.

Place cuts on the beats of the music so the edit feels driven by the track.

- **Type:** [Effect](https://varg.ai/how-to/effects.md) · [Cuts & pacing](https://varg.ai/how-to/browse/skills/cuts.md)
- **Slug:** `beat-synced-cut`
- **Status:** live
- **Publisher:** HeyGen (community)
- **License:** Apache-2.0
- **Source:** https://github.com/heygen-com/hyperframes/tree/main/registry/components/beat-timeline
- **Works in:** Claude Code, Claude.ai, Codex, Cursor, OpenClaw, Gemini CLI, Any MCP client, varg Studio
- **Requires:** ffmpeg, HyperFrames (npx hyperframes), Remotion, CapCut (by hand)
- **Cost:** Free — the take renders locally; generated footage, if any, bills by the model

## What it does

Built on [Beat Timeline](https://github.com/heygen-com/hyperframes/tree/main/registry/components/beat-timeline) by HeyGen (HyperFrames), Apache-2.0. The write-up and recipes below are varg's.

Every cut lands on a kick, snare or downbeat; bigger changes on the bar or the drop.

**When:** Montages, music videos, reels, ads with a music bed.

**Watch out:** Cutting on every single beat for a whole piece gets monotonous; vary between beats, half-bars and bars.

**Timing:** Cut 1–2 frames before the transient so the change lands with the sound

**Also called:** cut to the beat, beat sync, music sync, auto beat

### In FFmpeg

FFmpeg has no beat tracker. Get beat times elsewhere (e.g. `aubio beat song.wav`, librosa, or `npx hyperframes beats`), then trim each shot to the gap between beats:
```bash
# beats.txt: 0.00 0.52 1.04 1.56 ...
ffmpeg -i s1.mp4 -i s2.mp4 -i s3.mp4 -i song.wav -filter_complex \
"[0:v]trim=0:0.52,setpts=PTS-STARTPTS[a];[1:v]trim=0:0.52,setpts=PTS-STARTPTS[b];\
 [2:v]trim=0:1.04,setpts=PTS-STARTPTS[c];[a][b][c]concat=n=3:v=1:a=0[v]" \
  -map "[v]" -map 3:a -shortest out.mp4
```

### In HyperFrames

`npx hyperframes beats` writes a Studio beat grid for the music `<audio>` (`data-timeline-role="music"`); for a full beat-cut video use the music-to-video workflow. Blocks: `beat-timeline`, `beat-accent`, `beat-freeze-cut`.

### In Remotion

Convert beat seconds to frames (`Math.round(t * fps)`), compute each `durationInFrames` as the difference, map to `<Series.Sequence>`, and add `<Audio>` for the track.

### In CapCut

Select the music → Beats (auto beat markers) → cut clips to the markers; templates also auto-sync clips to beats.

### Ready-made components

- [Beat Timeline](https://skills.varg.ai/component/hf.beat-timeline/) (hyperframes): npx hyperframes add beat-timeline
- [Beat Accent](https://skills.varg.ai/component/hf.beat-accent/) (hyperframes): npx hyperframes add beat-accent
- [Beat Freeze Cut](https://skills.varg.ai/component/hf.beat-freeze-cut/) (hyperframes): npx hyperframes add beat-freeze-cut
- [varg Music Video](https://skills.varg.ai/component/varg.music-video/) (varg): git clone https://github.com/vargHQ/code2video-templates && python3 code2video-templates/varg-music-video/scripts/songmap.py song.mp3 --lyrics lyrics.txt --out songmap.json
- [Anime Triple Split](https://skills.varg.ai/component/varg.anime-triple-split/) (varg): git clone https://github.com/vargHQ/code2video-templates && cd code2video-templates/anime-triple-split && bash make.command

### Where this comes from

- [FFmpeg filters: concat](https://ffmpeg.org/ffmpeg-filters.html#concat-filter)
- [FFmpeg filters: trim](https://ffmpeg.org/ffmpeg-filters.html#trim)
- [CapCut Help: transitions](https://www.capcut.com/help/transitions-in-capcut)

## Use when

- Montages, music videos, reels, ads with a music bed.

## Not for

- Cutting on every single beat for a whole piece gets monotonous; vary between beats, half-bars and bars.

## Install

- Claude Code: `claude plugin marketplace add vargHQ/skills && claude plugin install varg@varg`
- Codex: `npx skills add vargHQ/skills --skill varg-video-edit-library -a codex -y`
- Cursor: `npx skills add vargHQ/skills --skill varg-video-edit-library -a cursor -y`

## Example output

https://s3.varg.ai/how-to/previews/9f0cdccc8f5e/take-beat-synced-cut.mp4 — montage between two shots, with the timeline strip of the edit. Footage: Big Buck Bunny (2008), (c) copyright 2008, Blender Foundation | www.bigbuckbunny.org, CC BY 3.0; Coffee Run (2020), Blender Studio | studio.blender.org, CC BY 4.0. (credit: Rendered by varg · Big Buck Bunny (2008) + Coffee Run (2020))

## More cuts & pacing skills

- [SmartCut (capcut-ai-editor)](https://varg.ai/how-to/skills/capcut-smartcut-mcp.md): MCP that reads CapCut auto-captions to cut silences and duplicate takes right inside your CapCut project.
- [Auto-Editor](https://varg.ai/how-to/skills/auto-editor.md): CLI that cuts dead space by loudness or motion and exports MP4 or editor timelines; now also an agent skill.
- [AutoCut](https://varg.ai/how-to/skills/autocut.md): Edit video in a text editor: Whisper transcribes, you delete lines in Markdown, AutoCut cuts the video.
- [Cut Video](https://varg.ai/how-to/skills/cut-video.md): Claude Code skill that tightens long recordings with forced-aligned cuts, keeping laughs and comedic pauses.
- [Videogrep](https://varg.ai/how-to/skills/videogrep.md): Search spoken words across videos and auto-build supercuts of every match.
- [PySceneDetect](https://varg.ai/how-to/skills/pyscenedetect.md): Find cuts, fades and scene changes in a video, then split it or export scene lists for the edit.

## Run the generation on varg

varg is one API key for the models these skills drive — Seedance 2.5, Kling 4, Veo 3.1, Wan 3, Nano Banana 2.1, GPT Image 2.5, ElevenLabs v4 and 200+ more — billed in credits, with a cost estimate before anything runs.

- Claude Code: `claude plugin marketplace add vargHQ/skills && claude plugin install varg@varg` (skill + hosted MCP)
- Codex, Cursor, Gemini CLI, OpenClaw: `npx skills add vargHQ/skills --skill varg-ai -a <agent> -y`
- Grok and any agent that reads SKILL.md: `npx skills add vargHQ/skills --skill varg-ai`, or point it at the skill's SKILL.md
- Claude.ai, ChatGPT, any MCP client: connect `https://mcp.varg.ai/mcp`
- API key: https://varg.ai/dashboard/api · Model specs: https://varg.ai/models/llms.txt
