Recording & audio:
- Master-bus WAV recorder: arm + FX-tail + SAF output folder on the mixer
toolbar; allocation-free capture (ring buffer -> writer thread).
- Oboe is now the default backend; falls back to AudioTrack only on init
error and shows a popup. Removed the manual engine toggle.
- Arpeggiator: fixed loop-boundary slip (phase-continuous), monophonic
(no chord/voice pile-up), and a per-bar reset toggle.
- AmbienceReverb: 8-line FDN (was 16) to fit the real-time budget; per-bus
soft-clip limiter; per-channel non-finite guard on the master sum.
UI / layout:
- Responsive landscape layouts: side nav rail; tracker grid beside the
arrangement/keyboard; toolbox tiles beside a wider keyboard; two-column
mixer strips; collapsed transport toolbar.
- Two-column instrument/effect editors; reverb controls paged with dot
pagination.
- Arrangement: per-lane mute toggles; center-follow scrolling.
- Tracker toolbar: BLK dropdown, SKIP moved by OFF/KBD, glyph edit buttons.
- Sampler: normalize button, per-pad volume snap, single CLEAR.
- Import error popups; content validation on all file loaders.
- App themes: import/export/delete/dropdown library (stock themes protected).
Persistence & QoL:
- Persist keyboard MIDI channel/octave; remember loaded project in the
settings dropdown; New Project button.
Cleanup:
- Removed dead code and fixed audio-thread allocation hot spots
(per-sample iterators, Math.random on the RT thread, etc.).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>