thedivergentai/gd-agentic-skills

godot-audio-systems

Expert patterns for Godot audio including AudioStreamPlayer variants (2D positional, 3D spatial), AudioBus mixing architecture, dynamic effects (reverb, EQ,compression), audio pooling for performance, music transitions (crossfade, bpm-sync), and procedural audio generation. Use for music systems, sound effects, spatial audio, or audio-reactive gameplay. Trigger keywords: AudioStreamPlayer, AudioStreamPlayer2D, AudioStreamPlayer3D, AudioBus, AudioServer, AudioEffect, music_crossfade, audio_pool,…

First seen Feb 10, 2026

Installation

$ npx skills add thedivergentai/gd-agentic-skills --skill godot-audio-systems

Summary

  • Expert patterns for Godot audio including AudioStreamPlayer variants (2D positional, 3D spatial), AudioBus mixing architecture, dynamic effects (reverb, EQ,compression), audio pooling for performance, music transitions (crossfade, bpm-sync), and procedural audio generation.
  • Use for music systems, sound effects, spatial audio, or audio-reactive gameplay.
  • Trigger keywords: AudioStreamPlayer, AudioStreamPlayer2D, AudioStreamPlayer3D, AudioBus, AudioServer, AudioEffect, music_crossfade, audio_pool, positional_audio, reverb, bus_volume.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from thedivergentai/gd-agentic-skills · top by installs.

npx skills add thedivergentai/gd-agentic-skills

Browse all from thedivergentai/gd-agentic-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 678
License LICENSE
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 14,137 B
  • docs SUMMARY.md 564 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 378 installs

SKILL.md

Audio Systems

Expert mixing, spatial, pooling, and interactive-music patterns for Godot's audio engine.

NEVER Do (Expert Audio Rules)

Mixing & Buses

  • NEVER set bus volume with linear valuessetbusvolumedb() is logarithmic. Use linearto_db() for sliders OR everything will sound too loud until the last 5%.
  • NEVER skip 'Bus Routing' — Playing music on the 'SFX' bus makes volume menus useless. Strictly route every player to its dedicated sub-bus (Music, SFX, UI, Voice).
  • NEVER use 'Master' for gameplay sounds — Dedicate Master to final limiting. Route all gameplay to sub-groups so you can mute/duck categories.

Positional & Spatial

  • NEVER use 3D players without an Attenuation Model — Default is NONE. If you don't set it to Inverse Distance, a whisper on the other side of the map will be global volume.
  • NEVER play 3D sounds exactly on top of the listener — Causes "Panning Jitter" where the sound snaps between Left/Right speakers. Offset by 0.1 units.
  • NEVER forget Doppler for high-speed objects — A car flying by without DOPPLERTRACKINGPHYSICS_STEP feels flat and static.

Performance & Polish

  • NEVER spam same-frame sounds — Playing 50 explosions at once causes constructive interference (clipping/distortion). Use a Limiter (audiovoicelimiter_manager.gd).
  • NEVER instantiate nodes for one-shots — Creating a node, playing a 0.5s clap, and queue_free()ing causes frame-time spikes. Use a Pool.
  • NEVER skip Crossfades/Transitions — Abrupt music cuts break immersion. Always use a 0.5s-1.0s Tween to bridge tracks.

Decision Matrix: Which AudioStreamPlayer?

Feature AudioStreamPlayer AudioStreamPlayer2D AudioStreamPlayer3D
Spatial Global 2D panning 3D positioning
Doppler No No Yes
Attenuation No Distance-based 3D falloff
Reverb send No No Yes
Use for Music, UI, VO 2D games 3D games
Performance Fastest Medium Slowest

Golden Path → Scripts

MANDATORY — open only the script that matches the row. Do not reinvent pools, duckers, or interactive graphs from memory.

Do NOT Load every script below for one mix task.

Need Script
One-shot SFX spam / voice steal MANDATORY [audiovoicepoolmanager.gd](scripts/audiovoicepoolmanager.gd)
Cap identical SFX (ear-bleed) MANDATORY [audiovoicelimitermanager.gd](scripts/audiovoicelimitermanager.gd)
Dialogue over music MANDATORY [audiobusduckerlogic.gd](scripts/audiobusduckerlogic.gd)
Bus layout / runtime mute [audiobusmanager.gd](scripts/audiobusmanager.gd)
Linear UI slider → dB [audiolinearvolumeinterpolator.gd](scripts/audiolinearvolumeinterpolator.gd)
Wall muffling MANDATORY [audioocclusionraycast.gd](scripts/audioocclusionraycast.gd)
Room reverb zones [audioenvironmentalreverbzone.gd](scripts/audioenvironmentalreverbzone.gd)
Vertical intensity stems MANDATORY [audiointeractivemusicmanager.gd](scripts/audiointeractivemusicmanager.gd)
Horizontal clip graph [interactivemusicgraph.gd](scripts/interactivemusicgraph.gd) + [references/interactive-music-deep-dive.md](references/interactive-music-deep-dive.md)
Bus / pool WHY [references/audio-pooling-and-buses.md](references/audio-pooling-and-buses.md)
Crossfade / BPM / duck [references/music-transitions.md](references/music-transitions.md)
Adaptive music player wrapper [audioadaptivemusicplayer.gd](scripts/audioadaptivemusicplayer.gd)
Autoload SFX entry [audiomanager.gd](scripts/audiomanager.gd)
Footstep surface banks [audiofootstepsurfaceselector.gd](scripts/audiofootstepsurfaceselector.gd)
Procedural hum / engine [audioproceduralgeneratorsynth.gd](scripts/audioproceduralgeneratorsynth.gd)
Spectrum → gameplay / VFX [audioreactivevisualizercomponent.gd](scripts/audioreactivevisualizercomponent.gd), [audiovisualizer.gd](scripts/audiovisualizer.gd)
Dialogue subtitle sync [subtitlesyncsystem.gd](scripts/subtitlesyncsystem.gd)

Available Scripts (catalog)

[audiovoicepoolmanager.gd](scripts/audiovoicepoolmanager.gd)

Priority voice pool with steal of lowest-priority oldest voice (hero voices protected).

[audiovoicelimitermanager.gd](scripts/audiovoicelimitermanager.gd)

Concurrency cap for identical SFX instances.

[audiobusduckerlogic.gd](scripts/audiobusduckerlogic.gd)

Sidechain-style dialogue-over-music ducking.

[audiobusmanager.gd](scripts/audiobusmanager.gd)

Runtime bus volume/mute helpers for Music/SFX/UI/Voice groups.

[audiomanager.gd](scripts/audiomanager.gd)

Autoload entry for play-one-shot routing onto the pool.

[audiolinearvolumeinterpolator.gd](scripts/audiolinearvolumeinterpolator.gd)

Musically-correct linear↔dB UI slider mapping.

[audioocclusionraycast.gd](scripts/audioocclusionraycast.gd)

Raycast muffling via attenuation filter cutoff.

[audioenvironmentalreverbzone.gd](scripts/audioenvironmentalreverbzone.gd)

Area3D-driven reverb/bus override zones.

[audiointeractivemusicmanager.gd](scripts/audiointeractivemusicmanager.gd)

AudioStreamSynchronized vertical stem intensity.

[interactivemusicgraph.gd](scripts/interactivemusicgraph.gd)

AudioStreamInteractive horizontal clip graph.

[audioadaptivemusicplayer.gd](scripts/audioadaptivemusicplayer.gd)

Adaptive music player wrapper for intensity-driven stems.

[audiofootstepsurfaceselector.gd](scripts/audiofootstepsurfaceselector.gd)

Physics-driven surface → sound-bank selection.

[audioproceduralgeneratorsynth.gd](scripts/audioproceduralgeneratorsynth.gd)

Realtime procedural tones for hums/engines/signals.

[audioreactivevisualizercomponent.gd](scripts/audioreactivevisualizercomponent.gd)

FFT spectrum → gameplay/visual driver.

[audiovisualizer.gd](scripts/audiovisualizer.gd)

Spectrum analyzer visualization helper.

[subtitlesyncsystem.gd](scripts/subtitlesyncsystem.gd)

Playback-position-accurate subtitle sync (latency-compensated).

Expert Audio Patterns

Pooling (WHY)

Spawning AudioStreamPlayer.new() per footstep at 60 FPS ≈ 3600 nodes/minute and frame spikes. MANDATORY [audiovoicepoolmanager.gd](scripts/audiovoicepoolmanager.gd). Cap duplicate SFX with [audiovoicelimitermanager.gd](scripts/audiovoicelimitermanager.gd) — 50 same-frame explosions clip the mix.

Deep dive → [audio-pooling-and-buses.md](references/audio-pooling-and-buses.md).

Bus architecture

Master = final limiter only. Gameplay → Music / SFX / UI / Voice. setbusvolumedb(0.5) is wrong — use linearto_db() for sliders.

Music transitions

Never hard-cut tracks — 0.5–2.0s Tween crossfade or BPM-aligned handoff. Vertical/horizontal adaptive scores → [interactive-music-deep-dive.md](references/interactive-music-deep-dive.md), [music-transitions.md](references/music-transitions.md).

Occlusion muffling

Ray source→listener; blocked → Tween attenuationfiltercutoffhz down — [audioocclusionraycast.gd](scripts/audioocclusion_raycast.gd).

Subtitle sync (no timer drift)

pos = getplaybackposition() + AudioServer.gettimesincelastmix() - AudioServer.getoutputlatency() — [subtitlesyncsystem.gd](scripts/subtitlesyncsystem.gd).

Reference

Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain — do not preload the whole lattice.

Official Documentation

  • Audio (tutorial index) — Entry point for buses, streams, effects, sync, mic, and TTS before diving into class pages.
  • Audio buses — Decibel scale, Master/sub-bus routing, and why linear slider values break mixing.
  • Audio streams — AudioStreamPlayer / 2D / 3D roles, randomizers, and how streams reach buses.
  • Audio effects — Bus FX chain (EQ, filters, reverb, compressor, limiter) for ducking and environment zones.
  • Sync the gameplay with audio and music — Playback-position helpers (gettimesincelastmix, latency) for BPM and subtitle sync.
  • Importing audio samples — WAV/Ogg/MP3 tradeoffs that decide pool size and CPU cost for SFX spam.
  • AudioServer — Runtime bus volume, mute, effect add/remove, and spectrum analyzer instances.
  • AudioStreamPlayer — Non-positional music/UI/voice player API used by pools and crossfade managers.
  • AudioStreamPlayer3D — Attenuation models, Doppler, and filter cutoff for spatial SFX and occlusion.
  • AudioStreamInteractive — Clip graph / switch modes for horizontal combat↔explore music transitions.
  • AudioStreamSynchronized — Stem layering API (setsyncstreamvolume) for vertical intensity mixes.

Related Skills

Prerequisites

  • godot-project-foundations — Bus names, import defaults, and project audio latency settings must exist before runtime mix code.
  • godot-autoload-architecture — Music/SFX pools and bus managers are almost always Autoloads; use this for singleton ownership and boot order.
  • godot-gdscript-mastery — Typed Resources, signals, and await/Tween patterns underpin pooling, ducking, and interactive music graphs.

Complements

  • godot-tweening — Crossfades, sidechain duck ramps, and occlusion cutoff sweeps should be Tween-driven, not per-frame lerps.
  • godot-animation-player — Audio Playback + Call Method tracks keep dialogue VO and subtitles frame-locked across locales.
  • godot-dialogue-system — Routes spoken lines to a Voice/Dialog bus and should trigger Music ducking from this skill’s bus helpers.
  • godot-raycasting-queries — Occlusion muffling needs correct PhysicsRayQueryParameters3D masks from source to listener.
  • godot-shaders-basics — Spectrum analyzer magnitudes commonly drive shader uniforms or light energy for audio-reactive VFX.
  • godot-ui-containers — Volume menus need linear→dB mapping (lineartodb) wired to bus indices, not raw slider values.
  • godot-save-load-systems — Persist per-bus volume/mute so mixer choices survive relaunch without rewriting bus layout.

Downstream / consumers

  • godot-performance-optimization — Escalate here when voice pools, polyphony, or mix-callback cost still show up in profilers after pooling.
  • godot-monte-carlo-balancer — Use when SFX concurrency caps, “loudness budget,” or spam-vs-clarity tradeoffs need simulated balance passes (pairs with voice limiters).
  • godot-genre-rhythm — Consumes sync-with-audio timing helpers for note windows and BPM-aligned transitions.
  • godot-combat-system — Hit/explosion layers must share SFX bus routing plus voice stealing so combat never clips the mix.

Master

  • godot-master — Library router and mirrored module entry; open when discovering which Domain Skill owns a cross-cutting audio concern.