Lightningbeam/lightningbeam-ui/lightningbeam-editor/src/mobile
Skyler Lehmkuhl b14972f657 P6a: mobile music surface (keyboard-primary instrument pane)
The mobile Piano Roll becomes a unified, keyboard-primary instrument surface
(wireframe Plate 04/08): a playable keyboard as the base, revealing a
Synthesia-style falling-notes roll above it when the pane is tall enough.

- Shared keyboard geometry (panes/keyboard_layout.rs): width-driven, pan-aware
  pitch->x, so the roll's note columns stay aligned with the Virtual Piano keys.
  Shared keyboard_octave + keyboard_pan_x in SharedPaneState.
- Piano Roll vertical mode (is_mobile): notes as columns falling toward an amber
  now-line by the keys, tempo-map converted (beats->seconds) so onsets cross the
  line exactly when they sound. Vertical drag scrubs the timeline; horizontal
  drag smoothly scrolls the keys (snaps to nearest key on release). Long-press
  creates a note (drag to size) or resizes an existing one; pan suppresses it.
  The keyboard is embedded (reuses Virtual Piano render + MIDI); the standalone
  VirtualPiano stack slot is removed. show_roll is driven by the snapped pane
  size-class so the keyboard<->roll reveal lands on a stack snap point.
- Virtual Piano: renders via the shared layout on mobile, colors playback_notes
  like pressed keys, gates note-on/glissando to presses that start on the keys
  (never gating release), and hides QWERTY hints on mobile.
- Transport formats by document.timeline_mode (Measures->bar.beat.tick,
  Frames->MM:SS:FF, Seconds->MM:SS.mmm) — per project type, like desktop.
- In-pane instrument header (name + Presets + REC). Recording is driven from the
  app each frame (not the Timeline pane's render) so REC works regardless of
  visible panes, and stopping playback stops recording.
- Compose/Record intent opens Timeline + instrument pane; mobile central panel is
  full-bleed (no inner margin) so panes sit flush.
- phone-ui-sketches.html: inst-bar moved to the top of the music surface.
2026-07-02 07:50:37 -04:00
..
icons.rs Add mobile top bar: filename + command palette (⌕) + overflow (⋯) 2026-07-01 06:09:26 -04:00
inspector.rs P5 follow-ups: double-tap priority, inspector dismiss, breadcrumb path 2026-07-02 01:14:38 -04:00
intent.rs P6a: mobile music surface (keyboard-primary instrument pane) 2026-07-02 07:50:37 -04:00
mod.rs P6a: mobile music surface (keyboard-primary instrument pane) 2026-07-02 07:50:37 -04:00
omni.rs Unify colors via theme CSS variables; theme egui visuals 2026-07-01 07:08:00 -04:00
palette.rs Unify colors via theme CSS variables; theme egui visuals 2026-07-01 07:08:00 -04:00
stack.rs P5 mobile gestures + long-press context menus 2026-07-02 00:11:49 -04:00
surface.rs Add mobile UI shell scaffold behind LB_MOBILE_UI 2026-06-29 22:40:54 -04:00
topbar.rs Unify colors via theme CSS variables; theme egui visuals 2026-07-01 07:08:00 -04:00
transport.rs P6a: mobile music surface (keyboard-primary instrument pane) 2026-07-02 07:50:37 -04:00