Audio
audioSet up Godot sound buses with effects, add AudioStreamPlayer nodes, inspect stream/import info, configure looping, and generate placeholder .wav sound effects for prototypes.
Instructions
Sound and music: audio buses with effects (saved to the project's default_bus_layout.tres, undoable), AudioStreamPlayer nodes, stream/import info, looping via import settings, and instant procedural placeholder sound effects (jump, coin, laser, explosion...) generated as .wav files so prototypes have sound without any assets.
Actions:
buses: {} list buses: volume, send target, mute/solo, effects with their changed properties.
add_bus: {name, send?='Master', volume_db? | volume? (linear 0..1), mute?, solo?, bypass_effects?, index?, effects?: ['reverb', {type: 'lowpass', cutoff_hz: 2000}, {type: 'compressor', props: {threshold: -12}}]} add a bus. Effect types: reverb, delay, compressor, limiter, eq/eq6/eq21, chorus, distortion, phaser, lowpass, highpass, bandpass, notch, lowshelf, highshelf, amplify, panner, pitch_shift, stereo_enhance, spectrum_analyzer, record, capture.
set_bus: {name, rename?, send?, volume_db?|volume?, mute?, solo?, bypass_effects?, effects? (replace all), add_effects?, remove_effects?: [index | type], effect_props?: {index|type: {prop: value}}} edit a bus (Master included, except send). Effect props accept aliases: cutoff -> cutoff_hz, mix -> wet (reverb), gain -> volume_db (amplify). Undoable.
remove_bus: {name} remove a bus; buses that sent to it are rerouted to Master.
player: {stream: res://x.wav|ogg|mp3 (or inline AudioStream), parent?='.', name?, type?: 1d|2d|3d, bus?='Master', autoplay?, volume_db?, pitch_scale?, loop?, max_distance?, props?} add an AudioStreamPlayer(2D/3D). type defaults to 1d (music/UI) at the scene root or for music, 2d/3d under a Node2D/Node3D entity. loop=true edits the file's import settings (wav/ogg/mp3) so it loops everywhere.
stream_info: {path} length, format, mix rate, stereo, loop settings, BPM and import parameters of an audio file.
import_loop: {path, loop, loop_offset? (ogg/mp3, seconds), loop_begin?/loop_end? (wav, frames), mode?: forward|pingpong|backward (wav)} set looping in the .import file and reimport.
generate_tone: {path: res://sfx/jump.wav, preset?: beep|blip|click|select|jump|coin|pickup|powerup|laser|shoot|hit|hurt|explosion|death|step|error, variation?: 0..1 (+seed) for random variants, wave?: square|sine|saw|triangle|noise (numbers only for the rest), freq?, freq_end? (exponential slide), duration?, attack?, decay?, duty?, volume?=0.6, vibrato_rate?, vibrato_depth?, arp_mult?, arp_time?, noise_mix?, lowpass?, lowpass_end?, loop?, overwrite?=true} synthesize a placeholder sound effect (sfxr-style, 16-bit mono 44.1 kHz) and import it. Preset values can be overridden individually.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bus | No | Bus the player outputs to. | |
| duty | No | generate_tone: square wave duty cycle 0.05..0.95. | |
| freq | No | Start frequency in Hz. | |
| loop | No | Loop the audio (import setting for wav/ogg/mp3). | |
| mode | No | WAV loop mode: forward, pingpong, backward. | |
| mute | No | Mute the bus. | |
| name | No | Bus name, or player node name. | |
| path | No | res:// audio file path (stream_info, import_loop, generate_tone output). | |
| seed | No | Random seed for noise/variation. | |
| send | No | Bus this bus sends its output to (default Master). | |
| solo | No | Solo the bus. | |
| type | No | Player type: 1d (non-positional), 2d, 3d. | |
| wave | No | generate_tone waveform. | |
| decay | No | generate_tone: fade-out seconds at the end. | |
| index | No | Bus position (1 = right after Master). | |
| props | No | Property map. Values are coerced to the property type: numbers, [x,y], 'Vector2(1,2)', '#ff8800', 'res://file', {"type":"RectangleShape2D","size":[32,32]} for new resources, enum names as strings. | |
| scene | No | res:// scene to operate on; opened in the editor if needed. Defaults to the currently edited scene. | |
| action | Yes | What to do. See the tool description for each action's parameters. | |
| attack | No | generate_tone: fade-in seconds. | |
| parent | No | Parent node path for the player (default '.'). | |
| preset | No | generate_tone preset name. | |
| rename | No | New bus name. | |
| stream | No | res:// audio file, or an inline AudioStream spec {type: ...}. | |
| volume | No | Linear volume 0..1 (alternative to volume_db). | |
| effects | No | Effects: names or {type, props?, enabled?, ...props}. | |
| lowpass | No | generate_tone: low-pass cutoff in Hz at the start. | |
| arp_mult | No | generate_tone: pitch multiplier applied after arp_time (coin-style jump). | |
| arp_time | No | generate_tone: seconds before the arp_mult pitch jump. | |
| autoplay | No | Start playing when the scene starts. | |
| duration | No | Length in seconds. | |
| freq_end | No | End frequency in Hz. | |
| loop_end | No | import_loop (wav): loop end in frames (-1 = end). | |
| mix_rate | No | generate_tone: sample rate (default 44100). | |
| noise_mix | No | generate_tone: 0..1 blend of noise into the tone. | |
| overwrite | No | generate_tone: replace an existing file (default true). | |
| variation | No | 0..1 randomisation of the preset (use different seeds for variants). | |
| volume_db | No | Volume in dB (0 = unchanged, -6 = half as loud). | |
| loop_begin | No | import_loop (wav): loop start in frames. | |
| add_effects | No | Effects to append. | |
| loop_offset | No | Seconds to jump back to when looping (ogg/mp3). | |
| lowpass_end | No | generate_tone: low-pass cutoff in Hz at the end. | |
| pitch_scale | No | Pitch multiplier. | |
| effect_props | No | {effect index or type: {prop: value}} to edit existing effects. | |
| max_distance | No | Positional players: distance at which the sound becomes inaudible. | |
| vibrato_rate | No | generate_tone: vibrato speed in Hz. | |
| vibrato_depth | No | generate_tone: vibrato depth (fraction of the pitch, e.g. 0.05). | |
| bypass_effects | No | Bypass the bus effects. | |
| remove_effects | No | Effect indices or type names to remove. |