calesthio/elevenlabs-sound-effects
Produce, direct, generate, QA, and integrate non-speech audio with ElevenLabs Text to Sound Effects / Sound Effects API. Use when an agent needs custom SFX, foley, ambience, loops, stingers, impacts, UI sounds, musical one-shots, trailer braams, or sound-design layers for video, ads, social edits, games, apps, podcasts, audiobooks, or interactive media using ElevenLabs.
npx skills add https://github.com/calesthio/generative-media-skills --skill elevenlabs-sound-effects
Use this skill to turn a production need into a usable sound asset: a clear sound-design brief, an ElevenLabs prompt, API settings, custody metadata, and QA notes that make the audio easy to place in an edit, game, app, or ad.
The subject is non-speech audio. Use a text-to-speech or voice skill for narration, dialogue, synthetic voices, dubbing, or voice cloning. Use a music-generation skill when the deliverable is a full song, score, or long-form bed. ElevenLabs Sound Effects can create short musical elements such as drum loops, brass stabs, risers, pads, and stingers, but do not treat it as a replacement for a full music composition workflow.
Treat this section as volatile. It was verified from official ElevenLabs documentation on 2026-07-10.
POST https://api.elevenlabs.io/v1/sound-generation.text is required; duration_seconds, prompt_influence, loop, and model_id are optional.eleven_text_to_sound_v2.loop is documented as available only for eleven_text_to_sound_v2.duration_seconds: null or omitted lets ElevenLabs choose duration from the prompt.prompt_influence ranges from 0 to 1 and defaults to 0.3. Higher values follow the prompt more literally with less variation; lower values allow more creative variation.output_format is a query parameter formatted as codec_sample_rate_bitrate, e.g. mp3_44100_128. Higher-quality formats may require higher subscription tiers; the API docs state MP3 192 kbps requires Creator or above, and PCM 44.1 kHz requires Pro or above.$0.120 per minute and says Sound Effects are metered per generation. Another ElevenLabs pricing page describes approximate credit cost as 200 credits per generation; reconcile against the user’s actual plan before budget-sensitive batch work.Official sources:
Use ElevenLabs Sound Effects when the asset can be described as an acoustic event, a texture, a short sequence, a loopable bed, or a one-shot:
Choose another route when:
loop: true for ambience, room tones, machinery beds, weather, drones, menu music-like textures, and any asset intended to repeat.prompt_influence around 0.25-0.4 for creative exploration, 0.45-0.7 for planned production assets, and 0.75-1.0 only when literal compliance matters more than pleasant variation.mp3_44100_128 for quick previews or social drafts; choose PCM/WAV-style output when available for editing, game engines, archival masters, or heavy post-processing.Write prompts as production notes, not merely labels. A strong prompt usually specifies:
Useful pattern:
[source/action], [materials], [environment and perspective], [time structure], [mix/quality constraints], [emotional or functional role].
Do not over-pack prompts with mutually incompatible cues. If a sound must be both realistic foley and cinematic hyperbole, generate separate layers: one realistic transient, one designed tail, one sub impact.
For foley, emphasize material, contact, weight, and microphone distance:
Close-mic foley of heavy leather gloves gripping and twisting a dry metal valve, small squeaks and gritty friction, no music, no voice, realistic studio recording.
For ambience, emphasize space, density, loopability, and foreground events:
Seamless loop of a quiet cyberpunk alley at night, distant rain on metal awnings, soft neon electrical hum, occasional far traffic wash, no sirens, no voices, subtle and non-distracting.
For cinematic impacts, define transient, body, and tail:
Massive cinematic trailer hit: sharp metal slam transient, deep sub boom body, long dark reverb tail, ominous sci-fi tone, no melody, no vocals, suitable for a title reveal.
For UI/game sounds, keep prompts short and functional:
Premium mobile app success chime, short glassy sparkle with soft tactile click, under 0.6 seconds, friendly, clean, no melody phrase, no voice.
For musical elements, include tempo/key only when they matter:
Old-school funky brass stabs from a vinyl sample, 88 BPM, F-sharp minor, short loopable stem, warm tape texture, no drums, no vocals.
duration_seconds
If a prompt describes a sequence with multiple events, allocate enough duration for each event and its tail. If the generated file feels rushed, increase duration before adding more words.
prompt_influence
loop
output_format
Before generation:
ELEVENLABS_API_KEY; never paste the key into logs, prompts, file names, or metadata.assets/audio/sfx/scene-04-door-valve-v01.mp3.REST shape:
curl -X POST "https://api.elevenlabs.io/v1/sound-generation?output_format=mp3_44100_128" \
-H "xi-api-key: $ELEVENLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Close-mic foley of a heavy wooden door creaking open in a dusty hallway, slow hinge groan, no music, no voice",
"duration_seconds": 3.0,
"prompt_influence": 0.55,
"model_id": "eleven_text_to_sound_v2",
"loop": false
}' \
--output scene-02-door-creak-v01.mp3
Python SDK shape from the official quickstart:
import os
from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs
load_dotenv()
client = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY"))
audio = client.text_to_sound_effects.convert(
text="Cinematic braam, horror",
)
with open("cinematic-braam-v01.mp3", "wb") as f:
for chunk in audio:
f.write(chunk)
After generation:
Do these checks before publishing or client delivery:
Use ears first, then meters.
Creative fit:
Technical fit:
Integration fit:
If the sound is too generic, add material, perspective, space, and function.
Weak:
Magic sound.
Stronger:
Short magical UI reward sparkle, tiny glass bells and soft dust shimmer, close and clean, under 1 second, premium mobile game, no voice, no melody.
If the sound is too busy, remove secondary events and lower prompt influence.
If the sound is too literal or dry, add room, tail, emotion, and lower prompt influence slightly.
If the sound misses timing, set duration_seconds explicitly and describe the timing structure: "quick attack, half-second swell, 2-second tail."
If the loop seam is noticeable, regenerate with loop: true, simplify foreground events, and avoid unique one-time transients.
If generated foley lacks realism, layer a generated designed element under a recorded or stock foley transient.
If low end overwhelms the mix, regenerate with "controlled low end, no sub boom" or EQ after generation; do not rely only on volume reduction.
Production intent: create a small SFX kit for a premium skincare ad: three quick transitions, one product reveal sparkle, and one logo stinger. The edit has soft music and whispery narration, so SFX must be elegant and not harsh.
Workflow:
Candidate calls:
[
{
"filename": "sfx-transition-silk-whoosh-v01.mp3",
"text": "Soft silk fabric whoosh for a luxury skincare video transition, close and airy, gentle high-frequency shimmer, under 1 second, no voice, no music, premium and clean",
"duration_seconds": 0.8,
"prompt_influence": 0.5,
"loop": false,
"model_id": "eleven_text_to_sound_v2",
"output_format": "mp3_44100_128"
},
{
"filename": "sfx-product-reveal-glass-sparkle-v01.mp3",
"text": "Elegant product reveal sparkle, tiny glass particles and soft bell-like glint, close-mic, quick attack with smooth 1.5 second tail, no melody, no voice, refined luxury beauty ad",
"duration_seconds": 2.0,
"prompt_influence": 0.55,
"loop": false,
"model_id": "eleven_text_to_sound_v2",
"output_format": "mp3_44100_128"
},
{
"filename": "sfx-logo-stinger-soft-luxe-v01.mp3",
"text": "Minimal luxury logo stinger, soft tactile click followed by warm airy shimmer, calm and expensive, no drums, no voice, no recognizable melody, suitable for final brand card",
"duration_seconds": 2.5,
"prompt_influence": 0.5,
"loop": false,
"model_id": "eleven_text_to_sound_v2",
"output_format": "mp3_44100_128"
}
]
Expected result: short, polished, high-frequency detail with no distracting musical phrase. Likely failures: harsh glass, too much melody, or assets that mask the narrator. Fix by adding "subtle, low volume, no bright piercing highs" or reducing duration.
Production intent: create a 30-second ambience loop for an abandoned spaceship corridor. It must sit under gameplay for minutes without obvious repetition.
Workflow:
loop: true and maximum duration for a less repetitive bed.Primary prompt:
{
"filename": "amb-spaceship-corridor-base-loop-v01.wav",
"text": "Seamless 30-second loop of an abandoned spaceship corridor, low ventilation rumble, faint electrical buzz, distant hull stress creaks, dark spacious metal interior, no alarms, no voices, no footsteps, subtle and playable under exploration",
"duration_seconds": 30,
"prompt_influence": 0.62,
"loop": true,
"model_id": "eleven_text_to_sound_v2",
"output_format": "pcm_48000"
}
Expected result: a dark loopable bed. Likely failures: obvious repeating clang, too much sub, or non-looping tail. Fix by simplifying foreground events, reducing prompt influence, or generating separate randomized one-shots for creaks.
Production intent: replace a noisy on-location close-up of a museum curator opening an archival box. The sound must feel real, quiet, and non-dramatic.
Workflow:
Prompt:
{
"filename": "foley-archive-box-open-v01.mp3",
"text": "Realistic close-mic foley of cotton-gloved hands opening an old cardboard archival box on a wooden table, soft paper friction, gentle lid scrape, quiet museum room, natural and understated, no music, no voice, no cinematic impact",
"duration_seconds": 4.2,
"prompt_influence": 0.7,
"loop": false,
"model_id": "eleven_text_to_sound_v2",
"output_format": "mp3_44100_128"
}
Expected result: believable tactile foley. Likely failures: exaggerated creaks, room reverb, or too many handling sounds. Fix by reducing action count and specifying "single lid opening, no extra movements."
Production intent: create a coherent family for a cozy puzzle game: hover, select, error, reward. The sounds should share a soft wooden/toy-box identity.
Workflow:
Palette statement:
Warm cozy puzzle UI, soft woodblock, felt dampening, tiny toy-bell accents, gentle room tone, no harsh beeps, no voices, no long melodies.
Prompts:
[
{
"filename": "ui-hover-soft-wood-v01.mp3",
"text": "Cozy puzzle game hover sound, tiny soft wood tap with felt damping, very short, warm and friendly, no beep, no voice",
"duration_seconds": 0.35,
"prompt_influence": 0.6,
"loop": false
},
{
"filename": "ui-select-toy-click-v01.mp3",
"text": "Cozy puzzle game select sound, soft wooden toy click with small warm bell glint, under half a second, satisfying but gentle, no melody, no voice",
"duration_seconds": 0.5,
"prompt_influence": 0.6,
"loop": false
},
{
"filename": "ui-error-felt-thunk-v01.mp3",
"text": "Cozy puzzle game invalid move sound, muted felt-covered wooden thunk, soft downward tone, not alarming, under 0.6 seconds, no voice",
"duration_seconds": 0.6,
"prompt_influence": 0.65,
"loop": false
},
{
"filename": "ui-reward-tiny-bells-v01.mp3",
"text": "Cozy puzzle game reward sound, small wooden click followed by tiny warm bell sparkle, playful and soft, one second, no voice, no long melody",
"duration_seconds": 1.0,
"prompt_influence": 0.58,
"loop": false
}
]
Expected result: consistent UI family. Likely failures: reward becomes musical, error becomes too negative, hover too loud. Fix through post-gain and shorter durations as much as regeneration.
When delivering generated or planned SFX to another agent or pipeline stage, include:
{
"asset_id": "scene-04-door-creak-v02",
"role": "foley_sync",
"file_path": "projects/example/assets/audio/sfx/scene-04-door-creak-v02.mp3",
"provider": "ElevenLabs",
"endpoint": "POST /v1/sound-generation",
"model_id": "eleven_text_to_sound_v2",
"prompt": "Close-mic foley of a heavy wooden door creaking open...",
"settings": {
"duration_seconds": 3.0,
"prompt_influence": 0.55,
"loop": false,
"output_format": "mp3_44100_128"
},
"verified_date": "2026-07-10",
"qa": {
"duration_checked": true,
"loop_checked": false,
"loudness_checked_in_context": true,
"rights_notes": "Paid-plan commercial use must be confirmed; do not distribute standalone."
}
}
The best generated SFX rarely come from one perfect prompt. Work like a sound editor: define the role, generate focused candidates, select by listening in context, trim and layer, and keep rights/custody notes with the asset.
Take calesthio/elevenlabs-sound-effects from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.