Monorepo for Aesthetic.Computer aesthetic.computer

physmidi: struck-string waveguide model for acoustic pianos (GMPIANO) master

Replace the GMPIANO modal-additive ring with a physical struck-string waveguide: a tuned Karplus-Strong string (ks_buf) excited by a felt-shaped hammer burst, a loop-loss LPF that bleeds brightness over time (bloom then mellow), a stiffness allpass that stretches the upper partials sharp (piano inharmonicity), and a 3-band resonant soundboard body (ks_body_* bank, tuned low and broad). Honky-tonk adds a second 14-cent-detuned string in bore_buf. Reuses existing GMVoice scratch (no header change): ks_buf/bore_buf string lines, harp_lp1/fm_hp_y1 loop-loss states, ks_beta allpass coeff, nx1/ny1/ nx2/ny2 allpass z-states, ks_stretch loop gain, ks_loop_b LPF coeff, ks_drive loop group-delay compensation, ks_body_* soundboard, gm_hammer_* contact burst, gm_dual/gm_drive. A group-delay compensation keeps pitch centered across the register. Velocity->brightness retained via the contact LPF coeff. pitch-audit 0-3 PASS (+0/+0/+0/+10 cents at C4); full table unchanged at 69 PASS / 13 FAIL (pre-existing, other PhysMidi voices) / 46 uncertain. No NaN/Inf across C2-C7, peaks under the +-2.0 dispatch clamp.


+166 -66
1 changed file