skills/showtime/references/workflows/music-video.mdWorkflow: music video or beat-driven piece
Read this when the picture should be cut or animated to a piece of music: a music video for the
user's track, a lyric or visualizer video, a beat-synced montage of clips or photos, a hype reel
("make a video for my song", "cut these clips to the beat"). The track is the spine; its beat map
drives every cut. If the user has no track, compose one first (audio compose), which ships an exact
beat grid.
Inputs#
- The track (WAV, MP3, M4A) and its license: the user's own music, a licensed track, or a composed one. Never download commercial music.
- Picture material: footage clips, photos, captures, lyrics, or nothing (an abstract visualizer).
- Helpful: the sections the user cares about (the drop, the chorus), the platform.
Defaults#
The full track length (or the user's excerpt, cut on bar lines); 16:9 or 9:16 by platform; cuts on downbeats in calm parts, on every bar in builds, on beats only in short bursts at drops; picture changes 1-2 frames before the beat; one visual treatment per musical section (1-6 treatments, not one per beat). Ask at most: which part of the track (when it is long) and the platform, only when the request does not say.
Steps#
- Job.
showtime job init <song>-video --goal "...". - Beat map.
showtime audio beats <track> -o <job>/beats.jsonand read it:bpm,bpm_confidence,downbeats,sections(energy phases),moments(surges and drops), andpacing:beat_cutmeans hard cuts may sit on the grid;phrase_flowmeans cut on phrases and energy changes instead. Composed tracks already have<file>.beats.jsonwith exact downbeats. Done when: you have a section map (time, energy, treatment) in SHOWTIME.md. - Excerpt (if needed).
showtime audio fit <track> --dur <seconds> -o <job>/track.wavends on a downbeat with a short decay, or loops bar-aligned regions to stretch; never fade mid-phrase. - Plan the treatments. Per section: what is on screen, the cut rate, the motion energy. Lyrics:
one line per card, timed from a transcript of the vocal (
showtime transcribe <track>; word times are approximate on sung vocals, so check them against the beat map and nudge to the nearest onset). - Build the picture.
- Clips: an EDL whose ranges end on downbeats: pick each range length as a whole number of beats
(
60 / bpms each), mute the clip audio ("mute": trueon each range) and put the track in"audio": {"music": {"file": "../track.wav", "gain_db": 0}}with"loudness": {"lufs": -14}.showtime edit check, then read the output time of every cut and compare withdownbeats. - Motion graphics or photos: a
domorfilmproject; setdata-startof each scene to a downbeat; put the track inaudio/mix.jsonas{"kind": "music", "file": "audio/track.wav", "level": "raw"}. Beat-reactive motion uses the beat times as data (copybeats/downbeatsinto a JSON file the page loads), never real-time audio analysis.
- Clips: an EDL whose ranges end on downbeats: pick each range length as a whole number of beats
(
- First look. Projects:
showtime check,showtime snap --at <the downbeats of section starts>. EDLs (in<job>/edit/):showtime edit render <job> --previewandshowtime edit view <job>. Look at the frames on either side of the big moments. Useshowtime preview <project>for the user to feel the sync. - Final.
showtime render <project> --job <job>orshowtime edit render <job> -o <job>/final.mp4. - Verify.
showtime qa <job>(the latest final); confirm the drop lands on its frame (showtime snap <project> --at <drop - 0.033>,<drop>for projects). Report the track's license in the delivery card.
Pitfalls#
- Cutting on every beat for the whole song: exhausting. Follow the energy (
music.mdsection 3). - Trusting a low-confidence grid: when
bpm_confidenceis low, sync only the 1-3 biggest moments. - Strobing: no more than 3 flashes per second (
pacing.mdsection 5, a safety rule). - Loudness surprises:
level: rawkeeps the track as mastered; the final is still mastered to -14 LUFS. If the user wants the track untouched, render projects with--no-loudnorm(EDLs:"loudness": false) and say so. - Lyrics on screen that differ from the recording: transcribe, then correct spelling only.
Read next#
references/music.md, references/audio.md, references/pacing.md, references/editing.md,
references/motion-craft.md, references/stage-api.md.