Resonance – ein alternativer Squeezebox-Server in Python (Open Source)

Für Neuigkeiten und Ankündigungen zum Thema SqueezeBoxen oder Forum - keine Supportthreads
Antworten
Benutzeravatar
platzregen
Beiträge: 2
Registriert: 9. Februar 2026 21:32
SqueezeBox: Radio

Resonance – ein alternativer Squeezebox-Server in Python (Open Source)

Beitrag von platzregen »

Resonance – ein alternativer Squeezebox-Server in Python

Hallo zusammen,

ich möchte euch mein Hobbyprojekt vorstellen: Resonance – eine unabhängige Neuimplementierung des Squeezebox-Servers, komplett in Python mit asyncio geschrieben.

https://github.com/endegelaende/resonance-server

Was ist das?

Resonance spricht dieselben Protokolle wie LMS (Slimproto, JSON-RPC, Cometd, CLI) und kann Squeezebox-Hardware sowie Squeezelite steuern. Es ist kein Fork von LMS, sondern von Grund auf neu geschrieben – mit dem LMS-Quellcode als Referenz für das Protokollverhalten.

Was funktioniert bereits?
  • Slimproto (Player-Steuerung, Discovery)
  • JSON-RPC API und Cometd (kompatibel mit LMS-Clients)
  • Jive-Menüsystem (Radio, Touch, Boom, Controller)
  • HTTP-Streaming (MP3, FLAC, OGG, WAV als Passthrough)
  • On-the-fly Transcoding (M4A, M4B, AAC, ALAC via faad/lame)
  • Gapless Playback, Crossfade, ReplayGain
  • Seeking (byte-basiert und zeitbasiert)
  • Musikbibliothek mit Scanner, Volltextsuche, Cover Art
  • Alarm-Scheduling
  • Web-UI (Svelte 5, noch recht einfach gehalten)
Was wurde getestet?

Ich besitze nur ein einzelnes Squeezebox Radio – damit läuft alles stabil. Andere Hardware (Touch, Boom, Transporter, Classic, Controller) konnte ich bisher nicht testen. Squeezelite funktioniert ebenfalls.

Apps wie iPeng und Squeezer sollten grundsätzlich funktionieren (die API ist LMS-kompatibel), aber auch das ist noch nicht verifiziert.

Wichtig:
  • Das ist ein Hobbyprojekt im Alpha-Status – es wird Bugs geben
  • Kein offizielles Projekt von Lyrion/LMS
  • Lizenz: GPL-2.0 (wie LMS)
Warum?

Ich finde die Squeezebox-Plattform großartig und wollte verstehen, wie sie unter der Haube funktioniert. Dabei ist nach und nach ein Server entstanden, der tatsächlich Musik abspielt. :)

Feedback willkommen!

Falls jemand Lust hat, das auszuprobieren – ich freue mich über jede Rückmeldung, insbesondere von Leuten mit anderer Hardware als Radio. Bug-Reports gerne direkt auf GitHub:

https://github.com/endegelaende/resonance-server/issues

Danke an die Community hier – ihr haltet die Plattform am Leben! 👍
Benutzeravatar
JoeMod2015
Doktor Squeezebox
Beiträge: 274
Registriert: 6. Oktober 2015 17:12
SqueezeBox: Transporter
SqueezeBox: Boom
SqueezeBox: Classic
SqueezeBox: Radio
SqueezeBox: Touch
SqueezeBox Server läuft auf: Synology DS420+, Ubuntu 20.04, Windows Server 2012R2

Re: Resonance – ein alternativer Squeezebox-Server in Python (Open Source)

Beitrag von JoeMod2015 »

Moin,

das ist ja großartig! Ich schau mir das gerne an, habe alle Squeezebox-Modelle da. Und nutze auf Android Squeeze Ctrl zum Steuern, auch dazu kann ich Dir dann die Erfahrungen berichten.
LMS ist bislang unverzichtbar, kommt mir aber stellenweise sehr träge vor. Wenn es da was mit besserer Performance gibt, hätte ich sicher nichts dagegen.
Leider kann ich noch nicht versprechen, dass so bald Feedback von mir kommt. Das WE ist voll, vielleicht komme ich am Montag dazu.

Viele Grüße,
Joe
Benutzeravatar
platzregen
Beiträge: 2
Registriert: 9. Februar 2026 21:32
SqueezeBox: Radio

Re: Resonance – ein alternativer Squeezebox-Server in Python (Open Source)

Beitrag von platzregen »

Hallo zusammen, kurzes Update was sich seit dem 9. Februar getan hat.

@JoeMod2015 — Super, dass du alle Modelle hast! Bin sehr gespannt auf deine Erfahrungen, besonders mit Touch und Transporter. Kein Stress mit dem Timing.

Neue Features seit dem ersten Post:
  • Plugin-System: Resonance hat jetzt eine Plugin-Architektur. Plugins koennen Commands, Jive-Menueintraege, Event-Hooks, HTTP-Routen und Content-Provider registrieren. Es gibt eine vollstaendige Plugin API Referenz und ein Plugin Tutorial fuer alle die eigene Plugins bauen wollen.
  • Internet Radio (erstes Plugin): Stationen durchsuchen und abspielen via radio-browser.info (~40.000+ Sender, freie Community-API). ICY-Metadaten (Artist/Titel) werden geparst und in Echtzeit an Clients gepusht. Falls ein Live-Stream abreisst, verbindet der Server automatisch neu (bis zu 3 Retries mit Self-Healing).
  • Web-UI erweitert: Neue Views fuer Radio und gespeicherte Playlists — alles ueber JSON-RPC angebunden, wie bei den Hardware-Clients.
  • Cover-Art Fixes fuer Hardware-Player: Station-Artwork (Favicons) wird jetzt zuverlaessig auf SqueezePlay/JiveLite angezeigt. Der Server konvertiert .ico-Dateien on-the-fly nach PNG (SDL_image kann kein ICO), proxied alles serverseitig und liefert einen Platzhalter bei Upstream-Fehlern.
  • Display-Metadaten-Pipeline: Bitmap-Displays (SB2/SB3/Classic/Boom) bekommen jetzt Track-Info und ICY-Titelwechsel mit. Liegt hinter einem Feature-Flag (RESONANCE_DISPLAY=1) bis es auf echter Hardware verifiziert ist.
Hardware-Status: Bisher nur auf meinem Squeezebox Radio getestet. Falls jemand es ausprobieren moechte — wuerde mich sehr ueber Feedback freuen, insbesondere mit Touch, Classic oder Boom.

Aktueller Code ist immer auf GitHub: https://github.com/endegelaende/resonance-server
Antworten