Repository navigation
Releases: F1LIP3/cubeBabyPresetsLive
Releases · F1LIP3/cubeBabyPresetsLive
Release list
v0.10.0
Full advanced live mode integration with hardware presets (A/B/C). Key changes:\n- PresetBar A/B/C buttons now enabled in advanced-live mode\n- handleSelectPreset uses resetFromKnobs + loadKnobsToPedal in advanced-live mode\n- applySettingsToDsp writes to active DSP (0x0000) — safe, doesn't corrupt flash\n- saveActivePresetToSlot now writes to flash memory (0x80000000+offset) — save survives power cycle\n- Previously saving wrote to live DSP area only — data was lost on power-off
Full Changelog: v0.7.2...v0.10.0
v0.7.2
v0.7.1
v0.7.0
v0.6.0
v0.5.0 — SOLID hooks + type fixes
SOLID Extraction
- Extracted \useUndoRedo\ hook — undo/redo stacks, persistence, operations
- Extracted \useIR\ hook — all IR state, upload, backup, load slot, scan
- Extracted \useVirtualPresets\ hook — CRUD, persistence, export/import (continued refactor)
- App.tsx reduced from 707 → 493 lines (-30%)
Bug Fixes
- Fixed stale closure in \�dd/\importAll\ (could exceed 50 preset limit)
- Fixed \loadPresets()\ called twice on init
- Fixed \handleBankChange\ depending on object reference (\�irt.current)
- Fixed \cubeBabyModel\ tuple type mismatch with Pedal component
- Fixed \Capacitor\ undeclared global
- Fixed \changeLanguage\ type narrowing
- Fixed \channels\ implicit \�ny[]\ in irProcessor
Build
pm audit: 0 vulnerabilities- \�ite build: 0 errors, 0 warnings
v0.4.0 — Virtual Presets
Virtual Presets — up to 50 named presets stored locally
Virtual Presets Mode
- 50 named presets stored entirely in localStorage — no pedal required
- Hardware/Virtual toggle in the header (HW / VIRT) switches between pedal presets and virtual presets
- Dropdown selector with add (+), rename (✎), and delete (✕) buttons
- 3 starter presets (Clean, Crunch, Lead) created on first launch
- Per-preset undo/redo (Ctrl+Z / Ctrl+Shift+Z) — history persists across sessions
- Save sends knob values to the virtual preset AND live-syncs to the pedal via DSP
- Import/export virtual presets as JSON files
- Factory reset works in both hardware and virtual mode
Usage
- Click VIRT in the header to switch to Virtual mode
- Select a preset from the dropdown — knobs update immediately
- Edit knobs, then press Save (Ctrl+S) to persist to the virtual preset
- Click + to create a new preset from current knobs
- Click ✎ to rename, ✕ to delete
Also in this release
- All architecture refactoring from v0.3.3 (32% smaller App.tsx, 9 extracted components)
- 0 npm vulnerabilities
v0.3.3
UX Overhaul — Dirty Tracking, Undo/Redo, Keyboard Shortcuts & More
New UX Features
- Dirty-state tracking: Save button pulses when changes are unsaved; shows asterisk (\Save*)
- Undo/Redo per preset (Ctrl+Z / Ctrl+Shift+Z, 30-deep history)
- Keyboard shortcuts: \1/\2/\3\ for presets, \Ctrl+S\ save, \Ctrl+E\ export, \Ctrl+I\ import, ?\ help, \Esc\ close
- MIDI device picker: Select your pedal from a dropdown when multiple MIDI devices detected
- Disconnect detection: App detects when USB cable is unplugged and shows \Pedal disconnected!\
- Loading skeleton: Pulsing placeholder UI while presets load after connect
- Revert to saved: Red button appears when edits are unsaved — click to restore saved state
- Factory reset: Reset current preset to sensible defaults
- Snappier sliders: Debounce reduced from 200ms to 50ms
Visual & Mobile
- Error boundary now uses dark theme (was hardcoded light colors)
- IR Lab section open/close state remembered between sessions
- Fixed undefined CSS variables in IR section
- Mobile layout: larger touch targets, better wrapping on small screens
- Removed dead Knob.tsx component (168 lines of unused code)
Fixes
- Fixed \useMemo is not defined\ ReferenceError (missing import)
- Fixed 3 TDZ (temporal dead zone) ReferenceErrors — reordered callbacks so handlers are defined before their deps arrays are evaluated
Architecture Refactor
- Extracted constants, helpers, and 9 components from monolithic App.tsx:
- \constants.ts, \helpers.ts, \ ypes.ts\
- \WelcomeScreen, \HelpModal, \DebugPanel, \StatusBar\
- \AppHeader, \PresetBar, \Toolbar, \IRSection, \SkeletonLoader\
- App.tsx reduced from 1027 → 701 lines (32% reduction)
- Removed unused \midi, \serialport, @types/midi\ npm dependencies
- 0 npm vulnerabilities
Android APK with Capacitor & USB-MIDI
First Android APK build with single-commit history.
- Capacitor Android platform with custom MidiPlugin.java
- Native USB-MIDI via android.media.midi API
- MIDI abstraction layer (MidiService) for web + native
- IR cabinet upload (4096-byte ROM format with header)
- Preset read/write (A/B/C) via SysEx
- Single squashed commit — no historical bloat