sonn GitHub

der offene audioserver

Ein Server. Jeder Raum. Deine Lautsprecher.

sonn sammelt deine Musik — lokale Bibliothek, Spotify, Apple Music, Tidal, Radio, sogar den Plattenspieler — und spielt sie synchron auf den Lautsprechern, die du schon besitzt, über fast jedes Protokoll, das sie sprechen. Oder lass die Räume ganz weg und stelle deine Inhalte jeder App im Haus bereit.

Loslegen

open source apache-2.0 self-hosted 4.0 beta

24

Zonen, eine pro Raum

192kHz

bit-perfect, unangetastet geliefert

8

Ausgabeprotokolle

0

Cloud nötig

kurz gesagt

Stell es neben das, was du schon kennst.

sonn steht dort, wo ein paar Produkte stehen, die du vielleicht kennst — es weigert sich nur, sich auf eine Spur festzulegen. Durch welche Tür du auch hereinkommst: Dahinter steht derselbe Server.

wenn du sonos kennst

Das Ganzhaus-Erlebnis, ohne Markenbindung

Gruppierte Räume, eine App, Musik überall — ohne sich bei einer Lautsprechermarke einzukaufen. sonn übernimmt das Gehirn; die Lautsprecher, die du schon besitzt, machen den Klang.

wenn du plex oder jellyfin kennst

Ein Medienserver, für Musik

Self-hosted, ein Ort für alles, was du hörst, erreichbar für jede App im Haus. Und anders als ein Medienserver kann er die Räume auch selbst bespielen — synchron.

wenn du loxone hast

Ein Drop-in-Audioserver

Mit dem Miniserver gekoppelt funktionieren Zonen, Wandtaster und die Loxone-App einfach. Und falls dir Loxone nichts sagt: Nichts hier setzt es voraus.

ab werk

  • Jeder Raum in perfektem Sync
  • Spotify, Apple Music & Tidal auf Geräten, die sie nicht haben
  • Bit-perfect-Lieferung bis zum Endpoint
  • AirPlay- & Spotify-Connect-Ziel für jede Zone
  • Der Plattenspieler, durchs ganze Haus
  • Verstärker wachen vor der ersten Note auf
  • Voller Loxone Audio Server, drop-in
  • HTTP-API, Live-Events und MQTT

ein server, zwei gestalten

Content-Server oder Ganzhaus-System. Oder beides.

Eine frische Installation startet ohne Zonen und ohne Freigaben. Was du einschaltest, bestimmt, was daraus wird — und du kannst es später ändern, ohne von vorn anzufangen.

01 / nur inhalte

Deine Musik für alles bereitstellen

Richte deine Bibliothek, Streaming-Konten und Radio auf sonn, schalte ein, wie du sie erreichen willst — und jede App und jedes Gerät im Haus kann stöbern und abspielen. Keine Räume zu konfigurieren, nichts pro Gerät zu verwalten.

  • DLNA / UPnP MediaServer — Smart-TVs, Receiver, Netzwerklautsprecher
  • Subsonic API — Symfonium, Amperfy, DSub und Co.
  • Netzlaufwerk (WebDAV) — Alben per Finder oder Explorer hineinziehen
  • Eingebauter Web-Player, aus jedem Browser im Netzwerk

Streamingdienste inklusive — auf Geräten, die selbst keinerlei Unterstützung dafür haben. Ein DLNA-TV hat keine Apple Music- oder Tidal-App und stöbert trotzdem vom Sofa aus durch deine Konten, weil sonn sie wie jeden anderen Inhalt bereitstellt.

02 / multiroom

Oder übernimm die Räume selbst

Lege feste Zonen an — bis zu 24, eine pro Raum — und sonn steuert die Lautsprecher direkt: benannte Räume, synchrone Gruppen, ein Ort für das ganze Haus.

  • Zentrale Steuerung über Web-Player, Admin-UI oder eine Loxone-App
  • Beliebige Räume perfekt synchron gruppieren
  • Equalizer, Lautstärkegrenzen, Favoriten und Verlauf pro Zone
  • Verstärker-Schaltung über GPIO, USB-Relais oder Netzwerk, pro Zone oder geteilt

Mit aktivierter Loxone-Integration liefert der Miniserver die Zonen — sonn verhält sich wie ein vollwertiger Loxone Audioserver.

der signalweg

Deine Datei, unverändert, am Lautsprecher.

sonn ist um eine Idee gebaut: Das Audio, das deine Bibliothek verlässt, soll den Player exakt so erreichen, wie es aufgenommen wurde. Jede Stufe, die es berühren könnte, ist pro Zone sichtbar — und der Server führt keine davon aus, solange nichts ihn dazu zwingt. Probier es aus:

quelle

ausgang

verarbeitung

quelle

Bibliothek

FLAC · 24-bit / 192 kHz

resampler

SoX · 28-bit

bypassed

equalizer

10-Band

bypassed

lautstärke

Auf dem Gerät

nie im Stream

sendspin

Endpoint

24-bit / 192 kHz

bit-perfect

Ein Sendspin-Endpoint meldet, welche Formate er akzeptiert — und dieser akzeptiert das der Quelle. Also schickt der Server genau das: Die Samples der Datei selbst kommen unangetastet am Endpoint an. Nichts in der Kette hat ein Mitspracherecht — und nach der Übergabe gehört die Kette dir.

Der Player trägt diese Ablesung für jede Zone, live — eine Ansicht in ihm selbst statt einer zweiten App: das Quellformat, jede Stufe, die das Audio berührt hat, und das Urteil. Bit-perfect, untouched oder altered — mit der Begründung. Und wenn du einfach Musik willst: nimm den Ausgang, den du schon hast. Alles funktioniert, alles klingt gut, und nichts davon verlangt einen Gedanken an Abtastraten.

inhalte

Alles, was du hörst, an einem Ort.

Jede Quelle steht jedem Konsumenten des Servers zur Verfügung — dem Web-Player, Loxone, DLNA-Geräten und Subsonic-Apps gleichermaßen. Einmal einrichten, von überall erreichen.

Lokale Bibliothek

Ordner und Netzwerkfreigaben, per Tags indexiert zu Alben, Künstlern und Titeln — mit Cover-Art und automatisch geladenen Künstlerbildern.

  • Inkrementeller Index — eine abgelegte Datei taucht einfach auf
  • Musik per Drag-and-drop hinzufügen, oder übers Netzlaufwerk
  • Stöbern, suchen und verwalten in der Admin-UI

Streamingdienste

Spotify, Apple Music, Tidal, Deezer, YouTube Music, YouTube, SoundCloud — und Music Assistant als Quelle, mit seinen eigenen Anbietern.

  • Mehrere Konten desselben Dienstes können koexistieren
  • Jedes Konto ist ein eigener, durchsuchbarer Dienst
  • Weitergereicht an Loxone, DLNA und Subsonic

Radio

Das TuneIn-Verzeichnis, Radio Paradise und deine eigenen Streams — mit Artwork, durch jede Zone und jede App im Haus.

  • TuneIn-Presets, und Suche durchs komplette Verzeichnis
  • Eigene Streams, mit eigenem Cover

Line-in

Der Plattenspieler oder CD-Player, durch jede Zone — hereingetragen von der Sendspin-Source-Rolle auf einem Sonn Client neben dem Gerät, oder an die eigene WebSocket- oder TCP-Adresse eines Line-ins geschickt.

  • Optionale Shazam-Titelerkennung
  • Play, Pause und Skip gehen ans Gerät weiter — wenn es sich übers Netzwerk steuern lässt
  • B&O Masterlink erlaubt volle Kontrolle — Play, Pause, Vor, Zurück, und eine Beosound 9000 wechselt auf Kommando sogar die Disc

Ansagen & Alarme

Text-to-Speech und Alarmklänge durch jede Zone — die Musik duckt sich, die Meldung spielt, die Musik kehrt zurück. Gebaut für Home Automation, und voll Teil der API.

  • Ein Aufruf aus deiner Automation: POST /zones/3/announce
  • Türklingel, Alarm, Essensruf — TTS eingebaut, LoxBerry-TTS über MQTT, wenn du magst
  • Loxone-nativ, wenn gekoppelt: Bell, Alarm, Fire und TTS verhalten sich wie beim Original

der web-player

Das ganze Haus, aus jedem Browser.

Der Server liefert seinen eigenen Player aus — öffne :7090 auf dem Handy, dem Laptop oder dem Wandpanel, und jeder Raum ist da. Nichts zu installieren, nichts zu aktualisieren, und er kann nie veralten: Er kommt aus derselben Kiste, die die Musik spielt.

Eine Seite pro Platte
Am Schreibtisch ist das Cover die linke Seite und die Farbe der Platte die rechte: die Künstlerin, der Name, das Album, von dem er stammt, was als nächstes kommt, und jeder Raum am Fuß. Der Name wird in seinen Platz eingemessen, also verschiebt ein langer nie die Seite darunter — und eine Platte löst sich in die nächste auf, statt zu schneiden.
Alles auf einmal durchsuchen
Eine Suche über deine Bibliothek und jeden verbundenen Dienst, sortiert nach Art. Finde einen Titel, tippe ihn an, und er spielt im ausgewählten Raum.
Ein Katalog wie ein Regal ausgelegt
Jeder Dienst hinter seinem eigenen Zeichen, darunter das, was dieser Raum zuletzt gespielt hat. Eine Künstlerin bekommt eine Seite mit ihren Platten statt einer nummerierten Liste, und eine Bibliothek von Hunderten ordnet sich selbst unter ihre Buchstaben — mit einer Leiste an der Seite zum Springen.
Favoriten aus jeder Zeile
Ein Herz sitzt an allem, was spielen kann — Browsing-Ergebnisse, Suchtreffer, Warteschlange, Verlauf — und legt es in die Favoriten der Zone: dieselben, durch die ein Loxone-Wandtaster oder eine Beoremote blättert.
Warteschlange, Gruppen und ein 10-Band-EQ
Sortiere um, was als nächstes spielt, hole Räume mitten im Song in eine Gruppe, forme eine Zone mit ihrem eigenen Equalizer — und sieh das echte Streamformat jedes Raums, bis hin zum bit-perfect-Urteil.
Immer einer Meinung
Zwei Handys, das Wandpanel und die Loxone-App zeigen denselben Zustand, live — nichts pollt, und eine Änderung von irgendwo erscheint überall.
Der sonn Web-Player auf einem Handy: das Cover bis an beide Kanten, der Name darunter, die Transporttasten und der Regler des Raums
Der sonn Web-Player am Rechner: das Albumcover füllt die linke Seite, die rechte trägt die Künstlerin, den Titel, die Zeitleiste, die Transporttasten und die anderen Räume
die bühne — das cover ist die linke seite, die farbe der platte die rechte

zonen & ausgänge

Die Lautsprecher, die du schon besitzt, sind das System.

Eine Zone ist ein Gerät in einem Raum. sonn spricht mit fast allem, was Klang erzeugen kann — und eine Zone kann auch empfangen: Richte AirPlay oder Spotify Connect auf einen alten Verstärker, und es funktioniert einfach.

schlafzimmer leerlauf · amp aus arbeitszimmer vinyl · line-in bad airplay-empfänger wohnzimmer sendspin · 24/96 küche chromecast gruppiert · synchron sonn core max. 24 zonen · :7090
ein server im keller, jeder raum synchron
SP Sendspin
CC Chromecast
SN Sonos
AP AirPlay
DL DLNA / UPnP
SC Snapcast
SQ Squeezelite
MA Music Assistant
Empfänger
Ein Empfänger lässt ein Telefon oder eine App in eine Zone spielen: Der Stream landet auf dem Server, der ihn an den Ausgang der Zone weiterreicht. Ein Paar Snapcast-Lautsprecher am Raspberry Pi erscheint als AirPlay-Ziel, ganz ohne eigene Unterstützung — und eine Zone kann sie alle gleichzeitig anbieten. spotify connect airplay dlna line-in music assistant
Gruppieren
Beliebige Räume spielen synchron, jederzeit umgruppierbar. Die Küche kommt zum Abendessen zur Terrasse dazu und verlässt sie danach wieder — aus der App, vom Wandpanel oder per Loxone-Szene.
Verstärker schalten
Eine Zone kann ihren Verstärker vor der ersten Note wecken und nach der Musik wieder abschalten — eine GPIO-Leitung, ein USB-Relais oder ein Netzwerkschalter über HTTP oder UDP — pro Zone oder pro geteilter Verstärkergruppe, mit Vor- und Nachlaufzeiten, damit kurze Pausen die Hardware nie zyklisch schalten.
Ein Raspberry Pi wird ein Raum
Sonn Client ist ein Befehl auf einem Pi: Er meldet sich an, nennt seine Soundkarten und wartet hier darauf, einen Raum zu bekommen. Dieselbe Box bringt auch den Plattenspieler als Line-in herein, nimmt ein Telefon per Bluetooth an oder bedient eine Bang & Olufsen Fernbedienung — jedes einzeln zuschaltbar, und nichts davon wird auf dem Gerät konfiguriert.
Dieser Browser ist ein Raum
Der Web-Player meldet sich selbst als lokales Ziel an: auswählen, abspielen, und es spielt hier — gesteuert mit exakt denselben Reglern wie die Hardware-Zonen.

beoremote one

Bidirektionale Steuerung mit der Beoremote One.

Radiosender und Raum-Favoriten erscheinen direkt als abspielbare Einträge auf dem Display der Fernbedienung — der Server baut die Liste, die Remote spielt daraus. Jede Farb- und Punkttaste startet etwas im Raum, und Play, Pause und Skip erreichen, was gerade spielt, auch ein steuerbares Line-in-Gerät.

Die Lautstärke bleibt auf dem Gerät selbst und funktioniert damit auch, wenn der Server kurz nicht erreichbar ist. Die Fernbedienung koppelt sich per Bluetooth mit einem Sonn Client im Raum — ein Raspberry Pi, ein Befehl — der das Menü bereitstellt und die Tasten weiterreicht; läuft er einmal, wählst du nur noch, welche Remote zu welcher Zone gehört. Eine Beoremote Essence funktioniert dort ebenso.

Eine Bang & Olufsen Beoremote One, nah: Das Display listet die Quellen
beoremote one — die liste darauf kommt vom server
Der Zones-Bildschirm der sonn Admin-UI: vier Zonen namens Living room, Kitchen, Study und Bedroom, jede mit AirPlay-, Spotify-Connect- und DLNA-Empfänger-Chips
zonen — eine pro raum, empfänger an jeder

loxone

Ein vollwertiger Loxone Audioserver.

Kein Add-on, das mit Loxone redet — eine vollständige Audioserver-Implementierung. Kopple sie mit einem Miniserver und sie verhält sich wie das Original: Zonen, Quellen, Favoriten, Alarme und die native Loxone-App, mit bis zu 24 Zonen — derselben Obergrenze wie beim Original.

  1. Wähle unter Zonen Loxone integriert — der Server hört sofort zu.
  2. Lege den Audioserver in Loxone Config an, mit Seriennummer und Host aus der Admin-UI.
  3. Speichern und Miniserver neu starten. Das Symbol wird grün, und deine Zonen kommen an.

Nicht-Spotify-Dienste werden dem Miniserver als virtuelle Spotify-Konten präsentiert — das einzige Vokabular, das Loxone-Clients dafür haben. Überall sonst behalten sie ihren eigenen Namen. Trennen wirkt ohne Neustart, und deine eigenen Zonen kehren zurück.

home assistant & deine eigenen tools

Und es versteht sich mit dem Rest des Hauses.

Eine optionale MQTT-Schnittstelle veröffentlicht jede Zone als retained Topics — ganze Objekte als JSON, einzelne Felder als schlichte Werte — sodass Home Assistant, Node-RED oder ein KNX-Gateway sie ganz ohne Code konsumieren. Steuern geht genauso: Wert publizieren, fertig.

# zustand, retained — spät verbinden, alles sehen
sonn/zones/3                {"name":"Küche","state":"playing",…}
sonn/zones/3/state          playing
sonn/zones/3/track/title    Song

# steuern — ein wert, oder ein relativer schubs
mosquitto_pub -t 'sonn/zones/3/set/volume' -m '+5'
mosquitto_pub -t 'sonn/zones/3/cmd' -m '{"power":"on","volume":40}'
Eine native Home-Assistant-Integration steht auf der Roadmap. Heute spricht HA bereits über MQTT und die HTTP-API mit sonn — die native Komponente macht daraus einen Klick.

für entwickler

Eine API, in der curl ein vollwertiger Client ist.

Befehle sind schlichtes HTTP, und Zustand lesen heißt nie pollen: Abonniere den Event-Stream einmal und du erfährst jede Änderung. Kein Handshake, keine Correlation-IDs, kein SDK zu installieren — ein Shell-Skript mit fünf Zeilen ist eine vollständige Integration.

# Was spielt gerade, überall?
curl http://server:7090/api/v1/zones

{
  "id": 3,
  "name": "Küche",
  "state": "playing",
  "track": { "title": "Song", "artist": "Artist", "coverUrl": "…" },
  "output": { "protocol": "sendspin", "format": { "sampleRate": 192000, "bitDepth": 24 } }
}

Offen by design

Apache-2.0, auf GitHub. Die öffentliche API ist bis aufs Feld dokumentiert, und der Web-Player ist auf ihr gebaut und auf nichts sonst — trägt der Vertrag keinen echten Player, ist das ein Bug.

Events statt Polling

Zwei Tabs, ein Wandpanel und die Loxone-App sind sich einig, weil alle dasselbe zone.changed rendern. Eine Änderung von woanders erscheint hier — ohne eine Zeile eigenen Code.

MQTT dazu

Derselbe Zustand, zweite Schnittstelle: retained Topics, die ein Miniserver oder ein KNX-Gateway ohne JSON-Parser lesen kann. Beide laufen gleichzeitig und können sich nicht widersprechen — sie publizieren aus derselben Quelle.

loslegen

Läuft, bevor der Kaffee durch ist.

Ein Container auf der Always-on-Maschine, die du schon hast — ein Raspberry Pi, ein NAS, ein Mini-PC. Host-Networking, damit er deine Lautsprecher findet, und ein Ordner, der alles enthält: Sichere den Ordner, und du hast die Installation gesichert.

quick start
# eine datei, ein befehl — die compose-datei liegt im repo
curl -LO https://raw.githubusercontent.com/sonn-audio/core/main/docker-compose.yml
docker compose up -d

Öffne dann http://<server-ip>:7090, lege dein Admin-Konto an und geh die drei Schritte: Inhalte — füge deine Musik hinzu. Zugriff — schalte ein, wie du sie erreichst. Zonen — nur wenn du Räume willst. Schritt eins und zwei sind bereits ein funktionierender Audioserver.

port trägt wann
7090 Admin-UI, Web-Player, API, Subsonic, WebDAV, DLNA, Audiostreams immer
7091 Natives Loxone-App-Protokoll loxone an
7095 Loxone-Miniserver-Protokoll loxone an
Lieber ohne Docker? Läuft direkt auf Node.js 20+ — klonen, npm install, npm run build, npm start.

open source · self-hosted · deins

Deine Musik verdient einen Server wie diesen.

Kein Abo, keine Cloud-Abhängigkeit, keine Lautsprecher zu ersetzen. Alles läuft in deinem eigenen Netzwerk — zieh das Internetkabel, und deine Bibliothek spielt weiter.