AI tools: Audio and music
Sounds, music, spatial audio and rhythm charts. 9 tools. You see every step your AI takes and can undo any of them.
audio_gun_sound
Tune a weapon class's synthesized sound for this scene (pistol, revolver, smg, rifle, lmg, shotgun, sniper, launcher, laser): plain words (heavier, louder, sharper, deeper, longer_tail, suppressed...) or exact numbers. One undoable gun_sound component; every gun of the class uses it. Check it with audio_preview.
| Argument | Type | What it does |
|---|---|---|
adjust | list of heavier / lighter / louder / quieter / sharper / softer / deeper / higher … | |
class required | pistol / revolver / smg / rifle / lmg / shotgun / sniper / launcher … | |
crack | number | |
energy | number | |
gain | number | |
mech | number | |
pitch | number | |
suppressed | boolean | |
tail | number | |
weight | number |
audio_mix
Set the scene's music and ambience and its mix: music track (neon, menu, action, ambient, or a WAV in Assets/Sounds/Music) with crossfade, ambience bed (rain, storm, city, night, forest, room_tone, neon_hum), levels, bus trims and ducking. One undoable audio_mix component; first-party synthesis, no downloads.
| Argument | Type | What it does |
|---|---|---|
ambience | / rain / storm / city / night / forest / room_tone / neon_hum | |
ambience_gain | number | |
crossfade | number | |
duck_explosion | number | |
duck_voice | number | |
music | string | |
music_gain | number | |
sfx | number | |
ui | number | |
voice | number |
audio_mixer
The live mix while the game plays: each bus's meter (dB peak: music, ambience, sfx, voice, ui, and master after the limiter), its level and duck, the snapshot blended in. action "monitor" mutes or solos buses in the editor only (never saved: to hear the music alone, solo ["music"]); "snapshot" blends the running game's whole mix to a preset (underwater, muffled, stunned, pause, focus, quiet) or your own levels with a low-pass, the same as a script's game.snapshot(); "presets" lists them. Set the scene's own levels with audio_mix.
| Argument | Type | What it does |
|---|---|---|
action | show / monitor / snapshot / presets | Default show. |
levels | object | snapshot: your own levels per bus (0-2, 1 unchanged) and lowpass (Hz), e.g. {"music": 0.3, "lowpass": 900}. |
mute | list of sfx / music / ui / voice / ambience | monitor: buses to silence. |
name | string | snapshot: a preset name, or "" to blend back to the scene's mix. |
seconds | number | snapshot: blend time (default 0.5). |
solo | list of sfx / music / ui / voice / ambience | monitor: only these buses play ([] for all). |
audio_place_emitter
Place a first-party synthesized ambience or sound emitter. Follows real position, walls and moving doors; one undoable entity. No sound packs or file downloads.
| Argument | Type | What it does |
|---|---|---|
gain | number | |
loop | boolean | |
name required | string | |
pitch | number | |
position required | list of number | |
range | number | |
sound required | shot / shot_heavy / hit / hurt / pickup / explosion / alarm / footstep … | |
spatial | boolean |
audio_preview
Render one synthesized sound offline and measure it (peak, RMS, clipping, brightness, length, transient sharpness): a gun shot by class at a distance indoors or out, an explosion, a reload part, a casing on a surface, a footstep by surface and speed, a music track or an ambience bed. Optionally writes a WAV to listen to. Uses the scene's gun_sound tuning.
| Argument | Type | What it does |
|---|---|---|
class | pistol / revolver / smg / rifle / lmg / shotgun / sniper / launcher … | |
distance | number | |
kind | shot / explosion / part / casing / footstep / music / ambience | |
name | string | |
room_size | number | |
rt60 | number | |
speed | number | |
suppressed | boolean | |
surface | string | |
wav | string | Absolute path for a WAV copy (optional). |
audio_set_music_rules
Attach or edit a procedural horror/action score director on an existing entity. Maps live AI awareness to calm/tension/chase stems; crossfades and stingers are synthesized and undoable.
| Argument | Type | What it does |
|---|---|---|
chase | list of patrol / suspicious / search / chase / return / stunned / asleep | |
crossfade | number | |
enabled | boolean | |
entity required | string | An existing entity name or #id. |
gain | number | |
release | number | |
stingers | boolean | |
style | horror / action | |
suspicious | list of patrol / suspicious / search / chase / return / stunned / asleep | |
watch_tag | string |
audio_set_surface
Set an object's synthesized acoustic material, preserving its visual material and all other components. Undoable.
| Argument | Type | What it does |
|---|---|---|
age | number | |
entity required | string | An existing entity name or #id. |
material required | oak / tile / carpet / concrete / metal / grass / gravel / water … |
rhythm_chart
Make a rhythm game's note chart from a song: finds its tempo and beats (or uses the track's own), places a note on every drum hit or note start the difficulty allows, gives each a lane from low sounds to high (repeated sounds walk a riff, never one key four times running), and makes holds where a sound rings on. Writes Scripts/data/<song>_<difficulty>.json for the rhythm kit (add_kit rhythm; kits/highway.js draws it). difficulty "all" writes easy, normal, hard and expert.
| Argument | Type | What it does |
|---|---|---|
bpm | number | The tempo, when you know it exactly. Otherwise it is found (near the bpm the track's sidecar asked for, when it has one). |
difficulty | easy / normal / hard / expert / all | easy: on the beat, the strongest sounds, no holds. normal: eighth notes. hard: sixteenths. expert: every onset. Default normal. |
lanes | number | Keys across (default 4: the kit's D F J K). |
name | string | The chart's file name in Scripts/data (default <song>_<difficulty>.json). |
song required | string | The track: a name in Assets/Sounds/Music (or Assets/Sounds), .wav, .ogg or .mp3, extension optional. |
sound_match
Compare a generated/captured WAV with a real reference WAV: relative spectrum, onset-aligned envelope, duration and clipping. Explicit isolated impulse-response pairs also compare measured reverb time. Read-only, local, no downloads, no reference samples copied into game audio. Scores are descriptor similarity, not a percentage of realism. HTTP calls return a job_id immediately; read progress and the final result with tool_job instead of repeating the tool.
| Argument | Type | What it does |
|---|---|---|
candidate required | string | Project-relative generated/captured WAV, at most 30 seconds. |
duration_max_ratio | number | |
envelope_max_error | number | |
kind | sound / impulseResponse | Default sound. impulseResponse requires both files to be known isolated IRs; ordinary effects cannot measure a room's decay. |
reference required | string | Project-relative WAV, preferably under Assets/References. Recording provenance should be kept beside it. |
reverb_max_relative_error | number | |
spectrum_max_db | number |