
Wie Sie wissen, sind der Perfektion keine Grenzen gesetzt. Selbst für hausgemachte tragbare Akustik, deren Benutzerpublikum nur eine Person umfasst. Eine sehr anspruchsvolle und manchmal wahnsinnig störrische Person. Nachdem der
erste Beitrag über Pi-Sonos veröffentlicht wurde, vergingen fast 5 Monate. Während dieser Zeit konnte sich die Software in dieser Akustik zweimal dramatisch ändern. Der Grund für die Änderungen waren sowohl nützliche Ratschläge der Habrachianer als auch ihrer eigenen UX.
Ein bisschen Geschichte für diejenigen, die zu faul zum Lesen sind oder den ersten Artikel bereits vergessen habenPi-Sonos ist eine hausgemachte kompakte Akustik, deren Entwicklung von Sonos Play 1 inspiriert wurde. Ziel dieser Akustik war es zunächst, Musik von Internetradiosendern abzuspielen. Bei der Erstellung habe ich Minimalismus und Komfort in den Vordergrund gestellt: Ich habe es an eine Steckdose angeschlossen und dann überall im Haus Musik von Ihrem Smartphone / Computer / Tablet aus gesteuert.
Worum geht es in diesem Artikel?Zunächst über Ausdauer und Neugier auf dem Weg zum Ideal. Unter dem Schnitt
Benutzername gibt es weder eine Lösung für ein globales Problem noch eine Beschreibung einer neuen einzigartigen Technologie. Der Artikel enthält nur einen Vergleich der beliebten Medienzentren für den Raspberry Pi, zeigt deren Vor- und Nachteile sowie meine persönliche Vision des optimalen Rahmens für ein Internetradio auf. Während ich meine eigene Software für die Kolumne entwickelte, wiederholte ich nur teilweise den Weg der Entwickler von Volumio und erkannte nur von Grund auf eine seiner Funktionen (sprich: „ein anderes Fahrrad erfunden“).
Trotz der Tatsache, dass der Artikel das Thema Softwareentwicklung behandelt, enthält er keinen Code, da der Zweck des Artikels darin besteht, die Idee und Funktionalität und nicht den Prozess seiner Implementierung zu beschreiben. Wenn das Thema des Codes für die Bewohner interessant ist, werde ich versuchen, einen separaten Artikel zu verfassen, der den Entwicklungsprozess beschreibt.
Ursprünglich war das Software-Stuffing für die Akustik
OSMC , aber weise Leute in den Kommentaren machten darauf aufmerksam, dass Kodi (auch bekannt als OSMC) zu kühn als "Gehirn" für einen Internetradiosender ist. Er ist zu schlau und groß, nur für Audioprojekte ist
Volumio besser. Eigentlich ist es so gekommen. Volumio ist leichter, wird durch die Weboberfläche geschärft und verfügt über eine fortschrittlichere und einfach zu entwickelnde API. Außerdem muss kein HDMI-Kabel von hinten herausragen, da Volumio in jedem Browser vollständig anpassbar ist.
Volumio zeigte jedoch auch einige wichtige Mängel, die mich zu weiteren Forschungen veranlassten. Dies ist zum einen die Downloadzeit und zum anderen das Fehlen der automatischen Wiedergabe. Nachdem ich die
offizielle Dokumentation studiert hatte (aus der hervorgeht, dass Volumio ein Add-On für mpd (Music Player Daemon) ist), entschied ich, dass es Zeit war, meinen eigenen Wrapper namens RPi-Radio auf js zu schreiben, der diese Probleme lösen würde. Der Serverteil wird auf Node.js ausgeführt, und der Clientteil (GUI), der React.js verwendet, ist seit OSMC bereit. Er musste nur optimiert werden. So sieht es jetzt auf dem Smartphone-Bildschirm aus:
Unten sehen Sie eine Tafel, die die Nachteile und Vorteile der einzelnen Frameworks deutlich zeigt.
Kriterium | OSMC | Volumio | RPi-Radio |
---|
Ladezeit | 35 Sek | 45 Sek | 20 Sek |
Auto Play starten | Nein* | Nein* | ja |
Die Anzahl der Bänder auf dem Hauptbildschirm der „nativen“ Benutzeroberfläche des Smartphones, um einen Radiosender aus der Favoritenliste auszuwählen ** | 5 + 1 Schriftrolle | 4 | 1 |
Die Notwendigkeit für einen Monitor, eine Tastatur und eine Maus *** | ja | Nein | Nein |
Web-Management | teilweise | vollständig | teilweise |
Stationsliste bearbeiten | so la la | die Normen | so la la |
Einfache Ersteinrichtung | so la la | großartig | mittelmäßig |
Integration mit meiner Smartphone-GUI | mit Krücken | mit Krücken | out of the box |
Bequemlichkeit des täglichen Gebrauchs | ☆ | ☆☆ | ☆☆☆ |
* Eigentlich ja, aber Sie müssen eine Krücke und eine Handfläche aus dem Raspbian-Startup machen. Im Fall von OSMC ist die Krücke in Python und im Fall von Volumio in js oder bash geschrieben. Aber in beiden Fällen funktioniert es immer noch nicht so, wie wir es möchten.
** Für OSMC und Volumio sind dies sehr wichtige Parameter, da alle diese Tap-Scrolls jedes Mal ausgeführt werden müssen, wenn Sie die Spalte einschalten. Für RPi-Radio ist dieser Parameter zwar minimal, aber immer noch nicht so wichtig, da die Spalte beim Einschalten von selbst abgespielt wird.
*** Ich meine die physische Verbindung von Monitor, Tastatur und Maus mit dem Raspberry Pi selbst, d. H. Fälle, in denen es keine Möglichkeit gibt, die integrierte Weboberfläche oder die SSH-Verbindung zu umgehen.
Unter diesem Spoiler finden Sie eine detaillierte Erläuterung der einzelnen Vergleichspunkte.Eine Startzeit von 20 Sekunden ist meiner Meinung nach das Minimum, das erreicht werden kann, ohne in die Wildnis der Optimierung von Raspbian für dieses Projekt einzutauchen. So lange braucht Malinka, um das Betriebssystem zu laden und den mpd-Dienst zu starten. Wahrscheinlich kann dieses Ergebnis verbessert werden, wenn Sie microSDHC durch microSDXC mit einer höheren Lese- / Schreibgeschwindigkeit ersetzen (ich werde dies nach Möglichkeit prüfen). Überraschenderweise dauert das Laden von Volumio, der vorgibt, leicht und flink zu sein, länger als der OSMC-Monster-Harvester. 45 Sekunden Wartezeit liegen jenseits der Schwelle für eine komfortable Bedienung, und dies war der Hauptgrund, Volumio zu verlassen.
Autoplay ist in mpd out of the box vorhanden, ich musste nichts tun, um es zu aktivieren - bequem! In Volumio wurde diese Funktion, obwohl es sich um einen MPD-Wrapper handelt, für einen schönen Begrüßungsklang erwürgt. Wie ich bereits geschrieben habe, können Sie ein Skript erstellen und es starten. Bei OSMC ist die Situation ähnlich.
OSMC hat den größten Teil der Benutzerinteraktion über den Monitor: Es gibt eine schöne Oberfläche, die Möglichkeit, Videos, Bilder, Nachrichten zu lesen und das Wetter zu sehen - es gibt viele Dinge, die meine Kolumne in meinem Leben niemals tun wird.
Die Webverwaltung von OSMC ist jedoch sehr eingeschränkt, und Sie können die Liste Ihrer Lieblingssender im Radio-Plugin nicht einmal remote konfigurieren - nur über den Monitor. Bei Volumio - im Gegenteil, alles geschieht nur über das Webinterface. Das Bearbeiten der Senderliste ist im Browser auf dem Desktop / Laptop am bequemsten, auf Wunsch jedoch auch auf dem Smartphone. Mit RPi-Radio können Sie nur einen Sender auswählen und den Sound über das Webinterface einstellen. Die Liste der Stationen und in der Tat alles andere muss über die Konsole über ssh erfolgen. Die Liste der Sender ist am schwierigsten: Wenn OSMC und Volumio über eigene umfangreiche Bibliotheken mit Internetradiosendern verfügen, musste ich in RPi-Radio die Adressen meiner Lieblingssender manuell im JSON-Format eingeben. Unbequem, aber nur einmal (oder mehrmals) im Leben.
Bei der Ersteinrichtung ist OSMC am schlechtesten. Zuerst müssen Sie einen Monitor an die "Himbeere" anschließen und das Radio-Plugin konfigurieren, dann müssen Sie die Tonausgabe an den externen IQAudio DAC (der gleiche wie der der Suptronics X400-Karte) über die Konsole oder über ssh konfigurieren. RPi-Radio hat das gleiche DAC-Setup, aber zumindest alles andere wird auch über ssh erledigt. Der Marktführer in dieser Kategorie ist natürlich Volumio. Um Sound über einen externen DAC auszugeben, müssen Sie nur das entsprechende Element aus der Dropdown-Liste im Einstellungsmenü auswählen. Es gibt sogar einen Vergleich auf der offiziellen Suptronics-Website (http://www.suptronics.com/xseries/x400.html).
Die GUI in RPi-Radio ist eine einfache Webseite, die auf React.js implementiert ist. Der Serverteil, der für die Interaktion zwischen der Client-GUI und mpd verantwortlich ist, läuft auf Node.js und ist ein einfacher HTTP- und WebSocket-Server, der auf der express
Verbindung Socket.io
+ http
+ basiert. Es wird auf Raspbian als Dienst ausgeführt, wenn das System unmittelbar nach dem Start des mpd-Dienstes eingeschaltet wird und das mpc-js
Modul zur Steuerung von mpd verwendet. Die Client-GUI ist für jeden Browser in meinem Heimnetzwerk einfach über die IP-Adresse oder den Hostnamen "Himbeere" zugänglich. Perfekt.
RPi-Radio-Quellen werden auf
Github veröffentlicht . Im selben Repository, in den entsprechenden Brunchs, finden Sie beide GUI-Anpassungen für die Arbeit mit OSMC und Volumio.
Das Ergebnis meiner Übungen, RPi-Radio, geht über den Rahmen einer einfachen Ergänzung einer einzelnen Spalte hinaus. Dies ist eine Art vorgefertigte Lösung, die nicht nur den Raspberry Pi in einen Internetradioempfänger verwandelt, sondern auch jedes Gerät mit Audioausgang, Internetzugang und der Möglichkeit, mpd und Node.js auszuführen. Der Hauptvorteil eines solchen Systems ist das Fehlen von allem Überflüssigen. Eigentlich, wie es in Sonos gemacht wurde, in dem Ideal, das ich erreichen möchte.