Ondersteuning > Programmeren

Raspberry Pi Music Server (RPMS)

(1/4) > >>

markba:
Graag stel ik aan jullie mijn project voor, Raspberry Pi  Music Server  of kortweg RPMS. RPMS is een alternatief voor Sonos (of Volumio) en is een server die gebaseerd is op een Raspberry Pi en Raspbian-OS/Lite (Debian, zonder GUI). RPMS dient als muziek- en bestands-server (NAS) waarmee je muziek kunt streamen naar een (apart te plaatsen) player. Het hart van RPMS wordt gevormd door de muziekstreamer LMS (= Logitech Media Server).


De player zelf is dan weer aangesloten op je audio-setje en met een goede DAC eraan gekoppeld (al of niet gebaseerd op een Pi) kun je high-end weergave bereiken. Alhoewel je met RPMS/LMS zou kunnen streamen van Spotify/Deezer/etc. (via plugins),  blijft de nadruk van RPMS/LMS echter liggen op het streamen van een lokale collectie, dus bestanden (flac/lossless) op je eigen schijf. Overigens kun je met RPMS/LMS ook met speels gemak iedere radio-zender ter wereld streamen.



Met RPMS kan iedere leek eenvoudig en snel (in een straf kwartiertje) een Sonos look-a-like streaming-server opzetten. En omdat de hardware gebaseerd is op een Raspberry Pi, ook nog eens zeer goedkoop, klein, stil en energiezuinig (5/10W).

Voor wie is streamen vanaf een lokale collectie interessant?
Sonos is op de markt gebracht voor het gemak. Je koopt een doos bij de elektronica-winkel, sluit m aan en via de Spotify-app op je foon kun je meteen muziek spelen, een prima en vooral doordacht systeem. Sonos richt zich echter niet op audiofielen, die ieder apparaat in de keten langs de (audiofiele) meetlat leggen, die streaming niet goed genoeg vinden én die waarde hechten aan een eigen fysieke collectie. Een collectie die over decennia gaat, gekoesterd en gemasseerd. Een collectie ook die gegarandeerde afspeelkwaliteit biedt, die dus niet door de streamende partij zomaar aangepast kan worden zonder dat je het weet, denk aan bit- of sample-rate of compressie.  Trouwens, een feature als multi-room (veel geroemd door Sonos-adepten) zat al 20 jaar voordat Sonos überhaupt bestond in systemen zoals LMS....

Logitech Media Server (LMS)
Voor het streamen is in RPMS de Logitech Music Server (LMS; open source) ingebakken. LMS komt voort uit de muziekserver die Logitech ooit gebruikte om een reeks van apparaten aan te sturen, toen bekend onder SlimServer/Squeezebox. De productie van die apparaten is (helaas) al een tijdje geleden gestopt. Een reden was dat LMS/Squeezebox een nogal technische insteek had, omdat je in je netwerk een server moest hebben met LMS, iets wat voor de meesten een brug te ver was. En juist daarin wil RPMS iets betekenen door het opzetten van een LMS-server supersimpel en tevens supergoedkoop te maken (voor een Pi betaal je nooit de hoofdprijs)....

Bediening van LMS
Je kunt LMS op allerlei manieren bedienen. Bijvoorbeeld met een browser vanaf ieder apparaat wat in je netwerk hangt, cross-platform dus. Een app als Squeezer voor op je foon. Op het afspeelapparaat zelf (sommigen hebben knopjes). Met een (domme) afstandbediening. Met een intelligente hardwarematige controller (die een afstandbediening noemen zou een belediging zijn).  En alle bediening kan dwars door elkaar heen, voor ieder wat wils en gemak dient de mens....

SqueezeBox Controller, eigenlijk een compacte computer incl. beeldscherm

Hardware voor LMS , de Squeezebox-players
Het goede nieuws is dat er nog steeds een levendige handel van SqueezeBox-apparaten is op Marktplaats, je kunt je daar nog uitstekend op uitleven.

SqueezeBox Touch incl. AB

Je hebt pure players (zonder versterker/luidspreker) zoals de Squeezebox Classic, Duet of Touch, maar er zijn ook exemplaren met alles geïntegreerd zoals de Squeezebox Boom of Squeezebox Radio, die zet je neer overal waar je maar wilt, connecten met wifi en gaan....

Squeezebox Radio

Softwarematige Squeezebox-players
Bovendien kun je zeer gemakkelijk met squeezelite ieder (linux) apparaat omtoveren tot player. Dat kan je eigen PC of laptop zijn maar wat veel gebeurt is dat een Raspberry Pi daarvoor gebruikt wordt. Met piCorePlayer wordt het helemaal makkelijk gemaakt want dit is een distro die dedicated is gemaakt voor de Pi en die m in letterlijk 5 minuten om kan zetten tot player, inclusief ultra-lichte realtime-kernel etc.

Wat is de meerwaarde van RPMS?
Het opzetten van een server met specifieke software (LMS) is iets wat voor de meesten niet weggelegd, heb zelf 10-tallen (100-den?) uren hieraan besteed; niet voor niets is Sonos met een plug-and-play oplossing succesvol op deze markt gekomen. RPMS lost het opzetten van die server op door met een 3-tal scriptjes, een volledige server op een Pi te installeren en configureren, inclusief Samba/NAS en andere tooling. Er wordt o.a. gebruik gemaakt van Docker, de moderne manier om complexe applicaties te ontsluiten.

Uitgangspunt is dat een leek RPMS zou moeten kunnen installeren, gebruiken en bedienen. Je kunt RPMS installeren zonder dat je de Pi hoeft aan te sluiten op beeldscherm, toetsenbord of muis, wel zo gemakkelijk. Na installatie de Pi booten, een Squeezebox-player aansluiten en je kunt meteen aan de slag!

Wat zit in RPMS en wat zit er nog in het vat?
Standaard is het volgende nu al geïntegreerd in RPMS v0.7:

* LMS (streaming-server; via Docker)
* NAS, via Samba (om je bestanden te kunnen plaatsen vanaf iedere client; via Docker)
* Backup (server-based met geïntegreerde disaster-recovery)
* Transcoder (om bestanden van lossless/flac te transcoderen naar lossy/ogg/mp3)
* API (om de server via de commandline/browser van afstand te bevragen of bedienen)
* Geïntegreerde update (zonder her-installatie kan RPMS bijgewerkt worden tot de laatste versie)
* Transmission (torrent-client/server-based; via Docker)
* Web-interface, bevragen en bedienen van RPMS via de browser, oa backup makenOp stapel staan nog o.a. integratie van een tool om compressie te meten, integratie met een tool om fake-flacs te detecteren, push-notificaties naar Telegram, een app voor op je foon en een voorziening om de backup te ontsluiten via Samba. Maar zoals gezegd, RPMS biedt nu al voldoende functionaliteit om dagelijks te gebruiken.

Waarom plaats ik dit bericht?
Zou het fijn vinden als RPMS onder een breder publiek bekeken en liefst gebruikt gaat worden, gezien de potentie. Nog mooier als je zou kunnen sparren over de functionaliteit of zelfs mee-programmeren (bash/python/docker/etc.) op github

Ben benieuwd naar jullie reactie....

markba:
Intussen heb ik de eerste versie van de web-interface gebakken. Hiermee kun je RPMS volledig bevragen en bedienen. Bv om een backup te maken, een reboot, etc. Informatie over RPMS omvat info over de Pi (versie, geheugen), disks (groottes, etc.), docker, etc..

Voorts kun je de instellingen van de transcoder (om van flacs lossy-bestanden als ogg of mp3 te maken) zowel bekijken als aanpassen. Ook kun je alle logs die geproduceerd worden door RPMS bekijken.

Je kunt ook gemakkelijk naar de diverse servers 'springen', zoals LMS of Transmission.

(Filmpje volgt later)

peer:
Mooi project!!!!

markba:

--- Citaat van: peer op 2022/01/04, 09:07:26 ---Mooi project!!!!

--- Einde van citaat ---
Tnx. Wat weinig terugkoppeling vanuit dit forum, maar wie weet. Zou leuk zijn als meerderen RPMS gaan gebruiken en met feedback komen. Nu is het een beetje een 1mans-project. Ach ja, we ploeteren gewoon verder  ;)

markba:
Voor de liefhebber, hier het filmpje van de web-interface van RPMS. Het heeft een technische, functionele insteek, de eye-candy komt later, waarschijnlijk ga ik iets met bootstrap doen daarvoor
https://www.youtube.com/watch?v=yPRNlz8IPmA

Navigatie

[0] Berichtenindex

[#] Volgende pagina

Naar de volledige versie