Skip to content
Back to skills

Sfx Sync

ASecurity

Design, synthesize and place sound effects so each one lands on the frame the eye sees and is heard on laptop and phone speakers: UI clicks, typing, taps, sends, arrivals, whooshes into cuts, risers, impacts, ticking under suspense. Use when someone says a sound is late or early, "I can't hear the typing", "the landing sound is missing", "sounds overlap", "too many whooshes", wants UI foley for a product video, or needs effects generated in code. Verifies timing with an attack/peak report aga...

  • 2 stars
  • 0 votes
  • 1 copy
  • 3 views
  • Added October 22, 2026
designpythonrustbashgit

Works with

  • cli

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned October 22, 2026

npx -y skills add Meraj-08/motion-studio-skills --skill sfx-sync --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sfx Sync?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Sfx Sync
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/meraj-08-sfx-sync/badge)](https://www.skillsdirectory.com/skills/meraj-08-sfx-sync)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: sfx-sync
description: >
  Design, synthesize and place sound effects so each one lands on the frame the eye sees and is heard on laptop and
  phone speakers: UI clicks, typing, taps, sends, arrivals, whooshes into cuts, risers, impacts, ticking under
  suspense. Use when someone says a sound is late or early, "I can't hear the typing", "the landing sound is missing",
  "sounds overlap", "too many whooshes", wants UI foley for a product video, or needs effects generated in code.
  Verifies timing with an attack/peak report against the picture's event table.
license: MIT
compatibility: Needs ffmpeg and Python 3 with numpy.
metadata:
  author: Md Meraj Alam
  version: "1.0.0"
  repository: https://github.com/Meraj-08/motion-studio-skills
---

# SFX sync

Every event gets one sound; you can hear every one; none of them stack. Where a sound sits in time matters more
than which sample it is.

## Place by the point the ear hears

| Sound | Align its… | to |
|---|---|---|
| clicks, taps, keys, state changes | attack | the frame (0 ms) |
| hero hits (success, landing, reveal) | attack/peak | the frame |
| whooshes into a cut | peak | 100–250 ms **before** the cut (the ear cues the eye) |
| arrivals (cards, a phone, a character landing) | attack | the **settle**, ~250 ms after the move starts |
| risers | end | the hit, with an 80 ms breath before it |

Offset = picture frame − the audible point's position inside the file. Measure both; never trust a cue sheet.

## Workflow

1. Take the frames from `docs/EVENTS.md`. Confirm each with a frame strip (`review-sheets.sh --strip t`): a badge
   logged at 42.867 s turned out to flip at 42.833 s.
2. Choose or make the sound: real recorded foley for typing and taps where possible; otherwise
   `scripts/sfx-synth.py` (seeded variation per press, so typing never repeats one sample).
3. Place it, then check: `scripts/audio-check.py sfx.wav --events 12.9:send,42.833:merged` → attack or peak within
   ±20 ms, and at least half its energy in 400 Hz–4 kHz (what laptops and phones play).
4. Check overlaps: two effects audible at once within 12 dB of each other is clutter; keep one.
5. Listen once on laptop speakers and once on a phone.

## Generate effects

```bash
python scripts/sfx-synth.py sfx.wav --cue 10.2:thock --cue 10.34:thock --cue 12.9:send \
  --cue 14.28:pluck=D5 --cue 15.57:pluck=G5 --cue 16.72:pluck=B5 --cue 42.833:impact --cue 66.9:whoosh=0.8
python scripts/sfx-synth.py --gallery sfx-gallery/      # audition every voice
```

## Rules reviewers confirmed

- Every event needs a sound that sits above the music; the music ducks for it. One per event.
- Warm, varied, soft. No bright or whistly effects, no odd high tones, no cartoon boings on a mascot.
- Typing must pop: lower the bed under it, use real keyboard or phone recordings cleaned of music, and only on
  frames where characters appear.
- Ticking on the music's beats under a failure, speeding up; a distinct merge click; the success sound not too loud.
- Offer 3–4 landing or step options in a 10 s sample before choosing.
- If a sound effect gets cut off at the end, extend the picture 1–2 s.

## References

- [references/placement.md](references/placement.md): audibility, the sounds reviewers asked for, placement details.
- [references/synthesis-recipes.md](references/synthesis-recipes.md): DSP recipes (keys, clicks, impacts, risers, ticks, sax, bass, brushes), arrangement ideas, ElevenLabs notes.

## Scripts

| Script | Use |
|---|---|
| `scripts/sfx-synth.py out.wav --cue t:type[=param][:dB]` | Synthesize effects on exact times, aligned by attack, peak or end. |
| `scripts/audio-check.py sfx.wav --events t:label[:pre]` | Attack and peak vs the frame, and 400 Hz–4 kHz share. |
| `scripts/picture-events.py film --region x,y,w,h` | The exact frame a UI element changes. |

Files in this skill

  • SKILL.md3.8 KB
  • evals/evals.json1.7 KB
  • references/placement.md3.3 KB
  • references/synthesis-recipes.md4.8 KB
  • scripts/audio-check.py8 KB
  • scripts/picture-events.py5.3 KB
  • scripts/sfx-synth.py9.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.