Slopsmith Desktop v0.2.7 bundles a refreshed slopsmith core plus updates across 9 plugin repos, on top of substantial work in the desktop runtime itself.
Note for end-users: when you launch v0.2.7 for the first time, allow a moment for ML model caches to populate. Subsequent launches are fast.
✨ Highlights
- 3D Highway is now the default visualization for guitar arrangements, with WebGL2 fallback, fret-column markers, fret-inlay number labels, "Up Next" section HUD, double sustain trail for open strings, and camera-swoop fix during long intros.
- Native audio engine — noise gate with threshold/release/depth controls + preset-scoped state, plus a native desktop audio path for the NAM tone plugin.
- Live MIDI recording in the editor — capture a Keys arrangement straight from a connected MIDI keyboard. You can also author Keys arrangements from scratch now.
- Lyrics Karaoke gains live mic pitch matching with octave correction and a /pitch endpoint via the Demucs server.
- Sloppak Converter bulk mode + queue dashboard — convert your whole library in the background.
- Plugin-agnostic guided tour engine (Shepherd.js) with a
?button in the player. - Keyboard shortcuts system with panel scoping; library keyboard nav (focus search, arrow nav, Enter to play); ESC from player returns to launching screen.
- Settings export / import to back up and restore your configuration.
- Demo mode (
SLOPSMITH_DEMO_MODE) for HF Spaces public demo.
🖥️ Desktop runtime (slopsmith-desktop)
- feat(audio): native noise gate (threshold / release / depth) + preset-scoped state (#44)
- feat(audio): dB sliders, preset defaults, tone automation, safe chain reload (#26) — first contribution from @rodsakuramoto 🎉
- feat: native audio device probing and safer reconfigure (#47)
- feat: replace splash spinner with dancing guitarist animation (#33)
- feat: immediate startup splash with live progress (#27)
- fix(splash): set alwaysOnTop so loading window stays visible (#40)
- fix(splash): subtitle notes that first launch may take a moment (#41)
- fix(python): pin ML model caches to
~/.cacheso weights persist across launches (#45) - fix: bundle ffprobe alongside ffmpeg on every platform (#46)
- fix: wire update_manager plugin + fix dev-mode server readiness (#31)
- fix: expose getBackingPosition / Duration / isPlaying IPC for exclusive-mode audio (#32)
- fix(bundle): copy entire
static/dir instead of 4-file whitelist - fix(audio): inject Chain button at startup, not only on first song play
- chore(build): install slopsmith runtime deps from
requirements.txtduring bundling (#34) - chore(build): Linux Python bundling switched to python-build-standalone (#35)
- chore(build): pull
update-managerplugin frommasc0t/slopsmith-update-manager(#48)
🎸 Slopsmith core
3D Highway
- 3D Highway promotion (4-PR series): bundle as core plugin, default-flip with WebGL2 fallback + nag, override detection, README updates (#171, #175, #176)
- "Up Next" section HUD card + on-highway toggle (#206)
- Double sustain trail for open strings (#204)
- Static fret-inlay number labels toggle (#194)
- Fret-column reference markers (#192)
- Eliminate camera swoop at song start during long intros (#190)
- Fall back to CDN if vendored Three.js fails to load
Highway / viz picker
- Recreate canvas on renderer context-type change — Auto can now route to 3D Highway for guitar songs without reload (#193)
- Show resolved viz in Auto closed-state label (#189)
- Clear stale
songInfoonhighway.stop()to prevent wrong stems loading on song switch (#177)
Library
- Keyboard shortcuts system with panel scoping (#173)
- Library keyboard navigation: focus search, arrow nav, Enter to play (#150)
- Volume up/down keyboard shortcuts (#197)
- Persist library view, sort, format, and tree expand state (#136)
- Library filters + sort improvements (#134)
psarc_platformfilter to suppress_m/_pduplicate library entries (#174)- First-time scan banner when library has never been imported (#191)
- Esc from player returns to launching screen (#153)
Sloppak / PSARC
- Redirect torchaudio.save to soundfile in demucs subprocess (#203)
- Make demucs subprocess work under embeddable Python's
._pthisolation (#196) - Pin bundled bin on demucs PATH; surface stdout in errors (#202)
- End-to-end coverage for PSARC → sloppak conversion (#208)
Plugin loader & infra
- Bundled plugins always win over user-installed copies (#180)
- Use sha256 for install marker so plugins don't reinstall every boot (#195)
- SSE push transport for startup progress (#169)
- Plugin logger injection + structured logging migration (3-phase: #157, #159, #163)
- Plugin-agnostic guided tour engine (Shepherd.js) (#149)
?tour-trigger button in player controls bar- Diagnostic bundle export (#170)
- Demo mode (
SLOPSMITH_DEMO_MODE) for HF Spaces public demo (#148) - Settings export / import: backup and restore user config (#114)
- Audio mixer registry + popover (#94)
Audio routing
- Route song audio through JUCE backing track in exclusive mode (#164)
- Save button next to Demucs Server URL field (#182)
🔌 Bundled plugin updates
Editor (byrongamatos/slopsmith-plugin-editor)
- Live MIDI keyboard recording for Keys arrangements
- Author Keys arrangements from scratch (allows multiple Keys arrangements)
- Cull ghost notes to visible window; fix EOF cursor reset
- Throttle
_recCountDOM updates; lock arrangement selector during recording - Fix
/static404 when plugin is shadow-installed in user plugins dir - Fix read-only-static crash on desktop bundles
- Fix piano range max (127→143)
Lyrics Karaoke (byrongamatos/slopsmith-plugin-lyrics-karaoke)
- Live mic pitch-matching feedback in karaoke renderer
- Tier-1 pitch quality: narrow range, mode-of-semitone, voiced-prob weighting, octave correction
- Use Demucs server
/pitchendpoint when configured, fall back to local pYIN - Stabilize pitch chart vertical layout; recover unvoiced syllables
- Score mic frames by capture time; reset on transport seek/pause
- Age out mic indicators on wall clock; restore mic on karaoke re-toggle
- Preallocate yinBuffer + cap tau range to vocal freqs for ~5.4× speedup
- Accessibility, high-sample-rate buffer sizing, pill-update throttle
NAM Tone (byrongamatos/slopsmith-plugin-nam-tone)
- Native desktop audio path (low-latency NAM via JUCE)
- Fix sloppak NAM mappings; recovery for native audio path
- Stop NAM test when audio settings change
- Lower input-gain slider min to 0; sync slider on preset apply
- Polish NAM native settings UI; associate labels with controls
NoteDetect (byrongamatos/slopsmith-plugin-notedetect)
- Diagnostic note failure feedback (#21)
Splitscreen (topkoa/slopsmith-plugin-splitscreen)
- Generic per-panel viz picker — supports keys, drums, and any future
slopsmithVizplugin - Persist split-screen on-state across browser sessions
- Lyrics overlay above any viz; canvas-replace + pre-install renderer
- Multi-instance viz API for Piano, Drums
- Many fixes: legacy
cfg.mode === '3d'mapping, focus-listener cleanup, viz-factory guards, in-flight queue rebuild
Sloppak Converter (topkoa/slopsmith-plugin-sloppak-converter)
- Bulk conversion + queue dashboard (slopsmith#107)
- Index new sloppak in meta_db on conversion done
- Async sync endpoints, off-loop validation, DoS caps
- Per-row retry split flag, bulk bar visibility on non-library screens
- Path traversal hardening; pause/resume tests
- Honor remote demucs server in split gate
- Linux
/configfallback in_cleanup_stale_torchcodec - Drop torchcodec from requirements; add soundfile
Stems (topkoa/slopsmith-plugin-stems)
- Expose
window.stemsAPI (setVolume,setMuted,getState,stemState) - Harden merge against non-object globals; preserve existing
window.stemsprops
Tabview (byrongamatos/slopsmith-plugin-tabview)
- Fix
width:0mount race + sloppak support (slopsmith#133)
Multiplayer (byrongamatos/slopsmith-plugin-multiplayer)
- Migrate
print()to structured logging (slopsmith#155 phase 4)
Piano (byrongamatos/slopsmith-plugin-piano)
- Use
:scope > buttonto avoid nested-buttoninsertBeforecrash
Update Manager (masc0t/slopsmith-update-manager)
- Initial public release (v1.5.0)
- Bundled-plugin awareness
- Desktop build compatibility (PLUGINS_DIR, restart, core card)
- Plugin home moved from
byrongamatos/slopsmith-plugin-update-managertomasc0t/slopsmith-update-manager— desktop bundle list updated in #48.
🙏 Contributors
Thank you to everyone who shipped code into this release:
- @byrongamatos — desktop runtime, slopsmith core, plugin infrastructure
- @topkoa — 3D Highway "Up Next" HUD + double-sustain trail, Sloppak Converter hardening, Splitscreen viz picker rewrite, Stems API
- @mogul (Bret Mogilefsky) — panel-scoped keyboard shortcuts system (slopsmith#173)
- @barlind ✨ first contribution — native audio device probing + safer reconfigure (desktop#47), NAM native desktop audio path
- @rodsakuramoto ✨ first contribution — dB sliders, preset defaults, tone automation, safe chain reload (desktop#26)
- @vdwstoffel ✨ first contribution (Christoff van der Walt) — volume up/down keyboard shortcuts (slopsmith#197)
Plus automated review assistance from GitHub Copilot SWE agent across multiple PRs.
Full desktop changelog: v0.2.6...v0.2.7
What's Changed
- Add immediate startup splash with live progress by @byrongamatos in #27
- feat(audio): dB sliders, preset defaults, tone automation, and safe chain reload by @rodsakuramoto in #26
- fix: wire update_manager plugin and fix dev-mode server readiness by @byrongamatos in #31
- fix: expose getBackingPosition/Duration/isPlaying IPC for exclusive mode audio fix by @byrongamatos in #32
- feat: replace splash spinner with dancing guitarist animation by @byrongamatos in #33
- Install slopsmith runtime deps from requirements.txt during bundling by @byrongamatos in #34
- Linux Python bundling: download python-build-standalone, drop deadsnakes by @byrongamatos in #35
- feat(audio): native noise gate (threshold/release/depth) + preset-scoped state by @byrongamatos in #44
- fix(splash): subtitle notes that first launch may take a moment by @byrongamatos in #41
- fix(splash): set alwaysOnTop so loading window stays visible by @byrongamatos in #40
- fix(python): pin ML model caches to ~/.cache so weights persist across launches by @byrongamatos in #45
- fix: bundle ffprobe alongside ffmpeg on every platform by @byrongamatos in #46
- Add native audio device probing and safer reconfigure by @barlind in #47
- chore(build): pull update-manager plugin from masc0t/slopsmith-update-manager by @byrongamatos in #48
New Contributors
- @rodsakuramoto made their first contribution in #26
- @barlind made their first contribution in #47
Full Changelog: v0.2.6...v0.2.7