Monorepo for Aesthetic.Computer aesthetic.computer

fedac/native: GM C-synthesis — Piano family (GM 1-8), first vertical slice master

Real per-instrument C voices replacing the family-recipe approximation for the piano family, establishing the architecture for all 16 families: - audio.h/.c: 3 new WaveTypes — WAVE_GMPIANO (modal additive + inharmonicity f_n=n·f0·√(1+B·n²), Fletcher&Rossing), WAVE_EPIANO (2-op FM tine/reed, Chowning), WAVE_PLUCK (extended Karplus-Strong, Jaffe-Smith). Data-driven gm_piano_programs[8] param table (gun_presets[] pattern); gm_voice_init() selects voice + fills state + applies BOUNDED PER-TRIGGER STOCHASTICISM (±6c detune cap, ±15% partial amp/decay, random phase, FM index/ratio + KS beta jitter) from the per-voice xorshift seed — every GM voice is probabilistic, never bit-identical per tone. wt_sin wavetable (no per-sample sinf). audio_synth_gm() entry. - notepat.mjs: GM note-on passes gmProgram so js_synth routes 0-7 to the C voices, falling back to the family recipe for not-yet-implemented 8-127. Per dossier docs/gm-synthesis/01. Implemented by subagent; routing fixed + stray web-notepat edit reverted by hand.


+550 -4
3 changed files