Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Builtins — Music & Spatial Audio

ling-music is a full music layer (separate from the SFX-oriented ling-audio): decode any common format, analyse tempo & key, synthesize GM-style instruments from .ling patches, read MIDI, and build rhythm games & karaoke. ling-audio adds positional one-shots, sample playback/loops, and master FX.

Playback & analysis

music_load("song.wav") → id (WAV/FLAC/OGG/MP3/AAC) · music_play(id) / music_pause / music_stop / music_seek(sec) / music_pos() / music_volume(v) / music_duration(id) · music_bpm(id) · music_key(id) → e.g. "A minor" · music_onsets(id) · music_beat_grid(id) · music_fft(id, nbands) → spectrum at the current position (drives reactive visuals).

Synthesis (GM-capable, from .ling patches)

music_patch("instruments/rhodes_ep.ling") → inst · music_note(inst, "C4", dur, vel) · music_note_on(inst, pitch, vel) / music_note_off(inst, pitch). A patch is a small modular FM/subtractive voice (operators + ADSR + filter + LFO) able to approximate any GM family.

MIDI · rhythm · karaoke

music_midi_load("song.mid") → id · music_midi_notes(id)[time,midi,…] · music_midi_bars(id)[time,midi,dur,…] (karaoke note bars) · music_midi_count(id). music_judge(delta_ms) → grade · music_grade_name(g). music_lrc("song.lrc") / music_lyric(id,t). music_mic_pitch() → Hz (sung pitch) · music_note_name(hz) · music_hz(midi) · music_pitch_score(hz, target_hz).

Spatial audio (ling-audio)

audio_tone(idx,x,y,z,w,freq,amp,lfo_rate,lfo_depth) (continuous, 3D/4D) · audio_sfx(x,y,z,w,freq,amp,dur,wave) (positional one-shot) · audio_sample_load(path) / audio_sample_play(id,x,y,z,w,vol,loop) / audio_sample_stop(v) · audio_listener(cry,sry,crx,srx) (match the camera) · audio_volume(v) · master FX: audio_fx_delay(time,fb,mix) · audio_fx_reverb(mix) · audio_fx_lowpass(cutoff) (1.0 = open, lower = muffled/underwater).

See examples/music/{synth_jam,rhythm_game,karaoke_hero,hallway_runner}.ling. Full implemented-vs-missing list: docs/AUDIO_MUSIC_TODO.md.