Guide
Add sound effects on the beat
Hits go on the frame where something lands, whooshes start early, and the music's tempo tells you where the beats are. Here is the method, with numbers.
Updated
To make sound effects feel locked to the picture, start each hit on the exact frame where the motion lands, start whooshes and risers early so their loudest moment falls on the cut, and place cuts on the music's beats, which you can calculate from the tempo: one beat lasts 60 divided by the BPM, in seconds.
The rest is restraint: one sound per real event, sensible levels, and a check on phone speakers. The method below works in HyperFrames and in any editor.
Make a cue list
Before choosing sounds, write down every visual event with its time. This is a cue list, and it turns "add some sound effects" into a short list of decisions:
| Time | Event | Sound | Volume |
|---|---|---|---|
| 0.30 s | Word 1 slams in | short impact | 0.6 |
| 0.95 s | Word 2 slams in | short impact | 0.6 |
| 1.60 s | Word 3 lands, frame punches in | bigger impact | 0.8 |
| 4.15 s | Words drop out | fast whoosh | 0.4 |
Give the biggest hit to the most important moment, here the last word of the hook.
Pick one sound per event
Match the sound to what the eye sees:
- Something arrives (a word, a card, a logo): an impact, a pop or a click.
- Something moves fast across the screen: a whoosh or a swipe that travels the same direction.
- Something is about to happen: a riser that ends on the reveal.
- A number counts up: a counter roll that starts with the count and a ding on the final value.
- A result or a win: one reward sound, such as a cash ding or a short chime.
The sound library lists every effect in the pack by category with what it is for.
Place hits on arrivals and whooshes before them
Hits are loudest at the very start of the file. Start them on the frame where the thing arrives, not where it starts moving: a word that animates in from 0.30 to 0.55 s gets its hit at 0.55 s if it lands there, or at 0.30 s if it slams in from the first frame.
Whooshes and risers work the other way. They build and peak late, so start them early by their lead time. A short whoosh needs about 0.2 s of lead; a 2-second noise riser starts 2 s before the cut and ends exactly on it, never after.
Two details make it feel professional:
- Silence before a reveal. Cut everything for 0.1 to 0.3 s right before the big moment, then hit.
- Spacing. Two hits closer than about 0.08 s smear into one sound. Give each its own moment.
Line it up with the music
Music has a grid, and cuts that land on it feel intentional. The math is simple:
- One beat lasts 60 / BPM seconds. At 124 BPM: 60 / 124 = 0.48 s.
- One bar is four beats. At 124 BPM: 1.94 s.
- A cut every two beats at 124 BPM lands every 0.97 s.
Start the music on a downbeat at 0 s (or note its offset), then place cuts and big hits on multiples of the beat. In a HyperFrames project, npx hyperframes beats finds the music track and writes its beat times to a file, so Claude Code can snap events to them. Beat detection can report double or half tempo on some tracks; if the track's name or notes state the BPM, trust that.
Where the music already has a strong hit, let the beat be the effect and skip the extra sound.
Set the levels
Start from these volumes (1.0 is the file as it is) and adjust by ear:
| Layer | Starting volume |
|---|---|
| Voice or talking head | 1.0 |
| Music on its own | 0.7 to 0.85 |
| Music under a voice | 0.18 to 0.3 |
| Big effects: slam, logo, trailer hit | 0.5 to 0.7 |
| Small effects: pop, click, tap | 0.25 to 0.4 |
| Any effect while someone speaks | 0.25 at most |
The order to remember: music under, effects on top, voice above everything. In an editor that shows decibels, start music about 14 dB below the voice.
In HyperFrames, each sound is one tag with an id, a start time and a volume:
<audio id="hit-3" src="sfx/impact-slam.wav" data-start="1.60" data-volume="0.8"></audio>
Every <audio> needs an id; without one it is left out of the mix.
Check the mix
Render a draft and listen on a phone speaker, because that is how many people will hear it. Then measure the whole mix:
ffmpeg -i renders/final.mp4 -af ebur128=peak=true -f null -
Aim for about -14 LUFS integrated loudness with the true peak below -1 dBTP (see LUFS and true peak). If it sounds harsh, lower the effects before the music.
Shortcuts
The free starter kit includes five sound effects (a pop, two whooshes, a coin and a cash ding) and a template whose count-up already has its sounds placed. In the full pack, the sfx-pass skill reads a finished project's timeline, writes a cue list like the one above and places the sounds for you, from a library of 400 effects in 17 categories.
Questions
How many sound effects should a 10-second reel have?
Fewer than you think. One per real visual event, and about two per second at the very most (four is a hard ceiling). In a 10-second reel that usually means a handful of well-placed sounds on top of the music.
Why do my sound effects feel late?
Usually because they start when the motion starts instead of when it lands, or because a whoosh starts on the cut instead of before it. Move hits to the arrival frame and start whooshes and risers early by their lead time.
How do I find the BPM of a music track?
Check the track's name or notes first; every track in the Motion Cheat Code pack ends with its BPM. Otherwise ask Claude Code to run npx hyperframes beats in the project; it finds the music track and writes its beat times to a file Claude Code can read.