
scenario-audio
Use when generating or handling audio on Scenario via MCP. Triggers include music tracks, full-length songs with vocals written from lyrics, background scores, soundtracks, game sound effects, SFX, foley, ambience, looping audio, voiceover, narration, speech, TTS, text-to-speech, dialogue, voice cloning, re-voicing a recording, scoring or adding sound to a video, transcription, or requests to create, wait on, play, or download audio files (MP3, WAV) with Scenario tools.
- Installs
- 480
- Last 24h
- +15
- Trending rank
- #7056
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/scenario-labs/skills --skill scenario-audio- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads scenario-audio automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Scenario Audio Generation
Overview
Scenario generates audio through the same loop as images. The live catalog covers three generation
lanes (music, sound effects, voice/speech) plus video-to-audio soundtrack models and audio
utilities. Connection and the core generation loop: see the scenario skill. If a sibling skill
named here is missing from your available skills, ask the user to install it
(npx skills add scenario-labs/skills --skill <name>); unattended, proceed from tool schemas and
flag the gap.
Quick reference
| Step | Tool | Notes |
|---|---|---|
| Find a model | recommend with the need in the user's own words; search only for a member known by name | capability="txt2audio" covers music, SFX, and TTS; optional, inferred from the prompt when omitted |
| Inspect inputs | model_schema_get | audio schemas vary widely: durations, lyrics, voices, looping |
| Generate | model_run | schema-conformant parameters; wait=false for long jobs |
| Wait | jobs_wait | blocks server-side; on timeout re-call with pending_job_ids |
| Listen | asset_display | renders an inline audio player |
| Save | asset_download | the file as produced (WAV, MP3, ...): curl -L -o out.<ext> "<url>", <ext> from the mimeType it returns, else ffprobe |
Find existing audio assets with search target="assets", filters={kind: "audio"}. Team and project
scope (team_id, project_id): see the scenario skill.
What the audio surface covers
- Music: text-to-music models produce short beds or full-length songs with vocals; the song lane has its own contract, below.
- Sound effects: text-to-SFX models generate short clips from a description; some support seamless looping.
- Voice and speech: text-to-speech with preset voices, multilingual output, and emotion or pacing controls; some clone a voice from a short clip, and speech-to-speech re-voices a recording.
- Video to audio: models that score a silent video or add synchronized effects.
- Utilities:
model_scenario-audio-cut,model_scenario-audio-split,model_scenario-audio-extract, andmodel_scenario-compose-video(fixed ids: each is Scenario's single deterministic tool for its operation, so discovery would only re-derive them); the compositor lays a finished track (score, voiceover, re-voiced take) over a clip as an audio layer, perscenario-video-assembly; for speech-to-text transcription,recommendwith the need in the user's own words. - Stem separation: one named stem per run (discover with
recommend), vocals included, with no instrumental option. Voice isolation returns the clean speech and never the removed music and effects as a second stem, so a two-stem split (voice against everything else) is a gap to report, not a member to keep hunting for.
Per-family contracts: scenario-elevenlabs (speech, dubbing, re-voicing, music, SFX),
scenario-ace-step and scenario-minimax-music (songs), scenario-sonilo (SFX and video scoring).
Worked example: a game sound effect
recommendwithcapability="txt2audio"and the user's own words asprompt("a game sound effect: a heavy wooden chest creaking open"). The ranking returns txt2audio models such asmodel_elevenlabs-sound-effects-v2(example only).model_schema_getwith thatmodel_id. Returns the exact fields: prompt plus controls such as duration or looping.model_runwith the samemodel_idand parameters={"prompt": "heavy wooden treasure chest creaking open, single event, dry, no music"}.jobs_waitjob_ids=["job_xxx"] on anyjob_idreturned without assets (in_progressafter a timed-out wait, the backend'squeuedorin-progressafterwait=false), re-calling with the returned pending_job_ids on timeout.asset_displayasset_id="asset_xxx" to play it inline.asset_downloadwith noformat, then save the returned URL withcurl -Lunder the extension itsmimeTypenames.
Prompting tips:
- SFX: name the source, material, action, and acoustic space, and say what to exclude ("no music", "no reverb"). One event per clip; generate variations as separate runs.
- Music: give genre, mood, tempo, and instrumentation. Short beds usually take a single prompt, with duration or looping in the schema.
- Speech: keep the text field to the words to speak; voice, language, emotion, and pacing live in separate schema fields or inline tags.
Speech and dialogue
Discover a voice member with recommend (capability="txt2audio", the user's words, "two-person
dialogue" when it is one), then read its text field's description in model_schema_get: that is
where a member usually states its own delivery grammar.
- Tag syntax is per member, even within one family: square brackets (
[whispers]), angle brackets (<sigh>,<short pause>), parentheses ((sighs)), or wrapping pairs (<whisper>text</whisper>), and some read none. A tag in the wrong grammar can be spoken aloud, so copy the spelling from the text field's description; where it names none, from the member's catalog description orrecommend's notes, and with no source write no tags. A correctly spelled tag is a request, not a guarantee: two identical runs have disagreed on one, so have the user listen before a take is final and re-run a take whose tag was skipped. - Two voices, one take. A member with a multi-speaker array (up to 2 rows of a speaker label and
a voice at authoring time) reads the text as turns, one
Name: lineper turn, eachNamematching a row's label exactly; an unprefixed line continues the previous turn, and the single-voice field is ignored in that mode. Preset voice names say nothing about gender, age, or tone, so state which preset plays whom and let the user confirm before the paid run. A scene with more speakers is split into takes of at most two, delivered in order or laid over the picture perscenario-video-assembly. - Text is capped and priced. The text field carries a
max_length(5000 characters on one member at authoring time), an overrun is a 400, andcost_impactmarks it as the price driver: split a long script at turn boundaries anddry_runthe first take. - Pin the language through the schema's language field when there is one, rather than naming it in the text.
Songs with vocals
A full-length song is not a longer music bed, and song schemas vary more than the rest of the lane,
so model_schema_get decides the shape: a style prompt plus a separate lyric sheet, one prose
prompt carrying both, or an ordered section array with per-section text and styles.
- Words never go in a style field. Where the schema splits the two, the style field carries
genre, mood, tempo, key, vocal style, and instrumentation; the lyric field carries the words,
shaped by section tags such as
[Verse]and[Chorus]. - Instrumental and auto-lyrics are flags where the schema has them; asking for either in prose
is unreliable, and where no flag exists the text fields are the only lever. Flipping the
instrumental flag on a rerun gives a different take, not the same song:
seed, where a model has one, only repeats identical settings. For an instrumental of a track you already have, try an audio2audio cover model (discover withrecommend), checking the schema since not all carry the flag. - Text fields are length-capped per model and field, and going over is a 400 rather than a truncation.
Where the schema exposes a duration field (flagged cost_impact), it caps both length and price;
where none exists, the lyric sheet or prompt sets both. Either way, price the song with
dry_run: true before committing, then launch with wait: false; both are model_run arguments,
not parameters keys.
Repeatability and batching are per member, not per lane: at authoring time the repaint members took
numOutputs (1 to 4) and no seed, so a repaint that must keep the same singer is run as a batch
and picked from, while the section composers had seed and no numOutputs. Read both off
model_schema_get before promising either.
Extending a song
Making an existing track longer is its own audio2audio lane, not a longer text-to-music run:
recommend with capability="audio2audio" and the extension need in the user's words; use search
only when the member is already known by name. The member that does it takes the song as audio and
an ordered sections array (up to 30 at authoring time) where each entry either keeps a slice of
the original (sourceStartSeconds and sourceEndSeconds) or generates a new one (text with
[Verse]-style tags, durationSeconds, positiveStyles as an array), with contextAdherence
deciding how closely new sections follow their neighbors. Kept slices bill like generated audio of
the same length, so dry_run the whole plan first. The repaint, edit and add-layer members
regenerate inside the original's duration and never lengthen it, and recommend ranked an older
text-to-music member for "extend a song" at authoring time: an extension is not a txt2audio need,
so do not take that pick.
Common mistakes
- Hardcoding generative model IDs: availability differs per team and evolves. Re-discover each
session,
recommendfor the need orsearchfor a name; only the fixed first-party tool ids above stay constant. - Skipping
model_schema_get: one audio model's parameters will not fit another (voices, durations, and lyric fields all differ). - Polling
job_getin a loop: music jobs can run minutes. Usejobs_wait; on timeout re-call with pending_job_ids. - Pasting raw asset URLs into chat: use
asset_displayto play audio. - Passing
formattoasset_downloadfor audio: it converts image formats only, so omit it. WAV is requested at generation, through the output-format field where the member's schema has one. - Putting voice direction inside TTS text ("say this angrily"): direction can end up spoken. Use the schema's emotion or voice fields.
- Writing a dialogue as one voice reading both parts: on a multi-speaker member, fill the speaker rows and prefix every turn with its label, since with the rows empty the member reads everything in its single voice.
- Pasting lyrics into the style field: the model then describes a song instead of singing one.
- Answering "make it longer" with a repaint or a new text-to-music run: the first keeps the duration, the second loses the song; the extend lane above keeps the slices the user chose.
- Putting
dry_runorwaitinsideparameters: they aremodel_run's own arguments, so a straydry_runstill charges and a straywaitblocks up to 180s.
FAQ
What does the scenario-audio skill do?
Use when generating or handling audio on Scenario via MCP. Triggers include music tracks, full-length songs with vocals written from lyrics, background scores, soundtracks, game sound effects, SFX, foley, ambience, looping audio, voiceover, narration, speech, TTS, text-to-speech, dialogue, voice cloning, re-voicing a recording, scoring or adding sound to a video, transcription, or requests to create, wait on, play, or download audio files (MP3, WAV) with Scenario tools.
How do I install scenario-audio?
Run npx skills add https://github.com/scenario-labs/skills --skill scenario-audio in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/scenario-audio/ (personal) or .claude/skills/scenario-audio/ (project).
Which AI agents can use scenario-audio?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is scenario-audio safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains scenario-audio?
It is published by scenario-labs in scenario-labs/skills. It has 480 recorded installs.
More from scenario-labs/skills
scenario
scenario-labs/skills
Use when connecting an AI agent to Scenario (scenario.com) through MCP, or when a task involves generating images, video, 3D, audio, sprites, textures, or game assets. Also when picking a Scenario model, running a LoRA, refining a generation prompt, uploading reference images, waiting on generation jobs, checking credits or quota, hitting Scenario auth, scope, or Forbidden errors, or setting up mcp.scenario.com in Claude Code, Cursor, VSCode, or another agent.
scenario-blender-expert
scenario-labs/skills
Use when doing any 3D work in Blender through Python or an MCP bridge, headless or in a live session: modeling, sculpting a character or head, retopology, UV unwrapping, baking, texturing, rigging, animating, previs, geometry nodes, lighting and rendering, grease pencil, or finishing an AI-generated mesh into a production asset. Also before exporting or handing off an asset, to check it is ready for a game engine, a render or a 3D print (floating parts, z-fighting, inside-out normals, unapplied scale, missing UVs). Also when a bpy script fails on Blender 5.x API changes, a brush or sculpt operator fails or crashes headless, or a result has to be judged like a professional 3D artist would.
scenario-game-assets
scenario-labs/skills
Use when creating game art through Scenario MCP: sprites, sprite sheets, icons, props, loot, tilesets and autotile terrain transitions, seamless tiles, isometric buildings, top-down maps, pixel art, UI buttons and panels, parallax background layers or depth planes for side-scrollers, and character or concept art; or when assets need transparent backgrounds, background removal, style-consistent variation batches, upscaling, pixel-grid cleanup, or PNG export for Unity, Godot, or Unreal.
scenario-consistency
scenario-labs/skills
Use when one look must hold across Scenario generations: one character across scenes, a turnaround, or a video animated from its references, one product across angles, one style across icon sets, a character from an uploaded drawing, a variant off an approved baseline, or deciding when references stop scaling and a trained model is due. Triggers: make this match, same character, on-model, reference to video, style reference. Keywords: consistency, identity, control map, seed, LoRA.
scenario-sprite-animation
scenario-labs/skills
Use when animating 2D game art with Scenario: walk, idle or attack cycles in 4 or 8 directions, isometric sprite sheets, animated GIFs, frame-by-frame pixel art animation, VFX loops such as fire or smoke, looping a sprite seamlessly, animating an existing character image, a full animation sheet from one prompt, extracting animation frames from a generated video, or slicing a sprite sheet into engine-ready frames for Unity, Godot, or Unreal. Keywords: spritesheet, keyframes, frame grid, GIF.
scenario-3d
scenario-labs/skills
Use when generating or handling 3D assets through the Scenario MCP server, including text-to-3D or image-to-3D meshes, GPT-6 Astra 3D or Claude Opus 5.5 3D, GLB, FBX, OBJ, STL, or VOX files, PBR-textured or game-ready models, voxel models, multi-view reconstruction, editing a mesh by prompt, retexture, remesh, UV unwrap, auto-rigging a biped or quadruped, or retargeting an animation, previewing a mesh in the 3D viewer, or downloading a model for import into Unity, Unreal, Godot, or Blender.
Popular media & creative skills
hyperframes
heygen-com/hyperframes
Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.
media-use
heygen-com/hyperframes
Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.
hyperframes-registry
heygen-com/hyperframes
About 450 ready-made HyperFrames blocks and components installed as editable source - transitions, overlays, titles, kinetic type, captions, charts, map overlays, 3D, camera moves. Use it before hand-building any named visual (CRT scanlines, glitch, film grain, a chart); also for hyperframes add and catalog.
hyperframes-creative
heygen-com/hyperframes
Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use hyperframes-animation.
ai-video-generation
101-skills/superpowers
Generate AI videos with Google Veo, Seedance 2.0, HappyHorse, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, reference-to-video, video editing, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative, seedance, happyhorse
ai-image-generation
101-skills/superpowers
Generate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stable diffusion, generate image, ai art, midjourney alternative, dall-e alternative, text2img, t2i, image generator, ai picture, create image with ai, generative ai, ai illustration, grok image, gemini image, gpt image, openai image, chatgpt image