Skip to content

Add beat-synced vlog editing skill#6

Open
DavidYu75 wants to merge 1 commit into
palmier-io:mainfrom
DavidYu75:add/beat-synced-vlog-editing
Open

Add beat-synced vlog editing skill#6
DavidYu75 wants to merge 1 commit into
palmier-io:mainfrom
DavidYu75:add/beat-synced-vlog-editing

Conversation

@DavidYu75

Copy link
Copy Markdown

Summary

Adds skills/beat-synced-vlog-editing: cutting vlogs and montages to music — lock a hero moment to the drop, cuts on the beat grid, musically motivated entrances, and keeping sync intact through later edits (the part that actually breaks).

What's inside

  • Drop math on detect_beats output, including two traps: reported bpm can disagree with the beats array by ~2% (grid derives from median array spacing instead), and downbeats[] contains near-duplicates that need filtering.
  • Entrance selection: music-from-frame-0 vs cold open as the first decision; mid-video entrances must start at the bottom of a build — riser before the chosen drop > another rising section > manufactured swell, with the RMS energy map (already computed for drop-finding) driving the choice.
  • Three edit cases that break sync — before the music's start, inside its span, after the drop — with the recovery for each, including the whole-bar source retrim that absorbs a mid-span insert without tearing the entrance off its cut.
  • Mix mechanics in dB with duck-recovery anchoring, and an explicit craft/taste boundary: universal defaults are encoded (duck under speech), style choices defer to the creator's brief with ask-don't-assume.
  • Verification that catches what metadata can't: per-frame luma pass to locate single-frame hero moments, read-backs for floor-rounded trims/durations, and RMS analysis of the exported mix (a broken envelope passes every timeline check).

Validation

Four rounds of cold tests: fresh agents (two model tiers) given only this SKILL.md, MCP access, and footage/songs they'd never seen. Each round's failure report became the next revision; the rules here all trace to something that actually went wrong. The demo below is round 4's unedited output — lights-on lands on the drop frame-exact, and the entrance rides the song's own verse build.

demo_beatsync_test.MP4

Palmier behaviors found while testing (documented as workarounds in the skill)

  1. set_keyframes volume values render as dB, but the tool description says 0.0–1.0 linear (set_clip_properties volume IS linear). A docs-conformant envelope renders flat — no fades, no ducks — and passes every non-audio check. Happy to file as an issue with the probe methodology.
  2. insert_clips landing inside a placed music clip's span splits it and leaves a silent gap; the inserted clip's linked audio can land on the music's track. Step 3 documents the rebuild.
  3. Source-seconds→frames conversions floor throughout: 60fps sources on a 30fps timeline routinely come back one frame short, and trims can floor half a frame early.

catalog.json regenerated with scripts/build-catalog.mjs. Happy to iterate on scope or structure. Natural follow-up skill: sound design / SFX layering.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant