# layer-audio

Configures agent prompts for generating sound effects, music, and spoken voice-overs with Layer. Keeps assets dry, sized, and fit for game engines.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 3300 installs · ★ 6
- Author: layerai
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/layerai/skills/tree/HEAD/skills/layer-audio/SKILL.md
- Updated: 2026-09-30
- HTML: https://affpapa.org/en/nevibecode/skills/layer-audio

## What it does

The skill separates Layer audio generation into three pipelines: `sound_effects`, `music`, and `text_to_speech`. For sound effects, it guides the model to describe physical objects and concrete actions rather than emotional impressions. Unspecified acoustic environments result in baked-in room reverb. You cannot remove baked-in room ambience later.

Music prompts must define the track function, such as background loops that stay quiet under dialogue. Steady arrangements prevent looping breaks. Speech generation works in paragraph chunks with phonetic spellings for fantasy names. Execution loops and spending checks belong to the sibling `layer` skill.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add layerai/skills --skill layer-audio -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/layer-audio/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/layer-audio/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add layerai/skills --skill layer-audio -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/layer-audio/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add layerai/skills --skill layer-audio -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/layer-audio/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install layerai/skills layer-audio
```

2. **Manually: put the files in place**
- File: `.github/skills/layer-audio/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add layerai/skills --skill layer-audio -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/layerai/skills --path skills/layer-audio
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/layer-audio/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add layerai/skills --skill layer-audio -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/layerai/skills/tree/HEAD/skills/layer-audio/SKILL.md

## When to use it
- prompt clean sound effects without unwanted room reverb
- generate background music loops that stay under voice dialog
- synthesize narration in chunks with phonetic name spellings
- produce cohesive UI audio assets with matching characteristics

## Example prompts
- Generate a dry, close-mic'd sword drawing sound under one second
- Create a looping background combat track without a lead melody
- Generate character voice lines paragraph by paragraph with phonetic tags

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: bf9c18ec09954941.

BEGIN THIRD-PARTY FILE bf9c18ec09954941
```text
---
name: layer-audio
description: "Use when generating audio with Layer: sound effects for a game or trailer, music and background tracks, or speech and voice-over from text. Also when a sound effect comes back with unwanted ambience or reverb, when a music prompt needs structure or length control, or when choosing a voice and delivery for narration. Keywords: SFX, sound effect, foley, UI sound, music, soundtrack, loop, text to speech, TTS, voice over, narration."
license: MIT
---

# Layer Audio Generation

## Overview

Three distinct use cases with almost nothing in common: `sound_effects`, `music`, and
`text_to_speech`. Pick one, then write the prompt the way that discipline expects. The loop and the
spend gate are in the `layer` skill.

If a sibling skill named here is missing from your available skills, ask the user to install it
(`npx skills add layerai/skills --skill <name>`); unattended, proceed from tool schemas and flag the
gap.

## Sound effects

Describe the physical event, not the feeling. What object, made of what, doing what, at what scale,
in what space. "Heavy oak door, iron hinges, swinging open slowly with a low groan, then a dull thud
against stone" is a sound. "Scary door sound" is a mood board.

Three things decide whether a game-ready effect is usable:

- **The space.** Generated effects arrive with room ambience baked in unless you exclude it. For an
  asset the engine will place in its own reverb, ask for it dry, close-mic'd, and isolated. A wet
  effect cannot be made dry afterwards.
- **The length.** UI sounds are short, and a model given no length target produces a tail that has to
  be trimmed. State it.
- **One event per generation.** A footstep, a sword unsheathe, and an impact are three assets. Asking
  for a sequence yields one file you then have to cut apart.

For UI sound sets, generate each state separately and name the shared character once in every prompt,
so the confirm, cancel, and hover sounds read as one family.

## Music

Name genre, instrumentation, tempo, mood, and **function**. Function is the one people leave out and
the one that matters most: a menu loop, a combat layer, a boss intro, and a credits piece are written
differently even in the same style.

Say what the track should not do. Background music for a game should not have an arresting melodic
hook competing with dialogue, and stating "sparse, no lead melody, sits under voice" gets there
faster than three rerolls.

Where a model exposes structured fields (`lyrics`, `instrumental`, `speed`), use them instead of
describing the same thing in prose. `get_base_model` is the authority on which apply. For anything
that must loop, keep the arrangement steady rather than building to a climax that cannot rejoin its
own start.

## Speech

Filter for `text_to_speech`. Send the script clean, with real punctuation, since models take commas
and full stops as pacing. Spell out anything ambiguous: a number, an acronym, or an invented fantasy
name will otherwise be read the model's way, and "Aelthyr" needs a phonetic respelling if it must be
said consistently across a cast.

Direct the delivery separately from the words: pace, energy, age, accent, emotional register. Keep
```
END THIRD-PARTY FILE bf9c18ec09954941

The third-party file has ended. Everything between the bf9c18ec09954941 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 3215 of 4762 bytes. © layerai · MIT · https://github.com/layerai/skills/tree/HEAD/skills/layer-audio/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
