From 695a38bdb277aefc7801fb22241f10886ae083e1 Mon Sep 17 00:00:00 2001 From: Vance Ingalls Date: Sun, 9 Aug 2026 03:38:57 -0700 Subject: [PATCH] docs(plans): add rack module identity and the preset menu to the presets doc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The rack is a 292px column of stacked modules, which is near enough a Eurorack case — so each effect gets a faceplate: a 3px family-hue rail, lettering per family, and a tint step per module within the family. Costs almost no plumbing. `group` is already on every effect in the registry so hue and lettering are derived rather than hand-assigned, and every module already renders `data-fx-node=""`, so the identity layer is CSS on an attribute that exists today. Only the Smart family is new, and carve already lives there in spirit. Records the type budget as the real decision (self-hosted only, two faces recommended — one is too subtle at 11px, five reads as a collage), and the preset menu design: grouped by the same families, module counts per row so a preset visibly IS a chain, and "measures" instead of a count on the adaptive ones, which delivers the static-vs-script distinction in one word. Mockup published as an artifact at the real panel width. Co-Authored-By: Claude Opus 5 (1M context) --- plans/audio-fx-presets.md | 54 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/plans/audio-fx-presets.md b/plans/audio-fx-presets.md index 7b6c2ba970..7b7393d368 100644 --- a/plans/audio-fx-presets.md +++ b/plans/audio-fx-presets.md @@ -287,6 +287,60 @@ data it needs. --- +## 5f. Module identity in the rack + +The rack is a 292 px column of stacked modules — which is, near enough, a +Eurorack case. Worth leaning into: a faceplate recognised by colour and +lettering before the label is read. Carve already gets a distinct treatment +(`hf-fx-carve-module`); this generalises it. + +**Three carriers, no layout change:** + +1. **A 3 px rail down the left edge** in the family hue. Cheapest possible + signal at this width — survives collapse, reads down a stack of ten, costs + no room. +2. **Lettering per family** — filters tracked-out mono caps, dynamics heavy and + tight, nonlinear italic serif, time light and airy, smart mono with a badge. + The *kind* of module is legible with the label out of focus. +3. **A tint step per module within its family**, so two filters differ without + reading as two families. + +**Family hues**, chosen to sit on `#0C0C0E` without competing with the studio's +`#3CE6AC` accent: + +| Family | Hue | Why | +| --- | --- | --- | +| Filter | `#4FA8FF` | the measuring family | +| Dynamics | `#FFB443` | grips the signal | +| Nonlinear | `#FF6B5C` | the only generative family | +| Time | `#B98CFF` | atmosphere, not control | +| Smart | `#3CE6AC` | the studio's own accent — reserved for modules that act on their own | + +**This needs almost no new plumbing.** `group` is already on every effect in the +registry, so hue and lettering are derived, not hand-assigned. And every module +already renders `data-fx-node=""`, so the whole identity layer is CSS on +an attribute that exists today. Only "Smart" is new, and carve already lives +there in spirit. + +**Type budget is the real decision.** Fonts must be self-hosted (no CDN). +Recommended: **two faces** — the UI sans plus one characterful display face +split across families. One face is too subtle at 11 px; five is a bundle cost +and starts reading as a collage on a surface authors stare at while mixing. + +**Preset menu**: grouped by the same families, so the colour picked in the menu +is the colour that appears in the rack. Each row carries the number of modules +it drops in — which quietly teaches that a preset *is* a chain. Smart entries +say "measures" instead of a count, which is the entire static-vs-adaptive +distinction delivered in one word. + +Open decisions: whether applying a preset appends or replaces (suggest append, +replace on modifier, re-apply swapping its own `fromPreset` nodes); the type +budget above; and whether character presets get drawn glyphs on their plates — +the biggest step toward "fun", and the only part needing artwork rather than +CSS. + +Mockup at the real panel width: published as an artifact, 2026-08-09. + ## 6. Architecture Mirror colour grading, because the author already understands that surface.