ID.nl logo
Maak je eigen AirPlay-speakers met de Raspberry Pi 2
© Reshift Digital
Zekerheid & gemak

Maak je eigen AirPlay-speakers met de Raspberry Pi 2

Voor speakers waarop je muziek streamt via Apples AirPlay-muziekprotocol moet je diep in de buidel tasten. Voor een fractie van die prijs configureren we een Raspberry Pi 2 zodat hij AirPlay ontvangt en hangen we er losse speakers aan. In dit artikel leggen we je uit hoe je dit voor elkaar krijgt.

Stap 1 - Raspbian installeren

We gaan ervan uit dat je het besturingssysteem Raspbian op de Raspberry Pi 2 hebt geïnstalleerd (zie ook dit artikel). Heb je NOOBS gebruikt om een ander besturingssysteem op je Pi te zetten, zoals OpenELEC, dan is dat eenvoudig terug te draaien. Steek de voeding van je Raspberry Pi 2 in een stopcontact en houd onmiddellijk de Shift-toets ingedrukt om het installatieprogramma opnieuw te openen.

Stap 2 - Benodigdheden installeren

Vervolgens updaten we de pakketinformatie van Raspbian met het commando sudo apt-get update, zodat we de nieuwste versies van alle software kunnen downloaden. Daarna upgraden we alle software op de Pi met het commando sudo apt-get upgrade naar de nieuwste beschikbare versies. En we installeren een boel pakketten die we nodig hebben om hierna de AirPlay-software te kunnen installeren: sudo apt-get install autoconf libtool libdaemon-dev libasound2-dev libpopt-dev avahi-daemon libavahi-client-dev libssl-dev.

©PXimport

Installeer met commando's de juiste benodigdheden.

Stap 3 - Shairport Sync installeren

Om audio naar onze Pi te streamen via het AirPlay-protocol gebruiken we de software Shairport Sync. Download de broncode met de opdracht git clone https://github.com/mikebrady/shairport-sync.git, navigeer naar de gedownloade directory met cd shairport-sync, voer de opdracht autoreconf -i -f uit en compileer de broncode met ./configure --with-alsa --with-avahi --with-ssl=openssl && make. Tot slot installeren we de software met sudo make install.

Stap 4 - Shairport Sync starten

Start nu Shairport Sync met de opdracht shairport-sync -a RaspberryPlay -- -d hw:0 -t hardware -c PCM. Vervang RaspberryPlay door een naam naar keuze en zet die tussen aanhalingstekens als er een spatie in voorkomt. Dat is de naam waaronder je Pi zichtbaar is bij AirPlay-compatibele apparaten. Als je op je iPad of iPhone het AirPlay-menu opent, zie je de Raspberry Pi tussen de beschikbare apparaten staan om audio naar te streamen. In iTunes kun je de Pi kiezen als je op het icoontje naast de volumeregelaar klikt. En OS X laat zelfs toe om je Pi als standaard audio-uitvoerapparaat te gebruiken via de menu's Systeemvoorkeuren / Geluid / Uitvoer.

©PXimport

In OSX kun je je Pi als standaard audio-uitgang gebruiken.

Stap 5 - Testen en tweaken

Sluit speakers aan op je Pi en test het streamen eens. Als je daarvoor de jackaansluiting van de Pi gebruikt, zul je wel merken dat er vrij veel ruis op zit. Daarom dat we verder in deze workshop een externe usb-geluidskaart gebruiken. Maar voor de test volstaat de jackaansluiting. Het audiovolume staat overigens standaard vrij laag in Raspbian. Sluit Shairport Sync af met Ctrl+C. Met de opdracht alsamixer open je een volumeregelaar. Met de pijltjestoetsen omhoog en omlaag pas je het volume aan. Ga niet boven de 80%, want dan wordt het geluid sterk vervormd. Met een druk op Esc sla je de instelling op.

Stap 6 - Automatisch opstarten

Nu moeten we er nog voor zorgen dat Shairport Sync automatisch opstart wanneer de Pi opstart. Daarvoor passen we het opstartscript aan. Open het met het commando sudo nano /etc/init.d/sharepoint-sync en ga naar regel 66, die begint met start-stop-daemon --start en eindigt met -d || return 2. Voeg achter de -d de volgende opties toe: -a RaspberryPlay -- -d hw:0 -t hardware -c PCM. Sla het bestand op met Ctrl+O en sluit het af met Ctrl+X. Herstart nu je Pi en probeer nog eens muziek te streamen naar je Pi.

©PXimport

Shaiport Sync automatisch opstarten als je Pi start.

Betere audio

De ingebouwde geluidsuitvoer van de Raspberry Pi is niet van al te goede kwaliteit. Gelukkig bestaan er heel wat oplossingen om daar iets aan te doen. Het eenvoudigste is een usb-geluidskaart. Het voordeel daarvan is ook dat je het in andere projecten kunt hergebruiken. Zelfs een goedkope usb-geluidskaart geeft al een merkbaar betere geluidskwaliteit. Daarnaast bestaat er ook audiohardware die speciaal voor de Raspberry Pi is ontworpen, zoals de HiFiBerry: de DAC+-versie heeft een analoge uitvoer en de Digi+-versie een elektrische en optische SPDIF-uitvoer.

Stap 7 - USB-geluidskaart

Aangezien de jackaansluiting van de Raspberry Pi geen denderende geluidskwaliteit geeft, steken we een usb-geluidskaart in onze Pi. We kozen voor de LogiLink TODO, die standaard door Raspbian is ondersteund. Kijk op de wiki van elinux.org (zie ook dit artikel) voor een uitgebreide lijst van ondersteunde geluidskaarten. Controleer met de opdracht aplay -l of je geluidskaart wordt herkend. Naast je card 0 (de interne audiohardware van de Pi) krijg je een card 1 te zien waarbij USB Audio staat.

©PXimport

Een USB-geluidskaart geeft betere geluidskwaliteit.

Stap 8 - USB-geluidskaart eerst

De Pi geeft voorrang aan zijn eigen audiohardware. We gaan nu instellen dat Raspbian de voorkeur geeft aan de usb-geluidskaart, niet alleen voor Shairport Sync, maar voor alle programma's die audio gebruiken. Open het configuratiebestand van ALSA (TODO) met de opdracht sudo nano /etc/modprobe.d/alsa-base.conf. Vind de regel met options snd-usb-audio index=-2 en vervang die door options snd-usb-audio nrpacks=1. Sla het bestand op met Ctrl+O en sluit nano af met Ctrl+X.

Stap 9 - Alias

Voor de volgende stap moeten we de alias van de usb-geluidskaart te weten komen. Voer de opdracht aplay -L uit. Bij ons zien we in de uitvoer onder andere front:CARD=Set,DEV=0. De alias is dan front:Set. Maak dan een configuratiebestand voor asound aan met het commando sudo nano /etc/asound.conf en plaats daarin achtereenvolgens de regels (waarbij je in de laatste regel in plaats van front:Set uiteraard de juiste alias in jouw situatie gebruikt):

pcm.mmap0 {

type mmap_emul;

slave {

pcm "hw:0,0";

}

}

pcm.!default front:Set

©PXimport

Maak een configuratiebestand aan voor de alias van jouw USB-geluidskaart.

Stap 10 - Volumemixer

Nu moeten we nog nakijken hoe de volumemixer van de usb-geluidskaart heet. Bij de interne audio van de Pi is dat PCM. Open nog eens alsamixer om het geluidsvolume aan te passen en kijk welke naam er onder het volumebalkje en achter Item: staat. Bij onze LogiLink TODO is dat Headphone. Open terug het opstartscript van Shairport Sync met het commando sudo nano /etc/init.d/shairport-sync en ga naar regel 66. Vervang daar -c PCM door -c Headpone of de overeenkomstige naam in jouw situatie. Reboot daarna je Pi en sluit je speakers op de audio-uitvoer van de geluidskaart aan. Stream opnieuw de audio van je Apple-apparaat naar je Pi en geniet van de betere geluidskwaliteit.

Stap 11 - Volume-instellingen opslaan

Tot nu toe moesten we na elke reboot opnieuw het volume veranderen in alsamixer omdat de standaardinstelling van het volume heel laag staat. Gelukkig kunnen we dat zelf ook definitief instellen. Start alsamixer en stel het volume in. Met de pijltjestoetsen naar links en rechts kun je van audio-uitvoer veranderen en met F6 kies je andere audioapparaten. Als je alles hebt ingesteld, druk je op Esc om je instellingen op te slaan en voer je daarna de opdracht sudo alsactl store 0 uit om je instellingen definitief op te slaan. Na een reboot blijft je volume nu zo hoog staan als je hebt ingesteld.

©PXimport

Zo sla je volume-instellingen op, wel zo handig.

Stap 12 - Meer opties

Shairport Sync ondersteunt nog heel wat opties. Bekijk de webpagina op GitHub voor meer informatie. Een interessante eigenschap van Shairport Sync is dat het altijd gesynchroniseerd blijft met de bron van de audio en dus ook met andere apparaten waarnaar dezelfde audio gestreamd wordt. Dat betekent dat multiroom-audio eenvoudig mogelijk is: plaats gewoon in elke kamer een Pi die Shairport Sync draait.

Speakers

Aan je speakers kun je zoveel of zo weinig geld uitgeven als je wilt. Voor een kleine ruimte of incidenteel gebruik volstaan zeker draagbare speakers die je al voor een tientje vindt. Ook een bluetooth-speaker is mogelijk, maar dat vereist wat extra configuratie en biedt doorgaans geen hoge audiokwaliteit. Voor enkele tientjes heb je al goede pc-speakers. Voor grotere ruimtes heb je uiteraard wat meer vermogen nodig en kijk je beter naar hifi-speakers.

▼ Volgende artikel
De verschillen tussen Pokémon FireRed en LeafGreen: welke moet je kiezen?
Huis

De verschillen tussen Pokémon FireRed en LeafGreen: welke moet je kiezen?

Vorige week verraste The Pokémon Company ons met de aankondiging dat Pokémon FireRed en LeafGreen naar de Nintendo Switch komen. Deze remakes van de allereerste Pokémon-games komen op Pokémon Day - 27 februari - uit, maar velen vragen zich af wat nou de verschillen tussen de twee titels zijn. Geen paniek: wij leggen het haarfijn voor je uit.

Pokémon FireRed en LeafGreen kwamen in 2004 uit voor de Game Boy Advance, en keren nu dus terug op de Nintendo Switch en de Switch 2. De games zijn los verkrijgbaar voor 19,99 euro per stuk in de Nintendo eShop, maar voordat je dukaten op de virtuele toonbank smijt is het handig om op de hoogte te zijn van de verschillen tussen de twee.

Gelukkig zijn het verhaal en de content van beide games identiek aan elkaar. Er is dus geen uniek gebied in beide games, of een verhaal dat je misloopt wanneer je één van de spellen koopt. Het enige verschil tussen de twee is welke pokémon je tegenkomt en dus in je team kunt stoppen. Hieronder zie je de lijst met welke Pokémon exclusief zijn in hun respectievelijke game.

FireRed

  • Ekans

  • Arbok

  • Oddish

  • Gloom

  • Vileplume

  • Psyduck

  • Golduck

  • Growlithe

  • Arcanine

  • Shellder

  • Cloyster

  • Scyther

  • Electabuzz

  • Bellossom

  • Wooper

  • Quagsire

  • Murkrow

  • Qwilfish

  • Scizor

  • Delibird

  • Skarmory

  • Elekid

  • Deoxys (Attack Form)

LeafGreen

  • Sandshrew

  • Sandslash

  • Vulpix

  • Ninetales

  • Bellsprout

  • Weepinbell

  • Victreebel

  • Slowpoke

  • Slowbro

  • Staryu

  • Starmie

  • Magmar

  • Pinsir

  • Marill

  • Azumarill

  • Slowking

  • Misdreavus

  • Sneasel

  • Remoraid

  • Octillery

  • Mantine

  • Magby

  • Azurill

  • Deoxys (Defense Form)

Watch on YouTube

Dat je bovenstaande Pokémon alleen in die game tegen kunt komen betekent overigens niet dat je de Pokédex nooit gevuld gaat krijgen. Het is namelijk mogelijk om te ruilen met andere spelers die de andere versie van Pokémon FireRed en LeafGreen hebben, en zo de lijst compleet te maken. Het is bevestigd dat de Nintendo Switch-versies van de spellen ondersteuning krijgen voor online multiplayer.

Dat The Pokémon Company deze ports vorige week al uit de doeken heeft gedaan is opvallend, gezien het bedrijf ook direct aankondigde een Pokémon Presents-livestream uit te zenden op Pokémon Day. Volgens veel fans had de aankondiging van FireRed en LeafGreen daarvoor bewaard kunnen worden, maar wellicht wil het bedrijf niet afleiden van een mogelijke grote aankondiging.

▼ Volgende artikel
Streamtips: nieuwe films en series – Monarch: Legacy of Monsters, Paradise en Lord of the Rings: The War of the Rohirrim
Huis

Streamtips: nieuwe films en series – Monarch: Legacy of Monsters, Paradise en Lord of the Rings: The War of the Rohirrim

Het is maandag en dat betekent dat er weer een gloednieuwe portie streamtips voor je klaarstaat! Of je nu zin hebt in piraten, thrillers of fantasy, er is voor ieder wat wils. Wij hebben de beste tips van het nieuwe aanbod voor je op een rij gezet, zodat je precies weet wat je deze week niet mag missen.

Paradise (seizoen 2) | Disney+ | 23 februari

De post-apocalyptische politieke thriller Paradise speelt zich af in een ondergrondse bunker ter grootte van een stad in Colorado, drie jaar na ‘doomsday’. De serie volgt Xavier Collins (Sterling K. Brown), een agent van de Amerikaanse geheime dienst, die wordt verdacht wordt van de dood van de president. Om zijn eigen naam te zuiveren en de waarheid te achterhalen, gaat hij op zoek naar antwoorden over wat er werkelijk is gebeurd. Sterling K. Brown is zoals altijd fantastisch en maakt Paradise eigenhandig het kijken waard.

Watch on YouTube

The Bluff | Amazon Prime Video | 25 februari

The Bluff speelt zich af in de late negentiende eeuw in de Caraïben. Ercell Bodden (Priyanka Chopra Jonas) heeft haar piratenleven achter zich gelaten en leidt een rustig gezinsleven op een afgelegen plek op de Kaaimaneilanden. Wanneer haar voormalige, moordlustige bemanning haar opspoort om gestolen goud terug te eisen onder leiding van de wraakzuchtige Captain Connor (Karl Urban), wordt ze genoodzaakt haar oude trukendoos tevoorschijn te halen om haar familie te beschermen.

Watch on YouTube

Bridgerton (seizoen 4 - deel 2) | Netflix | 26 februari

Het blijft een ietwat gekke trend, dat uitbrengen van nieuwe seizoenen in 'delen'. Enfin, de conclusie van Bridgerton seizoen 4 waltst deze week onze levens in. Het verhaal over Benedict en zijn relatie met de huishoudster Sophie, terwijl hij de mysterieuze 'Lady in Silver' eigenlijk ook zeer interessant vindt, wordt voortgezet. Zet je dus maar weer schrap voor een flinke dosis drama.

Watch on YouTube

Girl Taken (seizoen 1) | SkyShowtime | 26 februari

Tiener Lily (Tallulah Evans) loopt op een avond weg van huis en neemt een lift aan van haar ogenschijnlijk charmante leraar Rick Hansen (Alfie Allen). Hansen kidnapt haar en weet haar vijf jaar gevangen te houden. Haar moeder Eve (Jill Halfpenny) en tweelingzus Abby (Delphi Evans) zijn na een eindeloze zoektocht radeloos geworden. Geen zorgen, dat is geen spoiler, de serie richt zich namelijk vooral op de naweeën van Lily’s kidnapping en volgt haar terwijl ze moet leren omgaan met haar trauma’s en moet wennen aan een wereld die jarenlang zonder haar is doorgegaan.

Watch on YouTube

Monarch: Legacy of Monsters (seizoen 2) | Apple TV+ | 27 februari

Zeg nou even eerlijk: er is praktisch niets *cooler* dan een kaiju, toch? Dat snappen ze bij Apple TV dondersgoed, dus deze week kunnen we zowel de King of Monsters als zijn primatische aardsrivaal weer zien. Godzilla én Kong zijn van de partij in het tweede seizoen van Monarch: Legacy of Monsters, waarin ook Kurt Russell en zijn zoon Wyatt Russell terugkeren. De serie volgt mensen door de geschiedenis van onze wereld die te maken krijgen met de titanische monsters. Wie teleurgesteld was in de hoeveelheid schermtijd die de kaiju's in het eerste seizoen ontvingen kan gerust een klein sprongetje maken: de wezens komen in dit vervolg namelijk nog vaker aan bod. Als je het aantal kaiju verdubbeld, moet de schermtijd dat ook, niet? Dat is simpele wiskunde.

Watch on YouTube

The ‘Burbs (seizoen 1) | SkyShowtime | 27 februari

The ‘Burbs is een gemoderniseerde versie van de gelijknamige cultklassieker met Tom Hanks uit de jaren tachtig en speelt zich af in de idyllische buitenwijk Hinkley Hills. Een jong koppel Rob (Jack Whitehall) en Samira Fisher (Keke Palmer) verhuizen naar Robs ouderlijk huis. Hun rustige leven wordt al snel op zijn kop gezet wanneer een mysterieuze man intrekt in het huis aan de overkant van de straat. Tijdens haar zwangerschapsverlof, wanneer ze veel tijd alleen thuis doorbrengt, raakt Samira bevriend met een bont gezelschap excentrieke buren. Samen gaan ze op onderzoek uit en komen ze steeds dichter bij de duistere waarheden over hun buurman en hun stad. 

Watch on YouTube

Lord of the Rings: The War of the Rohirrim | Netflix | 28 februari

The War of the Rohirrim is gebaseerd op een van de appendices van The Lord of the Rings en speelt zich zo’n tweehonderd jaar voor de gebeurtenissen van de boeken af. De film volgt Héra, de dochter van de legendarische koning van Rohan, Helm Hammerhand. Een adellijke Dunlending biedt zijn zoon Wulf aan als huwelijkskandidaat voor Héra. Haar afwijzing leidt tot een gevecht tussen hem en Helm, dat onbedoeld uitmondt in een moord. Om zijn vader te wreken begint Wulf een oorlog en worden Helm, Héra en haar broers geforceerd hun koninkrijk te verdedigen. The War of the Rohirrim is een vermakelijke toevoeging aan de verfilmingen van Tolkiens werk en is voor Lord of the Rings-fans zeker het kijken waard, al is hij met een speeltijd van twee uur en een kwartier wel een tikkeltje aan de lange kant.

Watch on YouTube