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

Changelog

All notable changes to Open Stomp Manager (named Dual Stomp Manager / stomp-manager up to 0.2.0). The format follows Keep a Changelog and the project uses Semantic Versioning.

Unreleased

Changed

  • README install notes: opening the unnotarized app on macOS 15 and newer (Open Anyway in Privacy & Security), and getting past Windows SmartScreen’s warning for the unsigned app.

[0.9.0] - 2026-10-25

Added

  • Release channels: the stable branch follows the newest release and unstable the newest release or pre-release (vx.y.z-beta.n tags, published as GitHub pre-releases). Follow one from Nix or cargo instead of a version tag.
  • License files: dual-licensed under MIT or Apache-2.0, at your option.
  • A contributing guide (CONTRIBUTING.md) and issue and pull request templates.

Changed

  • New interface. The app is now built with Tauri: the same Rust engine, with a React interface in the system’s web view (WebKitGTK on Linux, WebView2 on Windows, WKWebView on macOS) instead of egui. Everything the egui app did is still there; the window is laid out the same way and adapts to narrow windows.
  • New downloads: .deb, .rpm and .AppImage on Linux, a .dmg (and the zipped app) on macOS, and an installer (plus a portable .zip) on Windows. On Linux the app now needs WebKitGTK 4.1; the packages pull it in.
  • Rewrote the README to be shorter and easier to follow.
  • Developing: pnpm tauri dev in app/ reloads the window as you edit the interface (docs/building.md). The Nix dev shell has Node, pnpm and WebKitGTK; tools/dev/shot.py takes screenshots through WebDriver, headless.

Removed

  • The egui interface (crates/open-stomp-manager). Its STOMP_SCREENSHOT hook is replaced by tools/dev/shot.py, and tools/dev/watch.sh by pnpm tauri dev.

0.8.1 - 2026-10-24

Changed

  • Built against open-stomp-lib 0.6.1 (a CI-only patch; no library behaviour change from 0.6.0).

0.8.0 - 2026-10-23

Added

  • Built against open-stomp-lib 0.6.0 (Bluetooth).
  • Wireless: with the pedal’s Wireless setting on, the app also finds and connects to it over Bluetooth LE MIDI, with no pairing (open-stomp ble feature). It is listed in the port menu as “JME STOMPBOX (Bluetooth)” with a Bluetooth sign, the header says “· Bluetooth”, and everything works as over USB except that the sync takes about 20 s. Auto-connect and the port menu prefer USB. NAM/IR imports work over Bluetooth too (about 10 s per upload), which the official app doesn’t offer.

Changed

  • macOS: the bundle’s Info.plist has a Bluetooth usage description (macOS kills an app that uses Bluetooth without one).
  • Linux: building needs the D-Bus headers (libdbus-1-dev) too.
  • Turning the pedal’s preset knob several clicks jumps to where it stopped instead of stepping through every preset on the way: after a preset change from the pedal, its messages are held until it has been quiet for 0.15 s (at most 5 s), then applied together. Over Bluetooth each click’s data trickles in for a few tenths of a second.
  • The edit-buffer read is padded like the official app’s (open-stomp fix), so it can’t return a stale record.

0.7.1 - 2026-10-22

Added

  • Rename… on user AMP and IR slots (right-click a slot under User slots): changes only the name, the sound stays (open-stomp-lib 0.5.1’s rename_user_amp / rename_user_ir; the official app can’t rename). STOMP_DEV=rename opens the dialog at startup.

Changed

  • Built against open-stomp-lib 0.5.1 (0.5.0 brought the NAM low-end fix, 0.5.1 rename). NAM imports (optimised) are much closer to the model in the low end: the fit now weights every octave equally instead of leaving the bass almost unweighted. Re-amping a bass DI through the pedal, the error against the model and IR drops from 5.2 to 3.3 dB at 40–160 Hz and from 3.5 to 2.1 dB overall, together with the optimised IR import, whose fit now covers 30 Hz – 16 kHz.

0.7.0 - 2026-10-22

Added

  • Built against open-stomp-lib 0.4.0.
  • Import NAM model: Normalise level (on by default), every model at the same volume like NAM plugins, instead of the often quiet level the model was captured at. A pure volume change.
  • Import IR… (menu, the user slots list, or right-click a user IR slot): pick a WAV impulse response and a slot; it is converted with open-stomp’s optimised IR conversion (default: fitted to the 384 samples the pedal plays, much closer to the real IR on the pedal) or exactly like the official app, and uploaded.
  • STOMP_DEV=import-ir opens the Import IR dialog at startup.

0.6.0 - 2026-10-21

Added

  • Import NAM model… (menu, the user slots list, or right-click a user AMP slot): pick a .nam file and a slot; the model is converted in the background (progress bar, cancel) and uploaded. The default is open-stomp’s optimised conversion (about a minute, closer to the real model than the official app’s on hardware); the official algorithm is the fast alternative. Native file dialogs via rfd (XDG portal on Linux through a runtime-loaded libdbus, no GTK; the Nix package and dev shell provide libdbus).
  • STOMP_DEV=import opens the import dialog at startup (for screenshots).

Changed

  • Built against open-stomp-lib 0.3.0 (optimised NAM conversion).
  • Debug builds compile the open-stomp library and rustfft optimised, so the NAM conversion stays usable.

0.5.0 - 2026-10-21

Added

  • Preset search above the preset list: filter by name or slot (lead, 5, P05); Ctrl+F (⌘F) focuses it, Enter selects the first match, Esc clears it.
  • The open-stomp library version is shown in the version chip’s tooltip, the menu, --version and --help.

Changed

  • The top bar is down to the app name, the status pill and one menu button. The menu holds the port picker, connect/disconnect, re-sync, listen only, replay and the activity log toggle.
  • Calmer look: sentence-case headings and labels instead of all caps, and borders only on what should stand out (the active preset, the selected block, focused fields). The menu has proper padding.
  • No monospace text: everything is set in Inter, with tabular digits built into the bundled font so changing numbers stay put. JetBrains Mono is no longer bundled.
  • The activity log is hidden by default; open it from the menu or with Ctrl+L (⌘L on macOS), close it from its header.
  • Builds against open-stomp-lib v0.2.0 (CI, releases and the Nix flake). The flake now locks the library input instead of fetching the library’s latest main.

0.4.0 - 2026-10-21

Changed

  • The protocol library and the connection engine moved to a separate repository and crate, open-stomp (open_stomp), which the app now uses. It replaces crates/stomp-proto and the app’s own device module, carries the full protocol documentation plus a library guide, and the capture-driven tests. Building the app now needs a checkout of open-stomp-lib next to this repository (CI, the release workflow and the Nix flake fetch it; CI and releases pin open-stomp-lib v0.1.0).
  • Documentation split: the protocol and reverse-engineering docs (01–09) now live in open-stomp-lib and this repository links there. Its own docs are about the app: a user guide, building and architecture, and the README is rewritten around the app.

0.3.0 - 2026-10-21

Changed

  • Renamed the project and app to Open Stomp Manager, to keep clear of the vendor’s Stomp Manager name. The binary and crate are now open-stomp-manager (was stomp-manager), the macOS app is Open Stomp Manager.app, the Linux desktop entry and icon are open-stomp-manager, and the repository is JackMechem/open-stomp-manager.

Fixed

  • Repository and release links pointed at the wrong GitHub account.
  • The declared minimum Rust version is now 1.95 (what egui 0.36 requires; 1.88 never built).

0.2.0 - 2026-10-21

Added

  • Editor: control the pedal from the app.
    • Select presets; Save and Save as… (rename and/or store in another slot) using the official app’s exact message sequence.
    • Pick effect models, switch blocks on/off, turn knobs (drag, scroll wheel, Shift for fine steps), set preset volume.
    • Looper transport (rec/play/dub, stop, undo/redo, clear), levels, sync and mode; drum play/stop, pattern and level.
    • System settings: input trim, global EQ, wireless, loopback.
  • Opening a block in the app shows its page on the pedal, like the official app.
  • stomp-proto: preset and settings encoders (Preset::to_raw, Settings::to_raw) and the midi::host command builders, tested byte-for-byte against the capture.
  • Cross-platform releases: CI on Linux, macOS and Windows; tag-triggered release builds (Linux tarball, universal macOS .app, Windows .exe); app icons for every platform.
  • Version display in the app (and the window title), --version, and this changelog.

Fixed

  • macOS: the pedal is detected when plugged in after the app starts (CoreMIDI hotplug notifications need a run loop on the MIDI thread).
  • Windows: --help / --version print to the terminal in release builds.

Protocol findings

  • Host → pedal CCs 0x40 (drum pattern) and 0x42/0x43 (loop levels) confirmed on hardware.
  • The first byte of the 0x12 preset-name write is the active preset.

0.1.0 - 2026-10-21

Added

  • stomp-proto: protocol library (8-in-7 packing, SysEx framing, catalogue, preset/settings records, state tracker), tested against the capture logs.
  • stomp-manager: live monitor GUI with auto-connect, read-only sync, active preset, signal chain, parameters, tuner/looper/drum, coalescing activity log and capture replay.