[WIP][AUF EIN NEUES] RPi MS-V100

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich möchte denn auch mal hier mein Projekt vorstellen: Den RPi MS-V100 MusicServer. Anfänglich entstand die Idee das ganze in Form eines Programms zu entwickeln. doch mit dem Erscheinen des Raspberry Pis beschloss ich das ganze nun als Server zu realisieren.

    Verwendete Hardware:
    Raspberry Pi Model B mit 512MB Ram
    Qnap TS-110 NAS (alternativ ist auch die Verwendung einer externen USB-Festplatte möglich)

    Verwendete Programmiersprachen
    C (Server)
    HTML5 + Javascript + AngularJS (Webfrontend)

    Funktioniert
    Funktioniert teilweise
    Funktion bisher noch nicht implementiert

    Features:
    - Wiedergabe von Musik (Bisher unterstützte Formate: *.ogg, *.wav, *.aiff, *.mp1, *.mp2, *.mp3, *.aac, *.m4a, *.ape, *.mac, *.flac, *.flac, *.opus)
    - Gapless playback
    - Cuesheet support
    - Webfrontend
    - Thumbnail erzeugung
    - CRC Log Checker (unterstützt EAC, dbPowerAmp, X Lossless Encoder und AccuRip Logs)
    - 10 Band Equalizer
    - Internetradio (Client)
    - Internetradio (Server)
    - Musikverwaltung (Labels, Alben, Playlisten, etc....)
    - Umfangreiche Taggingfunktionen (Web)
    - Discogs support für Tagging
    - Waveformerzeugung für Audiodateien
    - Vorschläge mit Musik und Künstlern die gefallen könnten (incl. Kauflinks)
    - Unterstützung für mobile Endgeräte (incl. Encoding von Losslessformaten in Mp3)
    - Webseite mit downloadbaren Tags (evtl. auch downloadbare Cover und Lyrics, je nachdem wie sich das mit den Copyrightinhabern vereinbaren lässt)
    - Lyrics

    Geplant
    Unsicher
    Nicht geplant

    Desweiteren sind geplant:
    - Android App (Remotecontrol und Internetradio Client sowie eigenständiger Player für unterwegs)
    - Windows 8 App (Remotecontrol und Internetradio Client sowie evtl. ein abgespeckter Player) (WinRT/WinJS scheint wohl ein wenig zickig zu sein...) (bekomme die Tage ein Windows 8 Phone, ergo wird es definitiv eine App geben)
    - Iphone App (Remotecontrol und Internetradio Client sowie eigenständiger Player für unterwegs)
    - Dj Funktionen (2+ Decks sowie Mixfunktionen)
    - Cloud support (div. Anbieter, evtl. sogar Amazon Mp3 Cloud, sofern es hierfür eine API gibt)
    - Spotify support
    - Support für Sonos Lautsprecher (bekomm die Tage ein Sonos Play 1, dann werd ich mal die Sonos API abchecken) (wird vorerstmal aufgeschoben, kommt vlt. irgendwann in der Zukunft mal

    Log:
    29.10.2013: Server gibt Musik wieder und zeigt Playlist an.
    03.11.2013: Server liest Konfigurationsdateien ein und speichert diese ebenso.
    04.11.2013: Server spielt Internetradio ab (Client)
    07.11.2013: Listenvirtualisierung (bei zunehmend großer Playlist z.B. lagt die Bedienung zunehmend, daher werden Listen nun virtualisiert dargestellt).
    10.11.2013: Frontend listet Releases auf und kann diese abspielen bzw. zur Playlist hinzufügen.
    11.11.2013: Frontend zeigt Release detailiert an, außerdem wurden Tracks (alle Tracks aus Releases) sowie Singles (einzelne Musikstücke die keinem Release zugeordnet sind) implementiert.
    08.12.2013: App für Android im Aufbau, kann sowohl einen lokalen Player als auch den RPi MS-V100 Server via Remote bedienen.
    01.02.2014: Android App speichert nun Player/Equalizer Settings. Außerdem funktioniert nun auch das Preamp im Equalizer sowie hier und da ein paar kleine Bugs beseitigt.
    02.03.2014: Serverseitiges Streaming an den Client (Android App, bei den Desktop Apps bisher nur VLC) funktioniert nun vollständig. Ein Rescan der Library ist nun auch möglich. Außerdem sind nun die ersten Teile der Taggingfunktion über das Online-Webinterface verfügbar. Außerdem kann die Android App die Releases nach Labels gefiltert anzeigen.
    13.04.2014: Nachdem es zu einigen Problemen mit dem Server kam (die Socketverbindung brach dauernd ab), und es sich herausgestellt hat, dass die WebSocket Library auch nicht gerade Threadfreundlich ist, habe ich den Server neu gebaut, und dabei ordentlich umstrukturiert.
    Neu ist, dass die Library auf jedenfall parallel zum Server gescannt und überwacht wird. Damit können sich die einzelnen Clients selbständig auf dem laufenden halten. Außerdem habe ich gleich das WebInterface neu gestaltet, welches jetzt richtung Portal gehen wird. Unter Umständen wird die von mir geplante Webseite (also der Community Part) auch hier zusätzlich reinintegriert, und im Web dafür minimal gehalten.
    Aufgrund der neuen Architektur ist damit die Android App (welche ebenfalls von den Abbrüchen betroffen war) nicht mehr kompatibel und muss neu gemacht werden. Das wird demnächst erfolgen, sobald der Server fertig ist.
    Update: Guck mal einer an, die Threadingprobleme sind gelöst. Scanner und Server sind wieder in einem Programm vereint und funktionieren super. Die Verbindung bricht damit schonmal nicht mehr ab. Allerdings mag der noch keine großen Datenmengen über die Socketberbindung schicken, so dass diese fragmentiert erfolgen muss. Das ist aber denke ich das geringste Problem. ;)
    26.06.2014: So, nach längerem gibt es wieder ein update. Es geht zurück zu den Anfängen: Musikordner scannen, Server starten. Leider hat die parallel laufende Überwachung auf dem Raspberry nicht lange stand gehalten. Zum einen ging die CPU Last ein gutes Stück nach oben (und für das Streaming soll ja schließlich auch noch etwas übrig bleiben ;-)), zum anderen gab es auch hier weiterhin Verbindungsabbrüche. Und mit zunehmender Anzahl an Musikalben ging irgendwann gar nichts mehr. Daher wird dieses Feature bis auf weiteres gestrichen, evtl. versuch ich mich später noch einmal dran, evtl. auf alternativen Plattformen. Auf jedenfall will ich ja irgendwie vorankommen. Mal beobachten wie das ganze nun weiter läuft.
    30.06.2014: Lange habe ich gerätselt wieso es ständig zu Verbindungsabbrüchen kam. Das Ergebnis: Ich habe keine Ahnung. Scheint wohl entweder eine Sache der Websocket Library zu sein, oder aber der Support ist bisher noch nicht so das wahre. Fakt ist: Die Steuerung über HTTP URL funktioniert im Gegensatz zu den Websockets bislang perfekt, so dass die gesamte Steuerung darauf umgestellt wird. Die Websocketverbindung wird aber weiterhin drin bleiben und dafür ein paar andere Funktionen wie z.B. Zugriffskontrolle (Steuerung nur möglich solange Client über Websocket verbunden ist) übernehmen. Ansonsten erstmal weiterbauen... :)
    2014.08.12 Juhu, das Websocket Problem ist gelöst, habe den Fehler gefunden der für die Verbindungsabbrüche zuständig ist. Musste dazu ein wenig den Code umstricken, aber dafür läuft das nun. Schaut also auch für den Livescan gut aus, den ich im übrigen neu schreiben werd, damit vorhandene Releases nur bei Bedarf gescannt werden und sich der Scan auf noch nicht gescannte Verzeichnisse konzentrieren kann. Mal gucken ob das was bringt. :)
    Den Player habe ich ebenfalls neu geschrieben in Vorbereitung auf mehrere Decks (für DJ Funktionen). :)
    Neu ist auch die Konvertierung von ape nach flac hinzugekommen da ape ein mistiges Format ist welches stellenweise ehlend lang zum zum spulen braucht etc. Diese lässt sich über eine Konfigurationsdatei aktivieren, welche im übrigen ebenfalls neu ist.
    2014.08.14 [MILESTONE 1] Juhu, habe endlich die Probleme mit der Websocketverbindung soweit in den Griff bekommen dass es schon quasi wert ist den aktuellen Status als einen Meilenstein zu betrachten. :D
    - Websocketverbindung läuft und bricht nicht mehr ab
    - Scanner thread läuft im Hintergrund und scannt live nach Musik und Updates (wobei es hier auf dem Pic eine Verzögerung gibt wenn sich irgendwas auf dem heimischen Nas ändert).
    - Der Server broadcastet nun auch selbständig, getestet mit 3 Webbrowsern von 2 PCs, alle werden synchronisiert (natürlich ist der PI nicht der Schnellste, bei vielen Commands (z.B. ganz oft, schnell Play drücken) tritt schonmal der eine oder andere Lag auf, aber es fängt sich und die Verbindung bricht trotzdem nicht ab).
    - Alles was groß ist an Daten (z.B. Playlist, Releaselist, etc.) wird über HTTP ausgeliefert (dies liegt daran dass soweit ich das herausgelesen hab der Websocket-Support der Browser noch lange nicht soweit sein soll dass man damit auch größere Datenmengen übertragen kann. Hier kam es ebenfalls zum Verbindungsabbruch).
    Und das alles bei einer CPU Auslastung von etwa 15-20% (bei FLAC-Wiedergabe, bei Ape ist es etwa das doppelte -.-').
    2014.08.17 [MILESTONE 2] Yes, ein weiterer Meilenstein ist Erreicht: Der Server streamt, jPlayer sei Dank, die Musik nun direkt in den Browser.
    2014.08.24 Bei längerem Benutzen kam es zu Verzögerungszeiten bei der Benutzung der Oberfläche. Diese sind nun weg (bzw. aufs Kleinste minimiert). Der Server läuft jetzt wie am Schnürchen. :)
    Neue Screenshots online.
    2014.08.25 So, die halbe Verwaltung ist fertig, die Oberfläche listet nun auch Labels und Tracks auf. Außerdem wurde die Verwaltung in einen Thread (WebWorker) verpackt, damit die Oberfläche nicht blockiert wird. :)
    2014.09.18 APE to FLAC Encoder wurde nun eingebaut und aktiviert, da es bei einigen Dateien zu einer CPU Auslastung von 100% kam, wodurch die Musik zu stottern anfing. Allgemein ist APE aber auch kein schönes Format, so dauert das Springen innerhalb einer APE Datei z.T. über eine Sekunde.
    Außerdem habe ich nun auch mit dem Bau der Android APP begonnen. Das Playlists-Feature wird dafür auf einen späteren Zeitpunkt verlegt, da ich mich noch nicht zu 100% entschieden hab wie da die Verwaltung aussehen soll.
    2014.09.20 Die Android-App zeigt nun Cover an, derzeit allerdings nur vom Server (Remote), da die lokale Verwaltung derzeit noch nicht implementiert ist.
    2014.09.29 Habe den Code nun dazu gebracht Waveformen für die Musikdateien zu erstellen. Allerdings ist das Ganze ziemlich CPU Lastig (liegt an der Audiobibliothek, und dass diese closed source ist ;)) so dass ich beschlossen habe den gesamten Tag/Scan Process in ein eigenständiges Programm zu verlagern (das die Waveformen zeichnet, Thumbnails erstellt, etc.) und der Server anschließend nur noch eine Art Cachedatei einliest.
    2014.10.06 Ok, das Waveformproblem ist kein Problem der Audiolibrary, sondern wieder mal ein Threading Problem. Dies ist zwar bislang ungelöst, habe dadurch aber den Server dafür an anderen Stellen wiederum beschleunigen können. Sollte sich das Problem lösen lassen wird der Server auch Waveformen erstellen können.
    2014.10.07 So, problem gefunden und beseitigt. Allerdings dauert das Erstelen der Waveformen unter der Prämisse dass der Server auf dem Raspberry PI möglichst Resourcenschonen laufen soll verdammt lange. Daher bleibt das wohl auch dabei dass diese Funktionalität in ein externes Taggingtool ausgelagert wird.
    2015.01.09 Nach längerer Zeit wieder ein Update. Habe ein neues Feature eingebaut: Collections. Damit lassen sich Releases zu Collection (parallel zu Labels) gruppieren. Das ist quasi eine Art Playlistfunktion, nur halt für Releases.
    2015.02.03 Ich habe mich entschlossen das Design der Weboberfläche zu verändern, um es mehr eher wie ein Portal aussehen zu lassen, um später weitere Features integrieren zu können. U.a. ist nun auch die Waveformanzeige samt Fallback drin. Diese könnt Ihr in den Screenshots sehen. jQuery UI ist geflogen, die slider werden nun komplett durch AngularJS kontrolliert. Performancetechnisch sieht das ganze auch gut aus, selbst auf dem Smartphone ist es noch recht gut bedienbar, obwohl die Performance hier gegenüber einem Desktop PC natürlich etwas schwächer ist. Scheint an den Browsern zu liegen.
    2015.02.16 So, die API zum Erstellen/Bearbeiten der Releases ist Serverseitig nun implementiert. An dieser Stelle erfolgt jetzt ein Fork des Servers um zu gucken in wie weit sich die ganze Verwaltung vom Client auf den Server schieben lässt (ursprünglich sollten diese Aufgabe die Clients übernehmen). Mir scheint, als wäre das durchaus machbar mit dem Pi, und die Clients würde es auch entlasten. :)
    2015.02.18 Playlistverwaltung serverseitig implementiert. Es können Playlisten manuell erstellt werden, z.T. werden Diese aber auch automatisch aus den in den NFOs hinterlegten Artists generiert.
    Ich werde den Fork so wie er ist jetzt weiterführen da selbst wenn der Pi zu schwach sein sollte um alles zu verwalten, spätestens der Pi 2 wird die erfordelriche Leistung aufbringen.
    Nun gehts an die WebView, diese weiter auszubauen und ins Zusammenspiel mit der API zu bringen... :)
    2015.02.26 Mal etwas anderes: Habe mir ein optisch rudimentäeres Tool geschrieben welches meine Tastatur mitloggt und beim Druck auf bestimmte Tasten Commands an den Server sendet. Dabei lassen sich die Tasten frei konfigurieren. Damit kann man den Server mittels Multimedia Tastatur fernsteuern. Zusätzlich lässt es sich in die Taskleiste minimieren und zeigt auch Benachrichtigungen an, welcher Titel gerade gespielt wird. Unter Windows 10 findet sich diese Nachricht dann auch im Notification Center wieder.
    2204096.png
    2015.02.27 Puh, um einen Haar hätte ich das Web Interface gestrichen. Zum Glück ist mir noch rechtzeitig die Lösung für das Problme eingefallen:
    Habe die Releases View redesigned. Die Buchstaben sind geflogen, dafür wurde eine Blätterfunktion integriert. Jetzt bin ich dort gelandet wo ich ursprünglich nicht hin wollte. :D
    Aber da ich nun vom Server gezielt Informationen abrufen kann läuft die gesamte Oberfläche jetzt um einiges runder als vorher, wo vorher eine ehlend lange Releaseliste geladen wurde.
    Außerdem ist die Release View auch redesigned, und es gibt hier und da noch ein paar kosmetische Make Ups. U.a. ist (das sieht man auf den Screenshots aber nicht) ein Raspberry PI Favicon dazugekommen.
    2015.02.28 Kleines Miniupdate: Compilations haben nun ihren eigenen Eintrag im Menü bekommen und werden gesondert dargestellt. Das ermöglicht schnellen und besseren Zugriff auf diese.
    2015.03.17 Die Darstellung der Releases ist fertig. Ich habe mich entschieden, was den Eintrag "Tracks" im Menü angeht, welcher alle Titel in alphabetischer Reihenfolge darstelen sollte, aus der Weboberfläche zu entfernen, da diese (im gegensatz zu den Apps später) auf eine Blätterfunktion setzt, und es dann doch ein wenig zu viele Seiten geben würde als dass man da noch die Positionen einzelner Titel auf Seite x überblicken könnte. Da macht es eher sinn die Titel über die restlichen Menüpunkte gezielter anzusteuern. In den Apps wird der später aber mit eingebaut. Jetzt kommt der Eintrag "Singles" dran, welcher speziell für einzelne Musikstücke reserviert ist, die ohne ein Release daherkommen. :)
    2015.03.26 [MILESTONE 3] Juhu, der Server ist zum Großteil fertig. Einzelne Musikstücke können nun einfach in einen vordefinierten Ordner geschoben werden und werden vom Server erkannt und eingebunden. Falls möglich, werden Tags gelesen, ansonsten erscheint Unknown Artist - Unknown Title. Diese Funktion ist allerdings nur dafür gedacht schnell mal nen Song einzuspielen, daher ist der Support auch rudimentär (Singles können z.B. nicht in den Playlisten gespeichert werden). Tagänderungen werden ebenfalls erkannt und aktualisiert. Der Focus liegt auf Alben, Maxis und Compilations.
    Außerdem kann die aktuelle Wiedergabeliste gespeichert werden und ist auch nach nem Serverneustart verfügbar. Vorhandene Playlisten können zum Teil bearbeitet werden. Zum Teil? Ja, zum Teil! Die Artist-Playlisten werden automatisch anhand der Artistinformationen generiert. Um diese zu bearbeiten müssen die Artistinformationen bearbeitet werden. Alle anderen können normal bearbeitet oder gelöscht werden.
    Außerdem haben die Artists-Playlisten einen Shortcut in das Navigationsmenü erhalten. Evtl. werden noch weitere folgen. ;)
    2015.03.29 So, eine kleine Änderung gibt es noch am Server. Leider hat das jetzige Prinzip mit den Singles die Auslastung des Pis massiv in die Höhe getrieben, weswegen die Verwaltung hier nochmal umgebaut wird. Konkret bekommen die Singles ein eigenes Pseudorelease. Die Dateien können dann wie bisher auch einfach in den Ordner geschoben werden, allerdings werden die Tags der Musikdateien nicht mehr überwacht. Stattdessen erfolgt das Tagging, wie bei normalen Releases auch über die Infodatei.
    Der Vorteil dieser Methode ist, dass die Singles so auch in Playlisten gespeichert werden können. :)
    2015.07.19 Nachdem sich die Programmierung unter Windows als relativ eigenartig und zickig entpuppt hat und ich dort vorerstmal nicht weiterkomm habe ich mal wieder etwas Hand an den Server gelegt. Das Ergebnis ist zum einen die Unterstützung für UTF-16, zum anderen aber eine neue Syntax für die Definition der Tags, die ein leserlicher und auch intuitiver ist als JSON-Objekte als solche. Demnächst mehr dazu.
    2015.08.20 Der Server generiert nun HTML, dafür sind unmengen von JavaScript Code wieder geflogen. Das sorgt für eine bessere Performance auf dem Smartphone. :) Wenn nötig folgt später noch ein Cachingsystem, mal gucken. Ansonsten wurde der Server modeltechnisch komplett auf die neue Sprachsyntax umgestellt, läuft stellenweis nun auch um einiges flotter (wobei das Hinzufügen z.B. einer großen Collection in die Playlist trotzdem noch seine Zeit dauern kann, wird wohl auch so bleiben, Alternative wären hier Playlisten die man hinterher nicht mehr editieren kann/darf, das möchte ich jedoch gerne vermeiden).
    2015.10.17 Die Weboberfläche hat nu einige Settings integriert bekommen: Der Scanner kann continuierlich laufen, oder aber ausgeschaltet und manuell ausgelöst werden. Desweiteren kann auch ein Prescan eingeschaltet werden, heißt es wird erst die komplette Musik geladen, danach erst der Server gestartet. Einzelne Pfade können entladen werden (wenn man z.B. eine Festplatte abklemmt). Desweiteren habe ich nun einen eher rudimentären Discogs Support eingebaut sowie die Möglichkeit eine Aktualisierung für ein bestimmtes Release anzufordern.
    2015.11.15 Was am Anfang so schön aussah hat sich letztendlich doch als der absolute Fail herausgestellt, denn spätestens wenn der Stream läuft sorgt das Laden der einzelnen Seiten - Cache hin oder her - für unterbrecher in der Wiedergabe, vorallem wenn man nen ganzen Haufen an Musik im Server geladen hat. Also heißt es wieder zurück an den Anfang neue Lösungsmöglichkeiten suchen. Erste Ideen sind bereits vorhanden. ;)
    2015.11.26 So, Server beherrscht nun chunked transfer encoding, gleichzeitig habe ich auch den Fehler gefunden der ihn stellenweise so langsam gemacht hat. Nun rennt der wie sonst nichts...
    2015.12.24 So, nach dem Update der Websocket Library auf die neuste Version hat sich auch das letzte Problem mit dem Verbindungsabbruch bei der Auslieferung von großen Dateien erledigt. Damit kann der Server nun auch ohne Probleme komplette Listen ausliefern. Desweiteren nimmt die Android App auch zunehmend Form an und ist auf dem Stand des Servers. Zudem funktioniert auch der Download der Musik vom Server über die App. ^^
    2016.01.06 Zwei neue Features sind dazugekommen. Zum einen kann man nun für jedes Release/Disc/Track Equalizereinstellungen hinterlegen, die dann bei der Wiedergabe übernommen werden. Zum anderen kann die Android App EAN Nummern scannen und an den Server übermitteln worauf der (oder die App selber im Mobile Modus) die Wiedergabe der entsprechenden Musik startet. Ansonsten sind bislang eher Bugfixes am Server erfolgt, ein paar Bugs sind aber immernoch drin.
    2016.01.21 Habe die Taggingfunktion etwas aufgebohrt. Beim Taggen via Discogs wird nun bei Bedarf auch automatisch das Cover heruntergeladen. Außerdem habe ich musicbrainz.org hinzugefügt. Zudem habe ich nun auch erste OAuth funktionalitäten eingebaut. Als nächstes folgen Taggen via Beatport und evtl. Junodownload.
    2016.01.27 Das Tagging via Discogs funktioniert zunehmend besser, wenn es auch ein paar gewisse Dinge zu beachten gibt (die den derzeit noch Server zum crashen bringen sonst). Habe Discogs mal ein Greasemonkey Script spendiert zum schnelleren Taggen. ;)
    2016.03.24 Nach langen Überlegungen und Tüfteleien wird die Editingfunktion doch in den Server statt in ein eigenständiges Werkzeug implementiert. Damit wird sie später auch über die Apps nutzbar sein. Erste Funktionalitäten sind bereits Implementiert (Aktuelle Playlist speichern, Release/Disc/Track zu Collection/Playlist hinzufügen), weitere folgen.

    Entwicklungsplan:
    1) Android App fertig stellen (Smartphone + Tablet View)
    2) Windows Phone (und damit auch Windows 8) App fertigstellen
    3) Webseite für das Projekt aufbauen (wird evtl. aber vorgezogen, da ich für einen Freund bald eine bauen darf. Die würde ich dann in einem Zug machen...)
    4) Webinterface fertig stellen (dies habe ich aus diversen Gründen nach Hinten geschoben).

    Screenshots: Ab jetzt bei DeviantArt:

    RPi MS-V100
    - Neues WebInterface Konzept
    - Aktuelle Wiedergabeliste
    - Equalizer
    - Responsive Design: Kleine Ansicht
    - Responsive Design: Mittlere Ansicht
    - Settings
    - Releases
    - Release

    RPi MP-V100 Redesign
    - Neues Design
    - Neues Design: Mobile Version
    - Seekbar fallback
    - Releases
    - Release

    DROiD MP-V100
    - Navigation: Smartphone
    - Navigation: Tablet
    - Player: Smartphone
    - Player: Tablet

    Fragen, Wünsche und Anregungen werden gerne entgegengenommen... :)

    Gruß

    Einmal editiert, zuletzt von MediaCenter (24. März 2016 um 01:29)

  • Sehr nettes Projekt, das gibt ne schöne Musikstation fürs Wohnzimmer :)

    Zitat

    - Webseite mit downloadbaren Tags (evtl. auch downloadbare Cover und Lyrics, je nachdem wie sich das mit den Copyrightinhabern vereinbaren lässt)


    Schau dir doch mal die Scraper von XBMC an, wie die das machen.

  • Vorübergehend kann ich das wohl machen, Ziel ist es aber eher eine Plattform ala Discogs zu erschaffen. Grund ist dass der Server die Musikinformationen nicht aus den Musik- sondern aus extra angelegten Dateien zieht, da man dort 1) mehr Informationen als in Tags und 2) für alle Formate einheitliche Informationen speichern kann. Zum Taggen hingegen sollen die Original Tags, Cuesheets sowie Discogs eingebunden werden (hier könnte ich wohl vorübergehen ddie Cover dann ziehen).

    Und da man diese dann von der Seite ziehen können soll wäre es auch schön wenn Cover und Lyrics gleich mit an Bord wären.

    Aber das ist erstmal eine Sache für später, erstmal den Server fertig kriegen. :)

    Einmal editiert, zuletzt von MediaCenter (30. Oktober 2013 um 09:51)

  • So, nach längerer Zeit gibt es wieder ein Update. Habe die letzten Tage an der Android App rumgebastelt, der erste Teil steht schonmal. Die App hat sowohl einen integrierten Player (der Musik vom Phone selber wiedergibt) als auch eine Remote Control zum Fernsteuern des RPi MS-V100 wobei beide Player einen identischen Funktionsumfang bieten so dass die App lediglich zwischen local und remote hin und her switcht. Desweiteren lässt sich die Farbdarstellung der App ändern, gut möglich dass sich diese später dem Cover anpasst, mal schaun wie sich das lösen lässt. ;)

    Einmal editiert, zuletzt von MediaCenter (8. Dezember 2013 um 07:42)

  • Nur mal kurz reingeworfen, gestern ist endlich mein Lumia Phone angekommen, und das WP8 SDK ist auch schon unterwegs auf meinen Rechner. Visual Studio 2013 kommt auch, nach Weihnachten geht es dann weiter mit dem basteln. In diesem Sinne,

    ein frohes Weihnachtsfest euch allen :)

  • So, kleiner Break in den Bauarbeiten. Wie ich gerade gesehen habe bietet Discogs monatliche Dumps ihrer Datenbank an, damit gibts schonmal massig Futter (Tags) für den Raspberry PI. Entsprechend steht also die Integration der Daten für die Webseite auf dem Tagesprogramm. :)

  • Juhu, die Threading und Websocketprobleme sollten fürs erste gelöst sein, zumindest läuft soweit alles ganz gut. Demnächst mal beobachten wie sich der PI bei einer großen Menge an Musik verhält, schaut soweit aber alles ganz gut aus. :)

  • Also performancetechnisch schauts bisher sehr gut aus. Einzig die Messagequeue fürt derzeit hin und wieder mal zu nem Lag, wenn zuviele Commands zu schnell an den Server geschickt werden, oder aber er zulange braucht um einen Command auszuführen (z.B. öffnen eines Internetradio Streams oder seeken innerhalb einer Ape Datei) und sich dann Nachrichten anstauen während der Raspberry mit dem Versand nicht hinterherkommt. Derzeit hilft ein Reload der Weboberfläche, eine Idee für die Lösung für das Problems ist aber schon vorhanden (wird nur später implementiert, da ich mich derzeit noch um den Ausbau des Servers und der Weboberfläche kümmern will).

    Ansonsten wird aber auch vieles von den Clients übernommen, so dass der Raspberry quasi rein als Server und Player fungiert, während die Clients nacher sowohl für die Verarbeitung als auch für die Darstellung der Daten verantwortlich sind. Damit wird der Raspberry damit nicht belastet während die Clients nacher über Broadcast Messages synchron gehalten werden.

    Fraglich wird später nur wie sich die Weboberfläche auf mobilen Devices verhalten wird (meine Erfahrung ist bisher dass mobile Browser in der Verarbeitung von Webseiten, ins besondere wenn JavaScript verwendet wird, um einiges langsamer sind als Desktopbrowser. Teilweise sind einzelne Seiten so unbenutzbar). Über die Apps wird die Steuerung dann später aber sowieso wieder flüssiger werden.

    Bei Deviant Art gibts neue Screenshots (siehe erster Post). Das Desgn ist so bereits eingepflegt und läuft (bis auf das kleine Lagproblem da) auf Laptop und Desktop bei gleichzeitiger Nutzung absolut flüssig. ;)

  • So, habe das Lagproblem zu größtenteil beseitigt. Damit läuft auch die Benutzeroberfläche flüssig. Aktuell sind knapp 80 Releases eingespeist, und weder Server noch die Benutzeroberfläche stören sich daran. Performancetechnisch schaut das ganze top aus! :)

    Neue Screenshots online. :)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!