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)
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)
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!
