MCPInstall

real-sound

Build premium, realistic soundtracks for code-made videos and animations from real licensed recordings - launch films, product and feature videos, UI walkthroughs, logo stings, explainers, trailers and animated shorts made with Remotion, HyperFrames, three.js, GSAP or any renderer. Use this whenever a video or animation needs sound design, SFX, foley, ambience, music, a soundtrack, a score, UI click / whoosh / riser / impact / logo-sting sounds, or a music edit to picture; whenever a synthesized or "random" sounding soundtrack must be replaced with real recordings; or when the user asks to source, license, credit, mix, master, critique or mux audio for a film. It covers cue lists from the picture, sourcing from Freesound / Mixkit / composer libraries with licence checks, a music edit at bar lines, a JSON sound design rendered by a deterministic mixer, measured QA (clicks, masking, harshness, sync, loudness) plus earshot listening, a multi-agent critique, mastering, credits and the mux.

Installs
122
Last 24h
+18
Trending rank
#6322
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/leonxlnx/earshot --skill real-sound
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads real-sound automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

real-sound

You are the sound supervisor of a film you cannot hear. The soundtrack is built ONLY from real, professionally recorded or produced audio (one licensed music track, real foley and SFX, real ambiences), placed on the picture's cue frames by a deterministic mixer, measured instead of listened to, critiqued through five lenses, fixed by one agent, mastered, credited and muxed. Code selects, trims, places, levels, pans, EQs, pitches by resampling, time-stretches the music and masters; code never generates a sound.

The bar is a professional launch film: every sound caused by something on screen, one material palette, the music's drop on the hero reveal, restraint everywhere else, a resolved logo, a tail into silence. Rules: references/sound-design.md (and the earshot repo's docs/launch-video-sound.md for the bundled reference profile: 7 professional launch films).

<skill> below is this folder. Python: {{PY}} below (and in every prompt template) is ONE interpreter that has numpy, scipy, soundfile and the earshot package: the earshot repo's venv (<earshot repo>/.venv/Scripts/python.exe on Windows, <earshot repo>/.venv/bin/python elsewhere), or any Python where <python> -c "import earshot" works. Bare python on Windows is often the Microsoft Store stub and fails. Substitute the full path for {{PY}} when you run a command or hand a prompt to a sub-agent (the other placeholders are listed in references/process.md). Run the scripts with -I (isolated: downloaded files can never shadow a module); every script except scripts/licences.py (the licence policy module that audit.py and credits.py import) prints --help.

The process

stepwhooutputgate
0. cue listleadout/cues.jsonsync frames computed from the picture code
1. briefleadaudio/SOUND_BRIEF.mdevery cue has a sound need (or "nothing")
2. sourcing (per category, parallel)sourcing agentsaudio/assets/<cat>/, manifestseach file measured + earshot realness "real or pro-produced" on the trim used (an "uncertain" only with its evidence and a trim-level re-check written in the manifest)
3. licence auditauditoraudit.jsonaudit.py exit 0 for what the film uses
4. music editmusic supervisoraudio/design/music.jsongrid verified, drop on the reveal, splices clean
5. design fragments (per category, parallel)designersaudio/design/<cat>.jsonsolo render + qa clean
6. integrateleadsoundtrack, stems, report, tracemaster gate (+-0.5 LU, <= -1.5 dBTP)
7. QA + listeningleadout/qa/qa.json, earshot timeline / sheet / critiqueno qa fail
8. critique (5 lenses, parallel, read-only)criticsranked issues + tested operations
9. fixONE fixerthe designqa: no regression
10. master, credits, muxleadCREDITS.md, description text, the filmcredits exit 0, lag 0

The detail of every step, the roles and what each critic measures: references/process.md. Every sub-agent prompt is a ready-to-fill brief in templates/prompts/.

0. Cue list from the picture

Every sound sits on a frame the picture code computes: a contact frame, a pop-in's 50 % frame, a move's velocity peak, a riser's hit, the frame the wordmark becomes readable. Cinetic films already have out/cues.json (export-cues.ts); for anything else write the same format (templates/cues.json) from the timeline constants. Stable ids (act:thing:n) let rules match classes of action with a regex.

1. Brief

Copy templates/SOUND_BRIEF.md to audio/SOUND_BRIEF.md: concept (palette, the music's arc, places), the picture map (every cue: what is on screen, the sound need), ambience zones, allowed licences, quality bar, file layout. It is the contract every sub-agent gets verbatim. Pick the brand's personality row (references/sound-design.md §3).

2. Sourcing, per category (templates/prompts/sourcing.md)

Typical launch-film categories: ui (clicks, taps, toggles, pops), keyboard, motion (whooshes, risers), impacts (reveal hits, the logo), ambience, music; a character film adds foley, its worlds, its objects. Freesound (CC0 / CC BY; HQ preview cdn.freesound.org/previews/<id//1000>/<id>_<user>-hq.ogg), Mixkit (WAV assets.mixkit.co/active_storage/sfx/<id>/<id>.wav), composer libraries for music; licences read on each item's own page (references/licences.md); polite sequential downloads; every file measured:

{{PY}} -I <skill>/scripts/analyze.py audio/assets/ui/* --png out/audio-review/ui --out out/audio-review/ui.json
{{PY}} -m earshot realness audio/assets/ui/                  # gate: "real or pro-produced" (re-check trims: --start --end)
{{PY}} -m earshot rank "a single crisp trackpad click" audio/assets/ui/ --top 5
{{PY}} -m earshot match <file> "a soft cork pop" --alts "a gunshot" "a balloon burst"
{{PY}} -m earshot find <long take> "a single mechanical key press" --top 8   # trims; skip any marked head cut / tail cut

3. Licence audit (templates/prompts/licence_audit.md)

The auditor records what each page says (licence_seen, licence_confirmed) in audio/assets/manifests/audit.json; the script checks the rest (classification, ids vs URLs, files decode, durations, credit lines):

{{PY}} -I <skill>/scripts/audit.py --root . --report out/qa/mix_report.json [--fetch]

Allowed: CC0, public domain, CC BY 2.0-4.0, Mixkit free licences, Pixabay. Forbidden: NC, ND, SA, Sampling+, personal, custom, disputed. Unverified = blocked.

4. Music (templates/prompts/music_supervisor.md)

One licensed track whose structure fits the film. Write the arc per film bar (templates/arc.json), then:

{{PY}} -I <skill>/scripts/arrange.py audio/assets/music/<track> --film-bpm 120 --arc audio/arc.json --out out/audio-review/music/arrange.json

It fits the tempo, moves the grid onto the measured attacks (beat trackers lag 20-50 ms), proposes the downbeat phase, anchors the drop film bar on the strongest drop candidate and drafts segments at bar lines (a ready-to-paste music block). The downbeat is the weak spot: when it prints LOW confidence (on one of the two tracks it was tested on it was half a bar off), decide between the two printed grids from the first note, the section entrances and the chord changes in the bar table, and re-run with --phase N. Then edit by judgement: harmony continues across each splice, the drop's downbeat on the hero frame, the final chord on the logo, tail_fade into the end.

5. Design fragments, per category (templates/prompts/designer.md)

audio/design/<category>.json with samples (trims), slices (cut a take of many hits into single hits), pools, rules on cue events, free placements, ambience beds, the music block. Reference with every key and real examples: references/design-format.md; a complete launch-video example: templates/design_fragment.json (its file names are placeholders such as mk-0000_mouse-click.wav: it renders once each one is replaced by a real recording from your manifests; mix.py stops and lists the missing files until then). Verify alone:

{{PY}} -I <skill>/scripts/mix.py --only ui --dump out/audio-review/ui/dump        # every trim as WAV + numbers
{{PY}} -I <skill>/scripts/mix.py --only ui --trace out/audio-review/ui/adds.json --out out/audio-review/ui/solo.wav
{{PY}} -I <skill>/scripts/qa.py --only ui --report out/audio-review/ui/solo_report.json --stems out/audio-review/ui/solo_stems --trace out/audio-review/ui/adds.json --out out/audio-review/ui/qa.json
{{PY}} -m earshot timeline out/audio-review/ui/solo.wav --cues out/cues.json

6-7. Integrate, QA, listen

{{PY}} -I <skill>/scripts/mix.py --root . --design audio/sounddesign.json --cues out/cues.json --trace out/qa/adds.json
{{PY}} -I <skill>/scripts/qa.py --layers                      # clicks, edges, audibility, harshness, loudness, coverage, sync, density
{{PY}} -I <skill>/scripts/qa.py --listen --realness --video out/film.mp4   # + earshot timeline, sheet, critique, realness
{{PY}} -m earshot critique out/audio/soundtrack.wav --video out/film.mp4    # scorecard vs professional launch films
{{PY}} -m earshot sheet out/audio/soundtrack.wav -o out/qa/sheet.png --video out/film.mp4 --cues out/qa/cues_sounded.json

qa.py ties every finding to the rule and sample that caused it (the trace). It is usable without the models; --listen adds earshot's transcript (out/qa/qa_timeline.txt), annotated sheet and scorecard.

8-9. Critique and fix

Five read-only critics in parallel, each with its prompt: critic_sync.md, critic_edges.md, critic_masking.md, critic_tonal.md, critic_director.md. Each tests its fixes as a variant in its own folder:

{{PY}} -I <skill>/scripts/variant.py --ops out/audio-review/critic_tonal/ops_v1.json --out out/audio-review/critic_tonal/v1 --render --qa

and returns ranked issues with exact operations and before -> after numbers. Then ONE fixer (fixer.md) merges the operations, resolves conflicts, checks the merged variant against the previous qa.json, and applies it (variant.py --apply, originals backed up). Acknowledge confirmed deliberate exceptions with "qa_ok": "<reason>". At least one round; a second when levels or the music edit changed.

10. Master, credits, mux

mix.py masters with master.py (-14 LUFS, true-peak limiter, ceiling 0.77 linear; gate +-0.5 LU and <= -1.5 dBTP).

{{PY}} -I <skill>/scripts/audit.py --root . --report out/qa/mix_report.json            # exit 0
{{PY}} -I <skill>/scripts/credits.py --root . --design audio/sounddesign.json --audit audio/assets/manifests/audit.json
node <skill>/scripts/mux.mjs --video out/film.mp4 --audio out/audio/soundtrack.wav --out out/film_sound.mp4
{{PY}} -m earshot timeline out/film_sound.mp4 --cues out/qa/cues_sounded.json          # the finished file, heard

CREDITS.md + out/CREDITS_description.txt (paste into the video description: CC BY credits are required there). mux.mjs stream-copies the picture and cuts the AAC audio to the picture's duration.

Launch videos: the sound map

picturesoundsits on
cursor moves, hovers, scrolls, progress, streaming textnothing (the music carries it)
click / tapONE real click voice for the film, press + release ~85 ms later, same level every timethe press frame
typingone real keyboard, sliced; <= ~12 keys/s, one per word above ~25 chars/s; music dips 6-10 dBeach sounded character
a card / chip / badge appearsa soft real pop or tick, climbing across a run50 % of its travel
toggle, lock-in, a counter's final valuea real latch / click / crisp tickthe contact / lock frame
camera-scale move, whip, zoom (~2 per film)a real swish, apex on the velocity peakvelocity peak
hard cutsnothing
tension into the revealthe music's build, or a real riser ending 30-250 ms before the hitthe hit
hero revealthe music's DROP (edit the track so its downbeat lands here) + optionally one real impactthe frame
logo / lockupmusic stops on a bar line or filters down, 0.2-0.7 s near-silence, ONE soft note in key, tail to silencethe frame the wordmark reads

Levels: -14 LUFS, true peak <= -1 dBTP after AAC, LRA 5-9 LU, the loudest moment on the drop (30-60 % in), the logo 8-20 dB under it, about 5 designed effects per 10 s, effects dry and centred. Measured norms and the cheap tells: references/sound-design.md.

Tools

needtool
measure recordings (format, floor, bandwidth, onsets, spikes, tempo / key) + spectrogram PNGsscripts/analyze.py
hear recordings: real vs synthesized, what it sounds like, best match, best take inside a long file{{PY}} -m earshot realness / describe / match / rank / find / compare / ab
levels / brightness / onsets of one file or a stretch of it (--start --end){{PY}} -m earshot measure (Python: from earshot import api; api.measure(...), likewise api.find, api.realness ...)
licence + file auditscripts/audit.py (policy in scripts/licences.py)
music grid, downbeats, bar-line edit draftscripts/arrange.py
render the design (+ solo --only, --dump trims, --trace for QA)scripts/mix.py
master and loudness measurementscripts/master.py (--measure)
objective QA tied to placementsscripts/qa.py (--layers, --listen, --realness)
critic variants, the fixer's applyscripts/variant.py
credits for CREDITS.md and the video descriptionscripts/credits.py
put the soundtrack on the picturescripts/mux.mjs
listen to a whole mix / film; annotated picture; launch-film scorecard{{PY}} -m earshot timeline / sheet / critique

Files

audio/SOUND_BRIEF.md                 the contract              (templates/SOUND_BRIEF.md)
audio/assets/<category>/             downloaded recordings     (<source>-<id>_<slug>.<ext>; never commit or publish them)
audio/assets/manifests/<cat>.json    one entry per recording   (templates/manifest_entry.json)
audio/assets/manifests/audit.json    licence audit             (templates/audit_entry.json)
audio/sounddesign.json               top level: includes, buses, master   (templates/sounddesign.json)
audio/design/<category>.json         one fragment per designer             (templates/design_fragment.json)
out/cues.json                        the picture's cue events              (templates/cues.json)
out/audio/soundtrack.wav, stems/     the master and its stems
out/qa/                              mix_report.json, adds.json, cues_sounded.json, master.json, qa.json
out/audio-review/                    per-category and per-critic work, variants, dumps (the audit trail)
CREDITS.md, out/CREDITS_description.txt

References

  • references/process.md: roles, steps, what each critic measures, thresholds and their sources, variants, rounds.
  • references/design-format.md: every design key, defaults, processing order, outputs, real examples.
  • references/sound-design.md: launch-video and film sound rules, levels, sync, variation, tuning, selection, cheap tells.
  • references/licences.md: allowed / forbidden, verification per site, attribution, Content ID.
  • references/troubleshooting.md: errors and fixes.
  • Cinetic films: docs/INTEGRATION.md in the earshot repo (how the cue file, timeline and review loop connect).

FAQ

What does the real-sound skill do?

Build premium, realistic soundtracks for code-made videos and animations from real licensed recordings - launch films, product and feature videos, UI walkthroughs, logo stings, explainers, trailers and animated shorts made with Remotion, HyperFrames, three.js, GSAP or any renderer. Use this whenever a video or animation needs sound design, SFX, foley, ambience, music, a soundtrack, a score, UI click / whoosh / riser / impact / logo-sting sounds, or a music edit to picture; whenever a synthesized or "random" sounding soundtrack must be replaced with real recordings; or when the user asks to source, license, credit, mix, master, critique or mux audio for a film. It covers cue lists from the picture, sourcing from Freesound / Mixkit / composer libraries with licence checks, a music edit at bar lines, a JSON sound design rendered by a deterministic mixer, measured QA (clicks, masking, harshness, sync, loudness) plus earshot listening, a multi-agent critique, mastering, credits and the mux.

How do I install real-sound?

Run npx skills add https://github.com/leonxlnx/earshot --skill real-sound in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/real-sound/ (personal) or .claude/skills/real-sound/ (project).

Which AI agents can use real-sound?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is real-sound safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains real-sound?

It is published by leonxlnx in leonxlnx/earshot. It has 122 recorded installs.

More from leonxlnx/earshot

View all →

earshot

leonxlnx/earshot

Open the skill to read its SKILL.md instructions.

132 installs

Popular media & creative skills

View category →

hyperframes

heygen-com/hyperframes

Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.

Media & Creative1.2M installs

media-use

heygen-com/hyperframes

Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.

Media & Creative1.1M installs

hyperframes-registry

heygen-com/hyperframes

About 450 ready-made HyperFrames blocks and components installed as editable source - transitions, overlays, titles, kinetic type, captions, charts, map overlays, 3D, camera moves. Use it before hand-building any named visual (CRT scanlines, glitch, film grain, a chart); also for hyperframes add and catalog.

Media & Creative1M installs

hyperframes-creative

heygen-com/hyperframes

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use hyperframes-animation.

Media & Creative916.5K installs

ai-video-generation

101-skills/superpowers

Generate AI videos with Google Veo, Seedance 2.0, HappyHorse, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, reference-to-video, video editing, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative, seedance, happyhorse

Media & Creative881.5K installs

ai-image-generation

101-skills/superpowers

Generate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stable diffusion, generate image, ai art, midjourney alternative, dall-e alternative, text2img, t2i, image generator, ai picture, create image with ai, generative ai, ai illustration, grok image, gemini image, gpt image, openai image, chatgpt image

Media & Creative880.3K installs