Bouw je eigen muziekserver met je Raspberry Pi

© PXimport

Bouw je eigen muziekserver met je Raspberry Pi

Geplaatst: 19 augustus 2018 - 05:47

Aangepast: 16 november 2022 - 09:25

Koen Vervloesem

Een multiroom-audiosysteem kost veel geld. Bovendien kun je je bestaande audioset prima inzetten om overal in huis muziek te streamen. Hiervoor zetten we een streaming muziekserver op met een Raspberry Pi en de software Mopidy en Snapcast. Deze server sluit je aan op je audioapparatuur zodat je gewoon Spotify, Google Play Music, SoundCloud of je eigen muziekbibliotheek afspeelt op je ouderwetse apparatuur, en dat overal in huis.

1 Benodigdheden

Voor je eigen multiroom-audiosysteem heb je een Raspberry Pi (zie ook het kader ‘Welke Raspberry Pi?’) nodig per afspeelapparaat. Een van de Raspberry Pi’s draait de muziekserver Mopidy, die muziek van je lokale opslag, je nas of online muziekstreamingdiensten zoals Spotify, Google Play Music of SoundCloud haalt en afspeelt. Deze Raspberry Pi draait ook Snapserver, het servergedeelte van de multiroom-software Snapcast. Alle Raspberry Pi’s draaien Snapclient, het clientgedeelte van Snapcast. Alle Snapclients synchroniseren hun audio met de Snapserver, zodat uit al je afspeelapparatuur hetzelfde geluid komt. Net zoals een Sonos-systeem, maar dan goedkoper!

Media has no description

© PXimport

2 Raspbian installeren

Installeer op elke Raspberry Pi Raspbian Stretch Lite. Download het zipbestand en schrijf het met Etcher naar een micro-sd-kaart. Open daarna de bootpartitie op de micro-sd-kaart via je pc en maak plaats er een leeg bestand op met de naam ssh. Koppel de micro-sd-kaart veilig af, steek hem in je Pi, sluit een netwerkkabel, luidsprekerkabel en als laatste een stroomkabel aan en wacht even tot je Pi is opgestart. Zoek in de dhcp-leases van je router welk ip-adres je Pi heeft en log daarop in via het programma PuTTY, met als gebruikersnaam pi en wachtwoord raspberry.

Media has no description

© PXimport

Welke Raspberry Pi?

3 Raspbian klaarmaken

Zodra je bent ingelogd, open je de terminal en voer je het configuratieprogramma van Raspbian uit met de opdracht sudo raspi-config. Verander het wachtwoord van gebruiker pi en stel in Localisation Options de tijdzone correct in. Onder Advanced Options ga je naar Expand Filesystem en kies je bij Memory Split hoeveel megabytes ram de gpu krijgt. Omdat je Pi toch alleen maar voor audio dient en geen beeldscherm nodig heeft, stel je hier de minimale waarde 16 in. Bij de geavanceerde instellingen kun je ook de audio-uitvoer over hdmi of de 3,5mm-jack forceren. Na alle wijzigingen ga je naar Finish. Afhankelijk van je wijzigingen vraagt je Pi om te herstarten. Kies dan Yes en log erna opnieuw in.

Media has no description

© PXimport

4 Mopidy installeren

Op één Pi installeren we nu Mopidy. Controleer eerst met de opdracht aplay /usr/share/sounds/alsa/Front_Center.wav of je audio werkt: als alles goed is, hoor je een stem ‘Front Center’ uitspreken. Als dat werkt, voeg je de gpg-sleutel van de ontwikkelaars van Mopidy toe met wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -. Voeg dan de repository van Mopidy toe aan je pakketbronnen: sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/stretch.list. Update je pakketbronnen met sudo apt-get update en installeer Mopidy met sudo apt-get install mopidy.

Media has no description

© PXimport

5 Muziek van je nas delen

Eerst geven we je Pi toegang tot muziek die je op je Windows-netwerk deelt, bijvoorbeeld op je nas. Installeer de benodigde pakketten met sudo apt-get install smbclient samba-common-bin. Open het configuratiebestand voor aankoppelingen met sudo nano /etc/fstab en voeg daaraan de volgende regel toe:

//servernaam/sharenaam /var/lib/mopidy/media cifs username=gebruikersnaam,password=wachtwoord,iocharset=utf8 0 0

Vul de juiste servernaam, sharenaam, gebruikersnaam en wachtwoord in. Sla het bestand op met Ctrl+O en sluit nano af met Ctrl+X. Koppel de share aan met sudo mount -a.

Media has no description

© PXimport

6 Muziek van je nas toevoegen

Open het configuratiebestand van Modipy met sudo nano /etc/mopidy/mopidy.conf en kijk voor de zekerheid na onder het kopje [local] de directory /var/lib/mopidy/media als mediadirectory staat ingesteld. Wijzig de directory indien nodig. Scan daarna de muziek in je mediadirectory met sudo mopidyctl local scan. Let op: als je een uitgebreide muziekcollectie hebt, kan dit even duren. Als je later ooit muziekbestanden aan je mediadirectory toevoegt, scan ze dan opnieuw en herstart Mopidy daarna met sudo systemctl restart mopidy.

Media has no description

© PXimport

7 MPD-server configureren

In het configuratiebestand moet je nog twee regels toevoegen om via het netwerk toegang te krijgen tot Mopidy. Open het bestand weer met sudo nano /etc/mopidy/mopidy.conf en voeg de regels [mpd] en hostname = :: toe. Sla je wijzigingen op met Ctrl+O en sluit nano af met Ctrl+X. Schakel daarna Mopidy in met sudo systemctl enable mopidy en start het met sudo systemctl start mopidy. Daarna hebben we een MPD-client nodig. Installeer bijvoorbeeld de Android-app M.A.L.P. Klik bovenaan op het plusteken, geef het profiel een naam, vul het ip-adres van je Pi in en druk op het icoontje van de diskette rechts bovenaan om het profiel op te slaan.

8 MPD-client gebruiken

Daarna kun je op je Android-telefoon door de muziek van je nas bladeren en de nummers op je Pi afspelen. Ga daarvoor in de app naar Library voor al je muziek en naar Playlists voor je afspeellijsten. Je kunt zoeken op artiest, titel enzovoort. De app M.A.L.P. heeft alle basisfuncties die je van een afstandsbediening voor een muziekstreamingserver verwacht, inclusief tracks toevoegen aan de afpeellijst, afspeellijsten in willekeurige volgorde afspelen enzovoort. Overigens is Mopidy compatibel met alle MPD-clients, dus je muziekstreamingserver is ook met andere apps aan te sturen of zelfs met MPD-software op je pc.

Media has no description

© PXimport

9 Spotify-account koppelen

Wat als je nu geen lokale muziek via Mopidy wilt afspelen, maar muziek van Spotify? Met een Spotify Premium-account is dat mogelijk. Als je je Spotify-account met een Facebook-account hebt aangemaakt in plaats van met een e-mailadres, dien je wel een app-specifiek wachtwoord voor Mopidy aan te maken. Ga daarvoor in Facebook naar Instellingen / Beveiliging en aanmelding / Appwachtwoorden / Toepassingswachtwoorden genereren. Dit geldt nu als je gebruikerswachtwoord voor Spotify in Mopidy. Sowieso moet je Mopidy ook toestemming geven om toegang te verkrijgen tot je Spotify-account. Bezoek daarvoor deze site en klik op Log in with Spotify.

Media has no description

© PXimport

10 Spotify configureren

Open het configuratiebestand van Spotify met sudo nano /etc/mopidy/mopidy.conf en kopieer daarin de regels van de webpagina voor de toestemming van Mopidy die beginnen met [spotify]. Voeg daaronder de regels username = gebruiker en password = wachtwoord toe met je gebruikersnaam en wachtwoord voor Spotify. Sla het bestand op met Ctrl+O en sluit nano af met Ctrl+X. Installeer de Spotify-uitbreiding voor Mopidy met sudo apt install mopidy-spotify en herstart Mopidy met sudo systemctl restart mopidy. Daarna verschijnen je Spotify-afspeellijsten in Playlists in M.A.L.P. en zijn je tracks van Spotify te vinden tussen de rest van je muziek.

11 Snapcast installeren

Hier vind je de laatste versie van snapcast. Kopieer de url van het snapclient-pakket voor armhf (de processorarchitectuur van de Pi) en voer op elke Pi de opdracht wget URL uit met die url. Op de Pi met Mopidy doe je hetzelfde voor het snapserver-pakket. Installeer de gedownloade pakketten dan op elke Pi met sudo dpkg -i snap*.deb. Als je een foutmelding krijgt over afhankelijkheden, fiks de fout dan met sudo apt-get -f install. Server en client vinden elkaar nu automatisch. Om dit te testen, voer je op de Pi met Mopidy de opdracht sudo cat /dev/urandom > /tmp/snapfifo uit die willekeurige ruis op alle clients afspeelt. Zet je volume niet te hoog!

Media has no description

© PXimport

12 Mopidy met Snapcast verbinden

Dan rest ons voor ons multiroom-audiosysteem alleen nog de taak om de audio-uitvoer van Mopidy via Snapcast te laten verlopen. Open daarvoor het configuratiebestand van Mopidy met sudo nano /etc/mopidy/mopidy.conf. Voeg de regel [audio] toe en daarna deze regel:

output = audioresample ! audioconvert ! audio/x-raw,rate=48000,channels=2,format=S16LE ! wavenc ! filesink location=/tmp/snapfifo

Sla het bestand op met Ctrl+O en sluit nano af met Ctrl+X. Herstart Mopidy met sudo systemctl restart mopidy.service en kies een nummer in M.A.L.P. Dat zal nu tegelijk uit alle op je Pi’s aangesloten audioapparatuur schallen.

Media has no description

© PXimport

13 Snapcast aansturen

Vanuit Mopidy kun je maar één volume instellen. Om het volume per kamer in te stellen, installeer je de Android-app Snapcast. Die vindt automatisch de Snapcast-server en -clients op je netwerk en toont de clients met hun ingesteld audiovolume. Druk op het tandwieltje naast de stream default en vink alle clients aan. Initieel hebben al die clients de naam raspberrypi. Druk bij elke client op de drie bolletjes ernaast, dan op Details en bekijk het ip-adres zodat je weet om welke client het gaat. Verander dan de naam door op Name te drukken. Daarna pas je eenvoudig voor elke kamer of alle kamers tegelijk het volume aan.

14 Mopify

Er bestaan ook webinterfaces voor Mopidy. Als je Mopidy vooral als multiroom-audiosysteem voor Spotify inzet, dan is de interessantste webinterface Mopify. Schakel daarvoor eerst de http-uitbreiding in met de regels [http] en hostname = :: in het configuratiebestand van Mopidy. Voeg daarna de regels [mopify] en debug = false toe en sla het bestand op. Installeer daarna de pakketbeheerder pip met sudo apt-get install python-pip en installeer dan Mopify met sudo pip install Mopidy-Mopify. Herstart Mopidy met sudo systemctl restart mopidy. Daarna kun je Spotify via Mopidy aansturen in een leuke interface via http://IP:6680/mopify/. Verbind onderaan links eerst met Spotify.

Media has no description

© PXimport

15 Iris

Een andere interessante webinterface is Iris. Net zoals Mopify installeer je die met pip. Installeer dus eerst pip (zie stap 14) als je dat nog niet gedaan hebt. Daarna installeer je Iris eenvoudig met sudo pip install Mopidy-Iris en herstart je Mopidy met sudo systemctl restart mopidy. Bezoek nu http://IP:6680/iris/ in je browser. Je krijgt er zowel je lokale muziek te zien als je muziek uit Spotify (als je de ondersteuning daarvoor hebt geïnstalleerd in stappen 9 en 10).

Media has no description

© PXimport

16 Eerste hulp

Kom je in de problemen en raak je er niet uit, of wil je iets complexer doen, bekijk dan zeker de uitstekende documentatie van Mopidy. Vergeet ook niet de documentatie te lezen van de specifieke uitbreiding waarmee je een probleem hebt. Ook het forum is heel behulpzaam als je tegen exotische problemen aanloopt waarover in de documentatie niets te vinden is.

Media has no description

© PXimport

Meer uitbreidingen

Deel dit artikel
Voeg toe aan favorieten
ID.nl logo

ID.nl, onderdeel van Reshift BV, is in 2022 gestart en uitgegroeid tot de meest toonaangevende en complete consumentensite van Nederland. Het doel van ID.nl is om de consument te helpen met alle technologie die hoort bij het dagelijks leven: van smart-health-meters tot e-bikes, van warmtepompen tot zonnepanelen - en alles daar tussenin!

Duidelijk, betrouwbaar en onafhankelijk: ID.nl maakt moeilijke dingen makkelijk.

Contact

ID.nl

Nijverheidsweg 18

2031 CP Haarlem

info@id.nl

Telefoon: 023-5430000