real-sound
Skill2.7k starsChanged 10 days agoMITView on GitHub
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.
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 48
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 …
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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
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
| step | who | output | gate |
| 0. cue list | lead | out/cues.json | sync frames computed from the picture code |
| 1. brief | lead | audio/SOUND_BRIEF.md | every cue has a sound need (or "nothing") |
| 2. sourcing (per category, parallel) | sourcing agents | audio/assets/<cat>/, manifests | each 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 audit | auditor | audit.json | audit.py exit 0 for what the film uses |
| 4. music edit | music supervisor | audio/design/music.json | grid verified, drop on the reveal, splices clean |
| 5. design fragments (per category, parallel) | designers | audio/design/<cat>.json | solo render + qa clean |
| 6. integrate | lead | soundtrack, stems, report, trace | master gate (+-0.5 LU, <= -1.5 dBTP) |
| 7. QA + listening | lead | out/qa/qa.json, earshot timeline / sheet / critique | no qa fail |
| 8. critique (5 lenses, parallel, read-only) | critics | ranked issues + tested operations | |
| 9. fix | ONE fixer | the design | qa: no regression |
| 10. master, credits, mux | lead | CREDITS.md, description text, the film | credits 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 cut3. 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.jsonIt 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.json6-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.jsonqa.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 --qaand 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, heardCREDITS.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
| picture | sound | sits on |
| cursor moves, hovers, scrolls, progress, streaming text | nothing (the music carries it) | |
| click / tap | ONE real click voice for the film, press + release ~85 ms later, same level every time | the press frame |
| typing | one real keyboard, sliced; <= ~12 keys/s, one per word above ~25 chars/s; music dips 6-10 dB | each sounded character |
| a card / chip / badge appears | a soft real pop or tick, climbing across a run | 50 % of its travel |
| toggle, lock-in, a counter's final value | a real latch / click / crisp tick | the contact / lock frame |
| camera-scale move, whip, zoom (~2 per film) | a real swish, apex on the velocity peak | velocity peak |
| hard cuts | nothing | |
| tension into the reveal | the music's build, or a real riser ending 30-250 ms before the hit | the hit |
| hero reveal | the music's DROP (edit the track so its downbeat lands here) + optionally one real impact | the frame |
| logo / lockup | music stops on a bar line or filters down, 0.2-0.7 s near-silence, ONE soft note in key, tail to silence | the 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
| need | tool |
| measure recordings (format, floor, bandwidth, onsets, spikes, tempo / key) + spectrogram PNGs | scripts/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 audit | scripts/audit.py (policy in scripts/licences.py) |
| music grid, downbeats, bar-line edit draft | scripts/arrange.py |
render the design (+ solo --only, --dump trims, --trace for QA) | scripts/mix.py |
| master and loudness measurement | scripts/master.py (--measure) |
| objective QA tied to placements | scripts/qa.py (--layers, --listen, --realness) |
| critic variants, the fixer's apply | scripts/variant.py |
| credits for CREDITS.md and the video description | scripts/credits.py |
| put the soundtrack on the picture | scripts/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.txtReferences
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.mdin the earshot repo (how the cue file, timeline and review loop connect).
Trending
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about Leonxlnx/earshot
- Suck Less | Tym Rabchuk“Claude can't hear your videos. This free tool gives it ears.”YouTube · Oct 26, 2026 · 446 views
- Alex Hitt“Earshot GitHub Explained: Local Audio Analysis and Procedural Sound for Coding Agents”YouTube · Oct 19, 2026 · 396 views
- Paul Borg“How I Make Insane Motion Graphics With Claude Code”YouTube · Oct 23, 2026 · 327 views
- ai.panorama“Como fazer a IA acertar o som do seu vídeo”YouTube · Oct 25, 2026 · 326 views
- The Other Tab“Codex Made This Sound Effect. Here’s the GitHub Tool.”YouTube · Oct 27, 2026 · 274 views
The biggest 5 of 43 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 43
Talked about on YouTube, GitHub, the web and Bluesky (43 times).
On YouTube · 18
- Oct 26, 2026Claude can't hear your videos. This free tool gives it ears. — Suck Less | Tym Rabchuk446 views
- Oct 19, 2026Earshot GitHub Explained: Local Audio Analysis and Procedural Sound for Coding Agents — Alex Hitt396 views
- Oct 23, 2026How I Make Insane Motion Graphics With Claude Code — Paul Borg327 views · 3 comments
- Oct 25, 2026Como fazer a IA acertar o som do seu vídeo — ai.panorama326 views
- Oct 27, 2026Codex Made This Sound Effect. Here’s the GitHub Tool. — The Other Tab274 views
13 more on YouTube
- Oct 24, 2026Earshot: give your coding agent ears (free, open source) — The Daily Commit135 views
- Oct 25, 2026earshot - free open source tool — RepoDrop100 views
- Oct 22, 2026earshot: Give AI ears for code — Dail Finds Dev | Repos, Tools, Sites96 views
- Oct 21, 2026【earshot】Claude Codeに音を聞かせてみた→動画の音ズレを時刻つきで当てた・場面探しは12問中7問 — さつきのOSS研究室55 views · 1 comment
- Oct 19, 2026Claude Code can make a whole film in code. It just can't hear it. Earshot fixes that. #Shorts — AIwithBibek52 views · 2 comments
- Oct 21, 2026Your AI Can Finally HEAR 👂 (free open-source tool) #shorts — Myth & Machine43 views
- Oct 18, 2026Your Coding Agent Can't Hear. Earshot Fixes That (Free, CPU-Only) — Hypeless Ai43 views
- Oct 17, 2026Give your AI coding agent ears with Python 🎧 — LookOnThisGit38 views · 1 comment
- Oct 19, 2026MiniMax M3.1 Flash, Exa 3.0 & earshot: AI Agents Go Cheaper, Faster, Sensory | AX Trend Deep Dive — I HAVE ADHD AND FOMO27 views · 1 comment
- Oct 22, 2026Leonxlnx/earshot — Ears for coding agents. 🟡 Watchlist #Shorts — ForkCast25 views
- Oct 18, 2026Sound Judgment | ClawFactory Night Shift — Trollefsen Labs12 views
- Oct 24, 2026earshot on GitHub: Want to give your AI coding agents the ability to hear? #Shorts — Ai & Open Source News10 views · 1 comment
- Oct 20, 2026Deaf No More: earshot Gives Coding Agents Ears — I HAVE ADHD AND FOMO10 views · 1 comment
On GitHub · 12
- Oct 28, 2026Sound check: earshot listening pass (--ears) — guspliffy/viral-engine0 reactions
- Oct 26, 2026Promo kit — week of 26 Oct 2026 — pahadiji/star-catcher0 reactions
- Oct 26, 2026Trending radar 2026-W44 — xabierlameiro/the-last-dance0 reactions
- Oct 23, 2026Explore earshot: let the agent hear drafts and check sync — rheos/secondunit-videos0 reactions · 1 comment
- Oct 22, 2026agent-skills.github.leonxlnx.earshot: 0.2.0 → 0.4.0 — sudosubin/agents.nix0 reactions
7 more on GitHub
- Oct 19, 2026Leonxlnx 'earshot' — 코딩 에이전트용 오디오 리뷰·사운드 생성 툴킷, CPU 온리·MCP 지원, 공개 4일 만에 1,100+스타 (10/15, GitHub) — roomedia/ax-trend0 reactions
- Oct 19, 2026docs(resources): add Earshot audio and sound design tools — benjoox/awesome-ai-motion-graphics0 reactions
- Oct 19, 2026Trending radar 2026-W43 — xabierlameiro/the-last-dance0 reactions · 1 comment
- Oct 17, 2026cinetic 1.1: calm pace and copy in fragments by default; sound from earshot kits — Leonxlnx/cinetic0 reactions · 1 comment
- Oct 17, 2026P3-11: sound design v2 and model-free ears for edits — nilpntr/content-fabrique0 reactions
- Oct 16, 2026agent-skills.github.leonxlnx.earshot: 0.1.0 → 0.2.0 — sudosubin/agents.nix0 reactions
- Oct 16, 2026agent-skills.github.leonxlnx.earshot: init at 0.1.0 — sudosubin/agents.nix0 reactions
On the web · 10
- Oct 29, 2026Claude ตัดวิดีโอสวยแต่เสียงแปลก? 3 เครื่องมือที่ช่วยให้ agent ได้ยินเสียงจริง — dev.to
- Oct 28, 2026earshot: give your coding agent ears for sound | AgentsUses — agentsuses.com
- Oct 24, 2026How to give your coding agent ears with earshot (CPU-only MCP server) — dev.to
- Oct 22, 2026Earshot Explained: Giving Claude Code Ears with a CPU-Only Audio MCP Server | Coderefer — coderefer.com
- Oct 20, 2026Earshot: An Open-Source Toolkit That Lets Coding Agents Hear Audio — dev.to
5 more on the web
- Oct 20, 2026Earshot: CPU Audio Tools for AI Coding Agents — igprod.net
- Oct 17, 2026What is earshot? Give Claude Code ears to hear and make sound — eraofminds.com
- Oct 17, 2026earshot gives AI coding agents local audio perception and procedural sound synthesis - JuryPress — pixapps.ai
- Oct 16, 2026How to Give Coding Agents Audio Analysis and Sound Synthesis with Earshot — aiezz.com
- Oct 15, 2026Give your coding agent ears: a hands-on guide to earshot | AI Frontier Post — aifrontierpost.com
On Bluesky · 3
- Oct 20, 2026earshot : une boîte à outils qui donne des oreilles à vos coding agents, pour qu'ils décrivent, évaluent et critiquent le son d'un fichier… — @camilleroux.com10 likes and reposts · 1 reply
- Oct 21, 2026Packages I bookmarked this week glassyui.com by @alexburlis.com github.com/Leonxlnx/earshot/ by Leonxlnx diip3sh.github.io/feel/ by… — @sahildave.com4 likes and reposts · 1 reply
- Oct 21, 2026Ears for coding agents: open‑source AI lets AI “hear,” review, and make sound using only CPU. #technology #news #opensource… — @todaystopainews.bsky.social3 likes and reposts
In this repositoryOne other file it gives its agents.
- earshotSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

