Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

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

notepat-remote: track color flavors the whole board + URL cache-bust

Resting pads now mix the Live track color into their base palette
(ivory whites at 12%, black-key PAD_SHARP at 22%) so every key
carries a subtle flavor of the hosting track — not just the bezel +
held sharps. Idle backdrop similarly biases toward a deeply-darkened
track color instead of the flat near-black, keeping the track
flavor alive when nothing is playing.

Live URL gets \`&v=<git-commit>\` appended so jweb/service-worker
caches can't keep an older piece pinned between lith deploys.

+24 -4
+4 -1
oven/bundler.mjs
··· 1067 1067 // the MIDI router. Everything else matches the hand-rolled notepat device. 1068 1068 function generateChunkedNotepatM4DPatcher(pieceName, bootstrapDataUri, chunks) { 1069 1069 const W = 150, H = 169; 1070 - const liveUrl = "https://aesthetic.computer/" + pieceName + "?daw=1&nogap=1&density=1"; 1070 + // Cache-bust the live URL with the git commit so jweb/service-worker 1071 + // caches can't keep an older piece pinned after a lith deploy. 1072 + const liveUrl = "https://aesthetic.computer/" + pieceName + 1073 + "?daw=1&nogap=1&density=1&v=" + GIT_COMMIT; 1071 1074 // presentation_rect gets a +1 on each axis so jweb content bleeds 1072 1075 // 1px past the visible device rect — this is the well-known Max 1073 1076 // quirk fix (same as the generic instrument patcher) for hiding
+20 -3
system/public/aesthetic.computer/disks/notepat-remote.mjs
··· 453 453 const BAR_BORDER = [55, 35, 45]; 454 454 const PAD_SHARP = [18, 18, 20]; // black-key rest fill 455 455 const IVORY = [240, 232, 215]; // white-key rest fill (piano-ivory) 456 - const BG_IDLE = [4, 2, 6]; // near-black when nothing playing 456 + // Idle backdrop: biases toward a deeply darkened track color when 457 + // Max has pushed one, otherwise a flat warm near-black. Keeps the 458 + // track's flavor alive even when nothing is being played. 459 + const BG_IDLE = liveTrackColor 460 + ? [floor(liveTrackColor[0] * 0.08), floor(liveTrackColor[1] * 0.08), floor(liveTrackColor[2] * 0.08)] 461 + : [4, 2, 6]; 457 462 458 463 // Focused theme — notepat palette, rainbow accent per note. 459 464 const focusedFg = [220, 220, 220]; ··· 612 617 ]; 613 618 } else if (focused) { 614 619 // Resting state: piano-key look — ivory whites, near-black 615 - // sharps. The rainbow only comes out when a note is active. 616 - fill = black ? PAD_SHARP : IVORY; 620 + // sharps. When Max has pushed a track color, blend a touch of 621 + // it into the rest fill so every pad carries the flavor of 622 + // the hosting track (subtle — pads still read as piano keys). 623 + const base = black ? PAD_SHARP : IVORY; 624 + if (liveTrackColor) { 625 + const mix = black ? 0.22 : 0.12; 626 + fill = [ 627 + floor(base[0] + (liveTrackColor[0] - base[0]) * mix), 628 + floor(base[1] + (liveTrackColor[1] - base[1]) * mix), 629 + floor(base[2] + (liveTrackColor[2] - base[2]) * mix), 630 + ]; 631 + } else { 632 + fill = base; 633 + } 617 634 } else { 618 635 fill = black ? keyBlack : unfocusedKeyWhite; 619 636 }
system/public/m4l/notepat.com.amxd

This is a binary file and will not be displayed.