notepat: fix Shift-pluck (keyed on duration) + QR code in status bar
Two reported issues:
1. Shift+letter on harp sounded identical to non-shift. Root cause: the
short-pluck detection in generate_harp_sample was keyed on
`v->decay < 0.2`, but the default decay mode in notepat is "short"
(0.1s), so EVERY harp press — shift or not — got the short stretch
factor (0.990) and nothing resembling the 15-second pedal-harp
sustain ever played.
Switch to duration-based detection: short-pluck path fires when
duration is finite AND < 1.0s. Notepat passes duration=Infinity for
sustained notes (default harp) and duration=0.4 when Shift is held
(staccato pluck). Clean, unambiguous.
2. QR code in the top-left status bar linking to notepat.com. Bar was
14px tall; the smallest QR (version 1 "notepat.com" at scale=1 with
2-module quiet zone) is 25×25px. Grew topBarH to 26px to fit. QR
sits in the corner, "notepat.com" label shifts right to accommodate;
the whole zone (QR + label) remains a click target that jumps to
the prompt piece.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>