DelugeHub, image 1 from its README
1/2
Firmware

DelugeHub

Hype19/100

Synthstrom Deluge Data Managerhub

DelugeHub is custom firmware for the Synthstrom Audible Deluge, by @LakortWPS. Open source under MIT, latest release v2.2.3 (September 2026).

forSynthstrom Audible Deluge·by@LakortWPS

Unclaimed. Is this yours? Sign in with GitHub as @LakortWPS to claim it.

Downloads
0
Stars
0
Forks
0
Commits
82
Last commit
Get the source

No release files yet. Build from source.

MIT· LakortWPS/DelugeHub·downloads come from the creator’s GitHub releases

74
Commits
17
Releases
74 commits and 17 releases in the last year
Activity · last 12 months
17 releases
  1. v2.2.3v2.2.3 — CI, Datensicherheits-Fixes & Startup-Crash-FixLatest0 files

    [2.2.3] — 2026-09-16

    Added

    • CI: .github/workflows/tests.yml führt die Test-Suite (54 Tests) jetzt automatisch auf Python 3.10/3.11 bei jedem Push/PR aus — vorher lief nichts automatisch
    • Batch-Rename-Kollisionsschutz: StagingStore._apply() verweigert jetzt Umbenennungen, deren Zieldateiname von einer anderen Änderung im selben Batch oder einer bereits existierenden Datei belegt ist, statt still zu überschreiben
    • Kit/Song-Löschen mit Papierkorb: geht jetzt über history.move_to_trash() statt Path.unlink() — analog zu Sample/Synth-Löschungen, kein unwiderruflicher Verlust mehr
    • XML-Validity-Guard bei "Globales Ersetzen": plan_global_replace() validiert jetzt, dass das Ergebnis noch gültiges XML ist, bevor es gestaged wird — ein zu breiter Suchbegriff kann keine kaputte XML-Datei mehr erzeugen

    Fixed

    • App-Absturz beim Start: AudioPlayer.__init__ (Sample Manager) fing beim sounddevice-Import nur ImportError ab; fehlt die native PortAudio-Bibliothek, wirft sounddevice stattdessen OSError — das crashte die gesamte App vor dem ersten Fenster. Gleiches Muster bei soundfile an drei weiteren Stellen behoben (Sample Manager Wellenform-Vorschau, Kit Manager Volume-Normalisierung) — alle vier degradieren jetzt sauber auf ihren bestehenden Fallback statt abzustürzen
    • Pad-Sample neu zuweisen: kit_manager._reassign_pad ersetzte den Sample-Pfad global in der gesamten Kit-XML — referenzierten zwei Pads dasselbe Sample, wurden beim Neuzuweisen versehentlich beide geändert. Jetzt gezielt nur auf den bearbeiteten Pad beschränkt
    • Lost Sample Finder: unsichere Auto-Match-Treffer ("Ähnlich"/Fuzzy und mehrdeutige "Exakt*"-Treffer) waren beim Batch-Anwenden standardmäßig vorangehakt; jetzt bleibt nur ein eindeutiger "Exakt"-Treffer automatisch angehakt, alles andere muss bewusst bestätigt werden
    • Volume-Cap-Replace vereinheitlicht: kit_manager/batch_hub nutzen jetzt eine gemeinsame, robustere Such-Funktion (volume_utils.apply_sequential_replacements) statt drei leicht unterschiedlicher Kopien derselben Replace-Schleife

    Docs

    • PROJECT_STATUS.md korrigiert: drei als "offen" gelistete Punkte (Line-Endings, History-Wiring, Volume-Helper-Duplikate) waren tatsächlich bereits erledigt
    • Tote Test-Stub-Dateien (test_dbg.py, test_lost_finder.py) entfernt, deren conftest.py-Begründung ("korrupt, nicht löschbar") sich als falsch herausstellte
  2. v2.2.20 files

    [2.2.2] — 2026-06-30

    Fixed

    • AutoMatchWorker: Thread-Absturz bei SD-Karten-Disconnect wird jetzt abgefangen — error-Signal + QMessageBox statt stillem Thread-Tod
    • Staging _apply(): Exceptions werden jetzt via logging geloggt statt still geschluckt; logging auf Modul-Ebene statt inline-Import
    • Batch Import .ogg: _batch_import nutzt jetzt AUDIO_EXTENSIONS aus sd_scanner — .ogg-Dateien wurden vorher ignoriert
    • Batch Export/Delete UI-Freeze: _batch_export_samples und _delete_unused_samples laufen jetzt in einem SimpleWorker-Thread statt im Main-Thread
    • _start_scan Timeout: wait() ohne Timeout ersetzt durch wait(3000) — verhindert potenzielle UI-Hänger beim Scan-Abbruch
    • Python 3.9 Kompatibilität: from __future__ import annotations in synth_utils.py — list[str] | None Syntax funktioniert jetzt auch unter Python 3.9
    • App-Icon im Built: Icon wird jetzt als eingebettete Bytes geladen statt per Dateipfad — funktioniert zuverlässig in Dev und PyInstaller-Build
    • Windows Taskleisten-Icon: SetCurrentProcessExplicitAppUserModelID gesetzt — Icon erscheint korrekt in Taskleiste und Titelleiste
  3. v2.2.1v2.2.1 — Keyboard-Shortcuts, globale Suche & Replace-Vorschau0 files

    Globale Suche (app/core/search.py neu) Keyboard-Shortcuts Replace-Vorschau (preview_global_replace, plan_global_replace in staging.py) CSV-Export für Lost Sample Finder Bugfixes (staging.py Encoding-Issues, file_ops.py Refactoring)

  4. v2.2.0v2.2.0 — Rescan-Navigation, Worker-Guard, Logging & XML-Cache0 files

    What's new in v2.2.0

    Fixed

    Navigation nach Rescan: App wirft nach jedem Rescan nicht mehr auf das Dashboard zurück — du bleibst auf der Seite auf der du warst. Nur der allererste Scan landet auf dem Dashboard

    Worker Double-Start (batch_hub, backup_sync): zweiter Klick auf Ausführen/Backup während ein Worker läuft wird jetzt geblockt mit Statusmeldung statt einem zweiten parallelen Worker

    Silent Exceptions → Logging: alle except Exception: pass Blöcke in batch_hub, kit_manager, lost_sample_finder, sample_manager, song_manager, synth_editor loggen jetzt via logging.getLogger (Warning/Debug je nach Schwere)

    Performance

    XML-Dateilisten-Cache (file_ops.py): _all_xml_files() baut die Liste einmalig pro Scan-Zyklus und cached sie; bei rename_sample/move_sample entfällt das wiederholte Iterieren über alle Dateien. Cache wird beim nächsten Scan-Start automatisch invalidiert


    Full changelog: https://github.com/LakortWPS/DelugeHub/blob/main/CHANGELOG.md

  5. v2.1.0v2.1.0 — Batch Hub Rename-Schemas & Live-Preview0 files

    What's new in v2.1.0

    Added

    Batch Hub — Rename-Schemas

    5 wählbare Benennungsschemas für Songs, Kits und Synths:

    • Deluge-Style (A001, A002 … A009, B001 …)
      • Kompakt (A1, A2 … A9, B1 …)
      • Freies Pattern ({name}, {index}, {INDEX})
      • Prefix + Nummer (PREFIX001, PREFIX002 …)
      • Name + Affix (Prefix/Suffix um den Originalnamen) Startindex-Spinner (1–9999): Batch-Umbenennung beginnt bei beliebigem Index

    Live-Vorschau-Spalte: dritte Tabellenspalte zeigt neuen Namen sofort bei jeder Änderung (orange = geändert, grau = unverändert)

    Fixed

    _compute_rename Letter-Overflow: bei mehr als 234 Einträgen (> Z9) wurden ungültige ASCII-Zeichen ([, \, …) generiert; ersetzt durch Excel-ähnliche Doppelbuchstaben (AA1, AB1 …)


    Full changelog: https://github.com/LakortWPS/DelugeHub/blob/main/CHANGELOG.md

  6. v2.0.5v2.0.5 — Code Quality & Synth Editor Bug Fixes0 files

    What's new in v2.0.5

    Bug Fixes

    • Synth Editor — OSC type / LFO shape / filter mode not saved Changes to the OSC type, LFO shape and filter mode comboboxes were silently discarded on every save. All three fields are now correctly written back to the XML file, handling both Deluge firmware formats (attribute and child-element style).

    • Synth Editor — robust XML parsing _load_params and _save_params used ET.parse() directly, causing silent failures on malformed Deluge XMLs. Both now use _parse_xml_robust() with lxml recovery fallback.

    • Batch Hub — "Volumes normalisieren" silent no-op for Synths The option appeared in the Synths tab but did nothing. Removed; the option remains available for Kits.

    • Batch Hub — import skipped count Files already present at the import destination were silently skipped. The status message now shows how many files were skipped.

    • Python 3.9 compatibility list | None / SDCardIndex | None union syntax (Python 3.10+ only) replaced with Optional[list] / Optional[SDCardIndex] from typing. Minimum supported version is now Python 3.9.

    Refactoring

    • Redundant staticmethod wrappers removed from kit_manager and song_manager
    • Dead history interface removed from song_manager
    • Duplicate XML file collection logic in batch_hub extracted into _collect_xml_files() helper
    • ParamSlider.get_value() added as symmetric counterpart to the existing set_value()

    Full changelog: https://github.com/LakortWPS/DelugeHub/blob/main/CHANGELOG.md

  7. v2.0.40 files
  8. v2.0.3v2.0.3 — Bugfix Release1 file

    What's Changed

    🐛 Fixed

    • StagingStore wiring (main_window.py): Shared StagingStore instance is now correctly injected into all modules via set_staging() loop and re-wired on SD path change; pending changes are restored from .delugyhub_pending.json on startup
    • Volume helpers centralized (core/volume_utils.py): vol_to_display, display_to_vol, vol_to_amp, amp_to_vol moved to a shared module — removed three identical inline copies from kit_manager, song_manager, batch_hub
    • Kit Manager — normalize replace bug: Volume replacement now uses a search_pos tracker to prevent the wrong occurrence from being replaced when multiple pads share the same hex value
    • Sample Manager — audio playback: Switched primary audio loader to soundfile, which natively handles 24/32-bit WAV, AIF/AIFF, FLAC and OGG; stdlib wave kept as fallback for 16-bit WAV only
    • models.py — files_with_missing: Synths were not included in the missing-files list; all three content types (songs, kits, synths) are now returned
    • Synth Editor — _save_params replace collision: Parameter replacement is now anchored to the tag name (>old_hex</tag>) instead of a bare hex string, preventing a parameter with a coincidentally identical value from being overwritten
    • Lost Sample Finder — manual fix ignored: _manual_fix_row wrote the chosen path to ref.user_choice (never read); corrected to ref.resolution so double-click manual assignments are actually applied on "Fixes anwenden"
    • Lost Sample Finder — relative_to() crash: ApplyFixWorker now catches ValueError when the resolved path is outside the guessed SD root and falls back to the absolute path

    Full Changelog: https://github.com/LakortWPS/DelugeHub/blob/main/CHANGELOG.md

  9. v2.0.2v2.0.2 — Windows Installer & Fixes0 files

    What's New

    Windows Installer

    • New build system via PyInstaller + Inno Setup produces a standalone DelugeHub-2.0.2-Setup.exe requiring no Python installation on the end user's machine
      • See installer/README.md for build instructions

    Fixes

    • Batch Hub: checkbox column header was truncated — replaced with ✓ icon and reduced column width to 30px
      • synth_editor.py: null bytes appended during merge conflict removed — file is now valid Python again
      • App icon added (window, taskbar, installer, .exe)

    Installation

    Run from source

    pip install -r requirements.txt
    python main.py
    

    Windows (no Python required)

    Download and run DelugeHub-2.0.2-Setup.exe from the Assets below.

  10. v2.0.1v2.0.1 — UI & Layout Fixes0 files

    Fixes

    • Import buttons (Kit & Synth) now show a warning dialog when no SD folder is loaded
      • Button text clipping: replaced QMessageBox with QDialog in PendingPanel
      • Backup layout: folder field moved inline into page header
      • Backup layout: left panel split into vertical QSplitter for proper space distribution
      • Backup buttons: setFixedHeight → setMinimumHeight; increased QMessageBox button min-width to 120px
      • Toolbar labels: long labels shortened with tooltips
      • Tables: removed setMaximumWidth from kit list, synth list and song detail panel
      • Delete buttons: icon-only (🗑) with tooltip in all modules
      • Theme toggle removed from main window header (now in Settings only)
  11. v2.0.0v2.0.0 — Staging System (Major Release)0 files

    What's New

    Staging System

    All destructive operations (XML edits, renames, deletes) are now buffered in RAM and only written to disk on explicit user command.

    • StagingStore (app/core/staging.py): In-memory buffer for pending changes; auto-saves as .delugyhub_pending.json on SD card
      • PendingPanel (app/widgets/pending_panel.py): Per-module widget showing pending changes with save/discard options
      • Status bar badge in MainWindow: Shows total pending changes + "Save all" button
      • Startup restore: Detects and restores pending changes from previous sessions
      • Backup: New "Without Samples" option for faster, smaller backups

    Modules Updated

    All write operations in Song Manager, Kit Manager, Synth Editor and Batch Hub now use the staging system.

  12. v1.1.0v1.1.0 — Volume Cap + Batch Hub + Lost Sample Finder0 files

    What's New

    Volume Cap Feature

    • Kit Manager: New buttons to cap Kit Master Volume and Pad Volumes to a user-defined maximum (0–50 Deluge scale)
      • Song Manager: New buttons to cap Song Master Volume and Clip Volumes
      • Both with Undo/Redo support

    New Modules

    • ⚡ Batch Hub: Bulk rename, export, delete, normalize across all content types; includes 3 new batch volume cap operations
      • 🔍 Lost Sample Finder: Find missing samples with auto-match and batch fix
      • 💾 Backup & Sync: Create ZIP backups, manage history, selectively restore
      • ⚙️ Settings: SD path, theme (dark/light), auto-scan

    Fixes

    • XML parser for Deluge firmware 2.x format
      • lxml recovery for corrupted XML files
      • Various layout and column width bugs
  13. v1.0.4v1.0.4 — lxml Recovery & Column Fixes0 files

    Fixes

    • Broken Deluge XML files with missing closing tags (e.g. </modKnobs>) are now automatically repaired and loaded via lxml
      • All table column headers fully visible — mode changed to Interactive with adjusted widths
  14. v1.0.3v1.0.3 — Firmware 2.x XML Parser Fix0 files

    Fixes

    • XML parser now correctly handles Deluge firmware 2.0.0-beta format — files with <firmwareVersion> and <earliestCompatibleFirmware> before the main content element are parsed without errors
      • Unescaped & characters in Deluge XML files are automatically corrected to &amp;
      • Removed deprecated Qt.AA_UseHighDpiPixmaps warning on startup
  15. v1.0.2v1.0.2 — XML Parser & Version Fixes0 files

    Fixes

    • App version in the sidebar is now loaded dynamically from APP_VERSION (was hardcoded)
      • XML parser is robust against invalid control characters in Deluge files
      • XML parser handles "junk after document element" — Deluge pads some files with null bytes after the root tag
  16. v1.0.1v1.0.1 — UI Fixes0 files

    Fixes

    • QLabel backgrounds are now transparent — no visible box behind text on cards
      • QPushButton no longer shows a dotted focus outline after clicking
  17. v1.0.0v1.0.0 — Initial Release0 files

    What's New

    Initial public release of DelugeHub — an all-in-one SD card manager for the Synthstrom Deluge.

    Features

    • 🎵 Song Manager — Browse, rename, duplicate and export songs with all dependencies
      • 🥁 Kit Manager — Edit kits & pad assignments
      • 🎹 Synth Editor — Edit parameters, import/export
      • 📁 Sample Manager — Folder tree, move/rename with automatic XML path update
      • 🔍 Lost Sample Finder — Find missing samples, auto-match, batch fix
      • 💾 Backup & Sync — Create ZIP backups, manage history, selectively restore
      • ⚙️ Settings — SD path, theme (dark/light), auto-scan

    Requirements

    • Python 3.10+
      • PySide6 >= 6.6.0
      • lxml >= 5.0.0