Commit Graph

8 Commits

Author SHA1 Message Date
Jose Luis Montañes
499b4f9e70 sandbox/studio: realistic brushed-aluminium knob (multi-layer lighting)
Previous version was too flat. Real metal needs concentric brushing
(not radial), a strong horizontal specular band, multiple light
sources and a defined bevel.

Disc rendering now layers:
- Radial base gradient (matte foundation, slightly dark at edge)
- Concentric brushing rings (lathe-turned aluminium, alternating
  bright/dark with deterministic pseudo-random alpha)
- Vertical lighting overlay (light-from-above gradient)
- Horizontal specular band on the upper portion (light source reflection)
- Subtle rim light from below (typical of softbox-lit studio gear)
- Bright bevel crescent on the upper edge + dark crescent on the lower
- Inset shadow line where disc meets the dark rim

Indicator notch refined to read as engraved (dark groove + thin
bright lower lip catching light on the inner edge).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 18:08:23 +02:00
Jose Luis Montañes
249e2a2b96 sandbox/studio: knob now has large metallic disc filling the body
Reading the close-up: the knob is dominated by a big metallic chrome
disc that occupies most of its surface. The dark part is just a thin
outer rim. The indicator is a small dark notch on the disc that
rotates with the value (the disc itself stays vertically lit).

- Thin dark rim around the outside (~3px @ 56).
- Large metallic disc fills the inside (radial gradient, brushed-metal
  striations from center outward, top crescent highlight).
- Indicator is a small dark triangular notch on the disc, base near
  the center, tip toward the rim, rotated to the value angle.
- Amber arc kept outside everything as a value-progress meter.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 18:06:08 +02:00
Jose Luis Montañes
baca3c2df1 sandbox/studio: metallic ring on knobs, top/bottom bars, recessed code
Three changes following the reference more closely:

1. Knobs now have a metallic outer bezel (chrome ring): vertical
   gradient running silver at the top → dark at the bottom, with a
   thin highlight on the upper crescent. The dark dial sits inside
   it with a slight inner shadow showing depth. Size bumped to 56px
   so the bezel is visible.

2. Layout split into two stacks:
   - left-stack: top-bar / screen / bottom-bar (vertical strip)
   - right-stack: knobs / seq

3. Top bar: STOP+RUN as a tight pair (no gap), buttons stretch to
   the bar's full height. Bottom bar matches the top bar visually
   and shows a "● RUNNING_" label with the pulsing amber dot, no
   longer inside the code area.

4. Code area is now *recessed* into the rack — no separate bordered
   panel. Inset shadows + slightly darker background simulate a
   cutout / screen window in the metal frame.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 18:01:24 +02:00
Jose Luis Montañes
64620ef75a sandbox/studio: knobs in charcoal black, neutral palette, drop sidebar
Aligning the mockup more closely with the reference image:

- Knob body is now a pure charcoal/black radial gradient (no warm
  brown tint). Top-left specular dim, top crescent gloss, outer dark
  ring. Drop shadow underneath so the knob "sits on" the panel.
- Value readouts ("120.0", "2.50", ...) in cream/white, no inset
  amber LCD frame. Amber is reserved for arcs / LEDs / bullet labels
  exclusively.
- Panel palette pulled toward neutral dark (less brown saturation).
- Sidebar with the description bullets removed; layout is just the
  hardware unit at full width.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 17:56:39 +02:00
Jose Luis Montañes
9b0c7c0cac sandbox: studio hardware emulation mockup (variant D)
A fourth aesthetic direction beyond the three knob variants — based
on the user's reference image (Moog/Roland/Korg vintage rack gear).

- Warm amber+charcoal palette (replaces the cyan phosphor accent).
- Beveled metal panels with corner screws (radial-gradient circles
  with a slot mark).
- Knobs: brushed-metal radial gradient, knurled perimeter ridges,
  specular highlight, white-warm engraved indicator, amber arc with
  glow.
- LEDs for step cells: dim amber-off when inactive, full amber-on
  with radial glow when active. Animated playhead outline at 8 Hz.
- Code "screen" with engraved-screen feel (inset shadow, faint amber
  bloom). Status line "> RUNNING_" with blinking cursor.
- Engraved labels (small caps, double text-shadow for inset).
- Tabular numeric value displays in their own dark inset readouts
  (LCD-style).
- Header buttons (STOP / RUN) with green run LED, pulsing red status.

Static mockup — no audio engine wired. Knobs are draggable to evaluate
the feel; step LEDs toggle on click. Decision pending: pick this or
one of A/B/C from knobs.html and align all surfaces to that language.
2026-05-01 17:50:34 +02:00
Jose Luis Montañes
299f365d71 sandbox: 3 knob variants for design exploration (track 2 prep)
Standalone page at web/sandbox/knobs.html showing three aesthetic
directions side-by-side:

- A "hardware": radial gradient + perimeter ridges + specular highlight,
  reads as a photographed knob.
- B "geometric": flat shapes, dot indicator at perimeter + short tick
  from center; OP-1 / diagram register.
- C "phosphor": outline + heavy glow on accent arc and indicator;
  synthwave / vacuum-tube feel.

Each variant shows 4 static knobs (0/33/66/100%) plus an interactive
draggable instance. DPR-aware canvas, vertical drag with shift-fine,
double-click to recenter. Pick one and the rest of the surfaces align.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 17:46:13 +02:00
Jose Luis Montañes
3c1b1d4aff track 1: foundation polish — splitter, custom scrollbars, micro-states
Adds docs/roadmap.md outlining the 4-track plan (foundation, surface
aesthetics, organizable panel, theming) and ships the first track.

- Resizable splitter between editor and control surface (drag the seam,
  double-click to reset). Width persists in localStorage.
- Custom scrollbars (WebKit pseudo-elements + Firefox scrollbar-color)
  applied globally so CodeMirror's .cm-scroller, the right pane and the
  piano roll all match the dark theme.
- Header separators between transport / gain / info groups.
- Smooth transitions on buttons, range thumbs and surface borders.
- :focus-visible rings using accent-glow color token.
- Pulse animation on the live status dot.
- New design-system tokens for layout (--right-w, --splitter-w),
  timing (--t-fast/base/slow), and panel hierarchy (--panel-hi,
  --gutter-hi, --divider, --fg-mute, --accent-glow).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 17:42:53 +02:00
Jose Luis Montañes
7debc7436e initial: code-sinth — DSL-driven modular synth (Python engine + web app)
Patch language with osc/noise/trig/seq/adsr/filter/delay/poly + voice templates
and inline live values. Two runtimes:

- code_sinth/ — Python engine (numpy + sounddevice). Hot-reload via mtime
  watcher. Offline render to WAV. Static-HTTP+WS visualizer (viz/) that
  injects waveforms next to each `node X = ...` line.
- web/ — port of the engine to JS running in AudioWorklet. Single static
  page with CodeMirror 6 editor (line widgets for live waveforms) and a
  control surface on the right with knobs/faders/step_seq/piano_roll
  declared from the patch. State preserved across hot-reload.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 17:37:06 +02:00