Skip to main content

Panels (components/panels/)

Full panel/page-level components — each represents a major section of the DAW UI.

Components

Design Conventions

  • Panels own layout — Each panel manages its own scrolling, sizing, and responsiveness. App.tsx only controls panel visibility and positioning.
  • Canvas renderingArrangementView and MidiEditor use <canvas> for performance-critical rendering (playhead, note grid). The canvas uses requestAnimationFrame with data-driven updates from subscribeRtBuffer().
  • Keyboard shortcuts — Panels register their own keyboard event handlers. Transport handles space (play/pause), MidiEditor handles note editing shortcuts.
  • Panel state — Panel visibility (mixer open, chat open, etc.) is stored in useMixerStore and persisted via Zustand → C++ → git.