Skip to content

Playground polish: KeyboardContainer, piano voice, unified controls

jedmund requested to merge jedmund/playground-polish-2 into main

Created by: jedmund

Summary

  • Fix piano voice: continuous decay envelope (was jumping from 5% to 40%), soft attack ramp, sustain-on-hold with release phase
  • Add KeyboardContainer component with two size classes (contained/docked) and overlay system for step arcs and degree labels
  • Unify all 8 keyboard playground tools into a single KeyboardContainer driven by the configurator panel
  • Replace mode picker (Exercise/Free Play) with size class toggle, octave controls, and overlay toggles
  • Delete FreePlayKeyboardView, replaced by KeyboardContainer

Includes all prior work from jedmund/module-2-integration: sound design tools, module 2 content, tool playground, and reactive parameter controls.

Test plan

  • Open any keyboard tool in the playground
  • Switch between Contained and Docked size classes
  • In Contained: toggle 1-2 octaves, verify keys stay the same size and height
  • Toggle step arcs on, adjust arc count 1-7
  • In Docked: verify keyboard anchors to bottom, keys have natural proportions
  • Play notes: verify smooth attack, sustain while held, fade on release
  • Verify sound design tools (Waveform Generator, etc.) still work independently
  • Check lesson keyboards are unaffected (SharedKeyboardView, exercise views)

Merge request reports

Loading