Skip to content

Releases: F1LIP3/cubeBabyPresetsLive

v0.10.0

Choose a tag to compare

@F1LIP3 F1LIP3 released this 21 Jun 01:02

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

Choose a tag to compare

@github-actions github-actions released this 16 Jun 03:21

Full Changelog: v0.7.1...v0.7.2

v0.7.1

Choose a tag to compare

@github-actions github-actions released this 16 Jun 02:54

Full Changelog: v0.7.0...v0.7.1

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 16 Jun 02:25

Full Changelog: v0.6.0...v0.7.0

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 16 Jun 01:55

Full Changelog: v0.5.0...v0.6.0

v0.5.0 — SOLID hooks + type fixes

Choose a tag to compare

@F1LIP3 F1LIP3 released this 15 Jun 05:19

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

Choose a tag to compare

@F1LIP3 F1LIP3 released this 15 Jun 05:00

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

  1. Click VIRT in the header to switch to Virtual mode
  2. Select a preset from the dropdown — knobs update immediately
  3. Edit knobs, then press Save (Ctrl+S) to persist to the virtual preset
  4. Click + to create a new preset from current knobs
  5. 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

Choose a tag to compare

@F1LIP3 F1LIP3 released this 15 Jun 04:53

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

Choose a tag to compare

@F1LIP3 F1LIP3 released this 14 Jun 00:55

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