ElevenLabs sound effects
Text in, sound out: "old wooden door creaking open slowly", "songbirds in a garden at
dawn, distant", "cartoon pop". Use it whenever a sound should be realistic. Placement,
panning, looping and levels follow guide-add-sound-effects.
1. Is the model available?
models("sound effects") and models("elevenlabs"). Look for an ElevenLabs
sound-effects model (on fal it is fal-ai/elevenlabs/sound-effects/v2, about $0.002 per
second of audio). If hn4a lists it, describe it and call it with run like any model:
billing, uploads, the call log and the person's project all work as usual.
If hn4a doesn't list it, say so plainly and choose another route from
guide-add-sound-effects (the person's own sound files, sound generated with the shot,
or local synthesis). Don't present synthesized sound as a recording, and don't work
around hn4a to reach the model.
Video models' built-in sound (H3 Max, Seedance, Kling, Veo) is not a substitute when specific effects matter: measure it before relying on it. A test cut asked for a kettle whistle, birdsong and rain; the audio came back as low drones (spectral centroid 200-600 Hz, no whistle or chirps).
2. The request
The model's fields (check describe for the exact names and ranges):
| Field | Range | Notes |
|---|---|---|
text | required | What the sound is: its source, distance and space |
duration_seconds | 0.5-22 on fal (30 on ElevenLabs directly) | Set it for spot effects; leave out to let the model choose |
prompt_influence | 0-1, default 0.3 | 0.5-0.7 for a specific sound, 0.2-0.3 for varied ambience takes |
loop | bool | true for ambience beds that must loop seamlessly |
Ask for MP3 or WAV output and convert to 48 kHz WAV with ffmpeg before mixing. Price a
batch with run(..., estimate: true) and tell the person before running more than a
few.
3. Prompting
- Describe the sound, not the scene: source + action + material + space + distance. "Heavy oak door creaking open slowly in a quiet stone hallway, close" beats "spooky castle". "Small songbirds chirping in a garden, distant, early morning, no wind".
- One sound per generation. Layer in the mix, not in the prompt.
- Spot effects: set
duration_secondsto the moment's length plus a little tail. - Ambience:
loop: true, 10-20 s, then loop it under the scene. - Make 2-3 takes of anything important (
prompt_influence~0.3), put them on a review page with the picture, and let the person pick by ear. One before many.
4. Cue list
Build the cue list from the picture before generating: a 2 fps contact sheet of the cut,
then the frame of each event (door starts to move, glass hits the floor, toast pops).
One line per sound: time, prompt, duration, pan. Keep it in audio/sfx/cues.md so a
later pass regenerates the same list.
5. Into the cut
Name takes like hn4a does (door_a.wav, door_b.wav, never reusing a letter) in
audio/sfx/. Place, pan, loop and level per guide-add-sound-effects, mixing in Python
or listing each file as its own entry in a compose spec's audio with start at its
cue. You can't hear: open a review page with the cut, each sound and its moment in the
row's body, send the MP4 into the chat as well, and ask the person to listen.


