Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ShellLayout

File: Rhapsodist/Core/Includes/ShellLayout.js · Namespace: Shell

Overview

ShellLayout declares the entire shell component tree (header, footer, preset browser, Settings window, keyboard, and everything else built-in) and hands it to LayoutBuilder to build.

Usage

ShellLayout has no callable API for other scripts, it declares the shell component tree once, when Core.js includes it, then hands it to LayoutBuilder to build.

UI and processor relationships

Two invisible knobs declared here, knbPatch and knbArticulation, are linked via processorId/parameterId to ConfigurationHandler’s own Patch/Articulation knobs, mirroring the same value both ways.

ConfigurationHandler is what actually applies a patch/articulation change, this pair is the UI-facing surface for it, and every other subsystem that needs to react (keyboard key colours, component visibility, articulation list, envelope UI) listens to the shell’s copy independently via its own broadcaster. See Architecture: Patch and Articulation Changes.

State and persistence

Several shell/session-state components are excluded from the preset (saveInPreset: false): the preset browser buttons, btnSettings/btnSettingsClose, btnRhapsody, vptSettingsMenu, and the Settings-window controls (cmbStreamingMode, cmbMaxVoices, cmbZoom, knbGlobalBpm, btnLazyLoad, btnTooltips).