notepat/gm: wire General MIDI as default sound + digit-buffered patch picker
GM bank served from assets.aesthetic.computer/gm/<NNN>/<note>.mp3, baked
on lith from a FOSS SoundFont (GeneralUser GS). The disk-side wiring
falls back to a sine oscillator while GM is loading or unavailable, so
nothing breaks before the packs land on Spaces.
- lith/scripts/gm-bake.mjs: SoundFont→per-instrument MP3 bake (128
melodic patches + GM standard drum kit, manifest.json + LICENSE.txt)
- system/public/aesthetic.computer/lib/gm.mjs: lazy AudioBuffer player —
loadManifest / loadPatch / loadDrumKit / prefetchPatch
- system/public/aesthetic.computer/lib/midi.mjs: forward 0xC0
program-change through acSEND so notepat can react to it
- notepat.mjs: "gm" prepended to wavetypes (default); top-row 0-9
picks GM programs live like menuband, with 700ms auto-clear; wave
button shows GM:078 while typing; legacy oscillators stay reachable
via Tab; deferred GM init waits for window.audioContext after first
user gesture
- plans/notepat-gm-integration.md: full integration plan + decision log
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>