Category: Visual & Media · Version:
1.0.0 · Author: farizanjum · Compatibility: All targets (claude, codex, opencode, gemini, anti-gravity, openclaw, hermes)ffmpeg, librosa) and the public Openverse API.
Install
- npx CLI (Recommended)
- skills.sh
- Claude Code Native
- Claude Desktop
- Manus AI
What It Does
- Searches Openverse’s 5.2M audio catalog for commercially usable music and sound effects (
cc0,by,pdmfromfreesoundandjamendoonly) - Downloads selected audio files into
sfx/and appends verbatim license attributions tocredits.txt - Tracks beats with
librosa, isolates the sub-120 Hz kick-drum band, detects off-beat lock numerically, and plotsbeatgrid.png - Aligns scene cuts and title reveals to beat timestamps in
beats.json(or shifts music start timing so existing cuts land on the beat) - Normalizes every audio layer by measurement: SFX one-shots by true peak (
-3.0 dBTP) and music beds by integrated loudness (-20.0 LUFS) - Ducks the music bed under voiceover using FFmpeg sidechain compression when speech is present
- Masters the final mix via two-pass EBU R128
loudnormto-16.0 LUFS(-4.5 dBTPpre-AAC to leave headroom for encoder overshoot) - Verifies the exported MP4 with
ebur128, extracts before/after frames at every cue, rendersverify/waveform.png, and returns 5 timestamps to check with headphones
Requirements
No API keys required. The public anonymous Openverse API allows ~200 searches/day, and the skill searches once per sound type.
Setup
How to Use
Why Measurement Instead of Guessing
AI agents cannot hear. When an agent mixes audio by guessing volume multipliers or generating sine-wave beeps in code, the result clips, lands off-beat, or drowns out the voiceover. This skill replaces guesswork with three signal-level safeguards:- Off-beat lock correction: Beat trackers frequently lock onto hi-hat off-beats instead of the kick drum.
beat_grid.pyfilters the waveform below 120 Hz, compares energy on the detected grid against a half-beat shift, and shifts the grid automatically when the off-beat alignment scores >5% higher. - Peak normalization for short SFX: FFmpeg’s
loudnormfilter uses a ~3-second rolling window that crushes short one-shots (a 0.5s pop drops by up to 35 dB).sfx_normalize.pymeasures true peak withebur128=peak=true, applies exact linear gain to hit-3.0 dBTP, and re-measures to confirm tolerance. - AAC encoder headroom: Mastering a WAV to
-4.0 dBTPand encoding to 192k AAC adds0.3-0.6 dBof true-peak overshoot. Two-pass mastering targets-4.5 dBTPon the WAV so the shipped MP4 stays safely below-4.0 dBTP.
Mix Hierarchy
Output
Each run produces:final.mp4: Video muxed with a 48 kHz / 192k AAC soundtrack mastered to-16 LUFScredits.txt: Verbatim Openverse attribution lines for every downloaded track (required forCC BYaudio)beats.json&beatgrid.png: Detected tempo (BPM), beat timestamps in seconds, and kick-band alignment plotverify/waveform.png& cue frames: Exported audio waveform with red cue markers plus before/after video frames (cue_<t>_before.png,cue_<t>_after.png) around every SFX cue- 5 headphone check timestamps: Specific moments in the final video for you to spot-check
Cost Per Run
- Openverse Audio API: free, no auth (~200 searches/day anonymous limit)
- Beat tracking, normalization, and verification (
librosa,ffmpeg): local execution, $0 - Total: free

