launch-sound
Skill16 starsChanged 47 days agoMITView on GitHub
Tool manual under launch-film (the sound palette, the event map, the cue sheet and generated sound kits). Design the sound effects of a launch film. Builds an event map from the storyboard, the voice-over word timings and the rendered timeline, voices every event from 1 consistent palette (the free synthesised, key-locked forge, or real glass, felt, wood, marimba, clicks and air generated on Higgsfield and pitched into the film's key), and renders 1 SFX stem in a shared acoustic space. Use once picture timing and the score are fixed, for "sound effects", "SFX", "sound design", "UI sounds", "sonic logo".
In this repository11 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- launch-brandSkill
- launch-filmSkill
- launch-mixSkill
- launch-motionSkill
- launch-reviewSkill
- launch-scoreSkill
- launch-storySkill
- launch-voiceSkill
- launch-worldSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 1 is distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 36
Event map: Read the storyboard, the voice's word times and the picture timing (npx hyperframes timeline --json in a HyperFrames project, or …
- Very specific: line 40
Textures: when the film needs a real room: a quiet bed under the whole film at -24 to -28 dB.
- Distinctive: line 61
Every visible change with weight has a sound.
- Very specific: line 64
If a moment needs a sound the palette cannot make, add a new seeded function to sfx_forge.py (or a new kit prompt) rather than importing a …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Launch sound
Tool manual under
launch-film. Start atskills/launch-film/SKILL.md: it holds the core, the hook-plus-body template and the lessons. Where this page differs,launch-filmwins.
Sound carries half of a launch film. Strong reference launches never let a visible change pass without a sound: about 4 transients a second under a continuous bed, near silence before the logo. Generic library clicks and whooshes are what make a film sound like a template. This skill replaces them with 1 palette that is the same in every film you make, which is what sonic branding means.
Your sound identity
Pick 3 or 4 materials that match your brand's world and use only those. The default palette:
- Glass: struck glass partials for arrivals, locks and the logo. Tuned to the score's key.
- Wood and felt: physical, calm weight under every landing and press.
- Air: a quiet moving-air texture for transitions. It never swells or sweeps in pitch.
- The logo sting: 6 glass ticks rising through the key, then a low bell. Shape it after your logo if you can (a count, a rise, a landing) and use it on every logo, always the same.
A hardware brand might swap glass for metal; a playful consumer app might add marimba. Whatever you pick, never use stock whooshes, swells or risers, cartoon pops, laser UI blips, trailer booms, or anything from a generic free pack.
Tools
- Forge (free):
skills/launch-sound/scripts/sfx_forge.py, run with your venv's python (numpy, scipy, soundfile, pedalboard). Seeded synthesis, so the same cue sheet always renders the same stem.palette OUT_DIR --key Awrites every sound to listen to. - Shared space: the Dragonfly Plate reverb VST3 if installed (
REVERB_VST3points at it; the default macOS plug-in folder is checked), else pedalboard's built-in reverb. 1 space for every event. - Generated kit (Higgsfield, your account):
python3 skills/launch-sound/scripts/hf_kit.py generate skills/launch-sound/references/kits.example.json film/sfx/kitruns 1 prompt per material (Seed Audio for hits, Mirelo for air and growth). Each prompt asks for about 6 separated hits; onset slicing turns them into one-shots (glass-01.wav...) andkit.jsonrecords each hit's length and, for pitched kits, its fundamental. A file cue with"f0"and"degree"is pitched onto that key degree bysfx_forge.py, like a sampler. Re-slice for free withhf_kit.py slice film/sfx/kit. About 2 credits a kit, about 20 for all. - Textures: Seed Audio for a real room when the film needs one (a keyboard for a hero typing moment, glass set on wood for a big landing). Quoted 0.4 credits, charged about 1.7 to 2.1 in 2026-09. State the expected total before generating; a handful of clips can run without waiting for approval, a batch over 20 credits waits for a yes. Prompts that worked:
references/seed-audio-prompts.md.
In the film template
film/audio.py writes the cue sheet from the beat timings for you: a weight on each hero card by its ground, air on each dive, a press on each cursor click, a lock on each chip, a knock per block landing, the switch click, and the logo sting at the end. Set "sound": {"kit": "sfx/kit", "key": "A"} in film/film.json to voice them with your generated kit instead of the forge. Hook sounds go in the hook's sfx list. Change the mapping in audio.py when your brand needs a different voice for an event.
Procedure for a free-form film
- Event map. Read the storyboard, the voice's word times and the picture timing (
npx hyperframes timeline --jsonin a HyperFrames project, or the build's timing JSON). List every event: time, what moves, where on screen, weight (light, normal, big). - Key and tempo. From
score.meta.json(launch-score). Every tonal sound follows the key. - Voice each event with the table below. Time a cue to the frame the motion lands, not where it starts. Typing starts on the first character. Air centres on the pass.
- Write
sfx/cues.json(format in the script header). Pan follows screen position:pan = ((x / 1920) * 2 - 1) * 0.6. - Textures when the film needs a real room: a quiet bed under the whole film at -24 to -28 dB. Save to
sfx/textures/<yyyy-mm-dd-hh-mm-ss>-<name>.wav, place as{"t": 0, "file": "textures/...", "gain_db": -26, "dur": 20}. - Render:
python3 skills/launch-sound/scripts/sfx_forge.py render sfx/cues.json sfx/sfx.wav --key A. With a kit, rotate through a kit's hits so repeated events never sound cloned: marimba for arrivals climbing the scale, glass for travelling signals, clicks for presses and locks, felt under landings, sub on the big cuts, the sting on the logo. - Check the stem before mixing: peak about -7 dBFS, no 2 tonal cues within 60 ms unless they form a chord on purpose, density as in
references/density.md. Then hand it tolaunch-mix.
Event to sound
| Visual event | Sound | Gain dB | Notes |
| Cursor press, button press | press | -8 | on the frame the button depresses |
| Card, window, node arrives | arrive | -9 | step args.degree 0, 2, 4 across a sequence so it climbs |
| Typing | typing | -13 | chars and cps match the on-screen typing |
| Connection or edge grows | grow | -11 | args.dur = draw duration |
| State locks: publish, live, done, check, meeting booked | lock | -7 | the film's reward sound; use it for outcomes |
| Big reveal, scale jump | sub_drop + arrive | -9, -8 | 3 per film at most |
| Transition pass, glass wipe | air | -12 | the only transition sound |
| List steps, counters, receipts | wood_knock, alternating pan | -11 | |
| Single glint, highlight | glass_tick | -12 | |
| Logo | logo_sting | -4 | the score drops out about 0.1 s before (launch-mix drop_out) |
Quality bar
- Every visible change with weight has a sound; statements and held reads get room.
- The palette is consistent: 1 reverb space, 1 key, no clip from outside it.
- The logo lands in near silence with the sting.
- If a moment needs a sound the palette cannot make, add a new seeded function to
sfx_forge.py(or a new kit prompt) rather than importing a random clip, and document it here.
References
references/density.md: measured densities, and how to read the review numbers.references/seed-audio-prompts.md: texture prompts that work, with costs.references/kits.example.json: 10 generic kit prompts forhf_kit.py.launch-mix(balance, ducking, master),launch-score(key, sections),launch-review(the check).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

