Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

notepat-remote: lowercase labels, uppercase when Shift held

Pad labels now read as lowercase qwerty keys at rest and flip to
uppercase while Shift is held — mirrors the actual keyboard state so
you can see 'live' typography on the pad face. Shift tracked via
keyboard:down:shift / keyboard:up:shift in act().

+15 -1
+15 -1
system/public/aesthetic.computer/disks/notepat-remote.mjs
··· 88 88 // Local state mirrored from keyboard events (visual only — BIOS emits MIDI). 89 89 let baseOctave = 4; 90 90 const heldKeys = new Set(); 91 + let shiftHeld = false; // typography case toggle for pad labels 91 92 let focused = true; // assume focused until we learn otherwise 92 93 let focusedChangedFrame = 0; 93 94 let lastInteractionFrame = -999; ··· 354 355 return; 355 356 } 356 357 358 + // Shift tracking — flips pad labels between lowercase (resting) and 359 + // uppercase (shift held) so the keyboard state is visible on the pads. 360 + if (e.is("keyboard:down:shift")) { 361 + shiftHeld = true; 362 + return; 363 + } 364 + if (e.is("keyboard:up:shift")) { 365 + shiftHeld = false; 366 + return; 367 + } 368 + 357 369 // Octave hot-switch 1-9 (BIOS also tracks this, we mirror for UI). 358 370 for (let n = 1; n <= 9; n += 1) { 359 371 if (e.is(`keyboard:down:${n}`)) { ··· 617 629 // hint in the bottom-right. 618 630 const charW = 6; 619 631 const charH = 10; 620 - const label = key.toUpperCase(); 632 + // Lowercase at rest, uppercase while Shift is held — echoes the 633 + // actual keyboard state on the pad face. 634 + const label = shiftHeld ? key.toUpperCase() : key.toLowerCase(); 621 635 const labelW = label.length * charW; 622 636 const labelX = px + floor((pw - labelW) / 2); 623 637 const labelY = py + floor((ph - charH) / 2);
system/public/m4l/notepat.com.amxd

This is a binary file and will not be displayed.