Als je thuis muziek wilt beluisteren, ben je vaak gebonden aan één ecosysteem van afspeelapparatuur en muziekbronnen. Met Music Assistant breek je deze beperking open: het is een muziekbibliotheekmanager die je volledige controle geeft over welke muziek je waar wilt afspelen. Bovendien is het programma volledig geïntegreerd in het domoticasysteem Home Assistant.
In dit artikel gaan we aan de slag met muziekbibliotheek Music Assistant, zodat jij al je muziek op welk apparaat dan ook kunt beluisteren.
- Installeer Music Assistant als add-on in Home Assistant
- Voeg een netwerkshare toe
- Voeg een afspeelprovider toe
- Integreer Music Assistant eventueel in Home Assistant, zodat je geautomatiseerd muziek kunt afspelen
Ook interessant: Vergeet Spotify en stream je eigen muziek met Navidrome
Fabrikanten van muziek-ecosystemen zoals Sonos pakken ermee uit dat je er muziek op jouw manier mee kunt beluisteren. Maar in feite ligt de controle volledig bij hen. Sonos bepaalt welke muziekbronnen het nu en in de toekomst ondersteunt. Ook de muziekbronnen zelf, zoals de streamingdiensten, beslissen waar en hoe je hun muziek mag beluisteren. En als je dan besluit om van streamingdienst te veranderen, verlies je de afspeellijst die je zorgvuldig hebt samengesteld.
Dat moest anders kunnen, vond Marcel van der Veldt, en daarom begon hij vijf jaar geleden te werken aan Music Assistant. Het programma laat je niet alleen toe om muziek te beluisteren van populaire streamingproviders zoals Spotify en Tidal, maar ook muziekbestanden die je lokaal op je netwerk deelt. Al deze songs worden in één muziekbibliotheek samengebracht. Bovendien ondersteunt het een veelvoud aan protocollen zoals AirPlay, Cast en DLNA om de muziek van al die bronnen op diverse apparaten af te spelen.
1 Installeren in Home Assistant
Je kunt Music Assistant als een Docker-container op een Linux-server draaien, maar de aangewezen installatiemethode is als een add-on in het opensource-domoticasysteem Home Assistant. Zo kun je de luidsprekers voor audiomeldingen van Home Assistant gebruiken, waarbij muziek die Music Assistant op dat moment aan het afspelen is, automatisch wordt gepauzeerd en na de melding weer verder gaat. Let op: Music Assistant heeft zelf 2 GB RAM nodig, bovenop de geheugenvereisten van Home Assistant zelf.
In Home Assistant ga je naar Instellingen / Add-ons en klik je rechts onderaan op Add-on winkel. Klik daarna rechts bovenaan op het hamburgermenu en kies Repositories. Vul daar de url https://github.com/music-assistant/home-assistant-addon in en klik op Toevoegen. Daarna zie je dat de repository Music Assistant is toegevoegd en kun je op Sluiten klikken. Scrol daarna in de Add-on winkel helemaal naar beneden en klik op de add-on Music Assistant en daarna op Installeer. Nadat de installatie is voltooid, schakel je eventueel Weergeven in zijbalk in en klik je op Starten. Klik daarna op Open Web-UI of (als je dit hebt ingeschakeld) op Music Assistant in de zijbalk om de gebruikersinterface van de muziekbibliotheekmanager te openen.
2 Diverse muziekproviders
Music Assistant ondersteunt meer dan tien verschillende muziekproviders. Daarbij horen streamingdiensten zoals Spotify, Apple Music, Deezer, SoundCloud en Tidal. Je kunt ook internetradio’s als muziekprovider toevoegen, of lokale muziekbronnen, zoals een server met Subsonic, Plex of Jellyfin. Music Assistant kan ook muziekbestanden op een lokale schijf of netwerkschijf toevoegen. Bekijk de documentatie over muziekproviders voor specifieke vereisten zoals een premiumaccount.
Als je lokale muziekbestanden wilt toevoegen, is het belangrijk dat ze correct getagd zijn, want Music Assistant gebruikt ID3-tags als ze er zijn, en haalt informatie over een song pas van een online metadataprovider als de tags ontbreken. Zie het kader ‘MusicBrainz Picard’ voor een programma dat je hiervoor kunt gebruiken. De tijd die je investeert in het correct taggen, verdien je zeker terug, doordat je dan in Music Assistant sneller de juiste muziek vindt.
3 Netwerkshare toevoegen
We illustreren dit door een netwerkshare van een NAS toe te voegen als muziekprovider. Music Assistant ondersteunt Windows-netwerkshares die het SMB/CIFS-protocol gebruiken, wat elke NAS ondersteunt. Klik rechts bovenaan op Add music provider, klik op Filesystem (remote share) en vul de nodige instellingen in: de server, naam van de share, gebruikersnaam en wachtwoord, en eventueel een subdirectory als je muziek daarin staat.
Het is aan te raden om de gebruiker schrijfrechten op de netwerkshare te geven, zodat Music Assistant er afspeellijsten op kan aanmaken of aanpassen. Als de gebruiker alleen leesrechten heeft, maak je afspeellijsten op de opslag van Music Assistant zelf. Klik tot slot op Save. Daarna zie je in de instellingen dat je muziekprovider is toegevoegd. Voor andere muziekproviders verloopt het proces op een gelijkaardige manier. Op de achtergrond begint Music Assistant nu ook alle muziek te importeren, die je vervolgens onderaan kunt bekijken in de onderdelen Artists, Albums en Tracks.
MusicBrainz Picard
MusicBrainz Picard (www.picard.musicbrainz.org) is een programma dat je muziek automatisch kan taggen, de muziekbestanden kan hernoemen en ze kan verplaatsen naar een mappenstructuur op de manier die jij zelf verkiest. Het maakt hiervoor gebruik van de online MusicBrainz-database (www.musicbrainz.org). Het programma is zowel voor Windows als Linux en macOS beschikbaar. Je voegt simpelweg de map met al je muziek toe, en nadat alle bestanden geïmporteerd zijn, selecteer je ze allemaal en klik je op Lookup. Picard begint met het herkennen van de songs en past automatisch hun ID3-tags aan. In de opties kun je ook aangeven dat het programma de bestandsnamen mag aanpassen en bestanden mag verplaatsen naar mappen per album. Je kunt ook handmatig tags toevoegen wanneer Picard ze niet automatisch instelt. Wanneer het programma klaar is, selecteer je alle bestanden en klik je bovenaan op Save om de wijzigingen naar de bestanden weg te schrijven.
4 Afspeelproviders
Nu Music Assistant toegang heeft tot je muziek, moet je de nummers nog ergens op kunnen afspelen. Daarvoor moet je nog een of meerdere afspeelproviders toevoegen. Ook hier biedt Music Assistant heel wat mogelijkheden. Daartoe behoren AirPlay-apparaten zoals de Homepod of andere slimme luidsprekers, uPnP/DLNA-luidsprekers, apparaten van Sonos, Google Cast-apparaten zoals de Google Nest-luidsprekers, Squeezebox-spelers zoals die van Logitech of doe-het-zelfapparaten met Squeezelite. Ook Snapcast wordt ondersteund: je installeert daarvoor de client op een Raspberry Pi of Android-telefoon om media af te spelen.
Het is belangrijk om te weten dat niet alle afspeelproviders dezelfde mogelijkheden bieden. Zo is gesynchroniseerd afspelen van muziek op meerdere apparaten niet met elke provider mogelijk, net zomin als crossfading. Met DLNA-apparaten moet je ook een beetje geluk hebben: er bestaan zo veel implementaties van deze standaard, dat er vaak workarounds nodig zijn. Sommige apparaten ondersteunen bovendien meerdere protocollen. Zo implementeren Sonos-apparaten DLNA, maar ze voegen daar hun eigen uitbreidingen aan toe voor functionaliteit als crossfading. Zo’n apparaat kun je dan beter als Sonos-apparaat toevoegen en niet als DLNA-apparaat. Specifieke informatie vind je in de documentatie over afspeelproviders.
5 Squeezelite-esp32-speler toevoegen
Om een afspeelapparaat aan je netwerk toe te voegen, klik je op Add player provider, kies je het type en vul je de nodige gegevens in. Daarna zou Music Assistant alle apparaten van dit type automatisch moeten herkennen. Wij hebben dit uitgeprobeerd met een Raspiaudio ESP Muse Luxe waarop we Squeezelite-esp32 installeerden met de webinstaller in Chrome.
Na de installatie van de firmware op de ESP Muse Luxe en de verbinding met het wifi-netwerk voegden we in Music Assistant de afspeelprovider Slimproto toe, die het protocol van Squeezebox implementeert. Daarna werd het apparaat automatisch als een Squeezelite-speler herkend. Je kunt het apparaat nu onderaan naast de afspeelknoppen selecteren. Je krijgt dan in een zijbalk aan de rechterkant alle herkende spelers te zien met hun status en je kunt er het volume instellen. Kies dan een track, album, artiest of afspeellijst om het nummer op het geselecteerde apparaat af te spelen.
6 Synchroon afspelen
Als je meerdere afspeelapparaten bezit die synchronisatie ondersteunen, kun je eenvoudig dezelfde muziekstream op al die apparaten tegelijk afspelen. Dat kan bijvoorbeeld met AirPlay, Google Cast, Sonos, Slimproto of Snapcast. Wij probeerden de laatste uit met een Snapclient op meerdere afspeelapparaten. Dat kan bijvoorbeeld op een Raspberry Pi, maar ook met de Android-app van Snapcast op je telefoon of tablet. Voeg daarna in Music Assistant de afspeelprovider voor Snapcast toe om de ingebouwde Snapcast-server op te starten.
Als je nu onderaan op de naam van een afspeelapparaat klikt, krijg je in de zijbalk meerdere apparaten te zien waarop je muziek kunt afspelen. Zie je het icoontje van twee schakels van een ketting naast een apparaat, dan betekent dat dat je het apparaat met een ander apparaat kunt synchroniseren zodat ze hetzelfde afspelen. Dat kan alleen tussen apparaten van hetzelfde type, bijvoorbeeld twee Sonos-apparaten of twee Snapcast-spelers. Daarna verschijnen ze samen in de zijbalk.
7 Integratie in Home Assistant
Tot nu toe gebruikten we Music Assistant als een op zichzelf staande oplossing, ook al installeerden we het als een add-on in Home Assistant. Maar de muziekbibliotheekmanager kunnen we ook nauwer met Home Assistant integreren. Daarmee komen alle afspeelapparaten in Home Assistant beschikbaar als mediaspelers en zijn aan te sturen via een dashboard of automatisering. Je kunt ook vanuit Home Assistant aankondigingen laten uitspreken op de afspeelapparaten. Andersom zijn ook mediaspelerentiteiten uit Home Assistant zichtbaar in Music Assistant, wat nuttig is als ze niet rechtstreeks door Music Assistant worden ondersteund.
De integratie met Home Assistant installeer je via de Home Assistant Community Store (HACS), waarvoor je overigens een GitHub-account nodig hebt. Als je HACS nog niet hebt geïnstalleerd, dien je een add-on voor ssh te installeren, daarin het volgende downloadscript uit te voeren:
wget -O - https://get.hacs.xyz | bash -
en Home Assistant te herstarten. Ga vervolgens naar Instellingen / Apparaten & diensten, klik rechts onderaan op Integratie toevoegen en kies HACS. Vink alles aan en klik op Verzenden. Daarna moet je HACS toegang geven tot je GitHub-account. De volledige instructies vind je in de documentatie van HACS.
8 Integratie installeren
Om de integratie met Music Assistant te installeren, klik je links op HACS. Via het zoekveld bovenaan zoek je naar de repository Music Assistant. Klik erop en klik rechts onderaan op Download. Bevestig dat je de integratie wilt downloaden en herstart daarna Home Assistant. Na de herstart heeft Home Assistant al automatisch Music Assistant ontdekt. Klik dan in Instellingen / Integraties bij de ontdekte integratie op Configureren.
De integratie toont je de url van de ontdekte Music Assistant en vraagt je om deze toe te voegen. Als je Music Assistant met de spraakbesturing van Home Assistant wilt gebruiken, kies dan bij Gespreksagent voor Home Assistant (of een andere al geconfigureerde spraakassistent). Vink ook Expose players to Assist aan. Klik tot slot op Verzenden. In de laatste stap krijg je te zien welke afspeelapparaten de integratie heeft gevonden en kun je ze indien gewenst aan een ruimte toekennen. Na een klik op Voltooien worden deze apparaten toegevoegd aan Home Assistant.
9 Mediaspeler
Elk afspeelapparaat dat bekend is bij Music Assistant, heeft nu een bijbehorende mediaspeler als entiteit. Je vindt ze bij Instellingen / Apparaten & diensten / Entiteiten. Een apparaat met de naam ESP Muse Luxe heeft bijvoorbeeld de entiteits-ID media_player.esp_muse_luxe. Klik je op het apparaat, dan op de drie puntjes en dan op Apparaatinformatie, dan kun je met een klik op Toevoegen aan dashboard een widget voor de mediaspeler aan je dashboard toevoegen.
In het dashboard kun je nu elk afspeelapparaat besturen: afspelen, pauzeren, terug en vooruit in de afspeellijst, en het apparaat uitschakelen. Met een klik op de drie puntjes bovenaan open je meer mogelijkheden, zoals het volume aanpassen, shuffle, de herhaalmodus, of bladeren door de media van Music Assistant om muziek te kiezen. Voor dat laatste is de interface van Music Assistant handiger, maar de basisfunctionaliteit werkt ook rechtstreeks in Home Assistant.
10 Aankondigingen afspelen
Music Assistant heeft ook een service gedefinieerd om aankondigingen op afspeelapparaten te laten horen. Om dat uit te proberen, open je in Home Assistant Ontwikkelhulpmiddelen / Services en kies je als service Music Assistant: Play Announcement. Kies vervolgens een of meerdere doelen om je aankondiging op af te spelen. Dat kan een apparaat uit Music Assistant zijn, maar ook een ruimte, als je aan de apparaten een ruimte hebt toegekend toen je de integratie in Home Assistant toevoegde (of later).
Daarna voer je de url in waarop het notificatiegeluid beschikbaar is. Dat kan een url op internet zijn, maar ook een van een webserver op je lokale netwerk of van Home Assistant zelf. Nadat je hier de url van bijvoorbeeld een mp3-bestand hebt ingevuld, klik je rechts onderaan op Service aanroepen. Je merkt dan dat de muziek op het apparaat wordt gepauzeerd, dat na een korte stilte het notificatiegeluid afspeelt, om daarna weer verder te gaan met de muziek. Je kunt er bij de service nog voor kiezen dat er vóór het notificatiegeluid een geluidje voor een vooraankondiging wordt afgespeeld, en het volume van de aankondiging kun je ook aanpassen. Wil je de YAML-code om de service in je eigen automatiseringen aan te roepen, klik dan op Ga naar YAML-modus.
11 Spraakberichten
Op een gelijkaardige manier kun je spraakberichten op de afspeelapparaten van Music Assistant laten horen. Dat gebeurt met de service Text-to-speech (TTS): Spreek. Kies eerst de entiteit voor een TTS-provider, bijvoorbeeld Google. Kies daarna de entiteit van de mediaspeler om het bericht op af te spelen en typ vervolgens je bericht in. Afhankelijk van de TTS-provider kan dat in het Engels of een andere taal. Vink in het laatste geval Taal aan en specificeer de taalcode van je taal.
Als je nu de service aanroept, stuurt Home Assistant de tekst naar de TTS-provider en laat de gegenereerde audio van het spraakbericht op je afspeelapparaat horen. Music Assistant pauzeert dan de muziek die momenteel aan het afspelen is, laat standaard een vooraankondigingsgeluidje horen, en daarna het spraakbericht. Vervolgens speelt de muziek weer verder. Overigens slaat Home Assistant bij deze service standaard het spraakbericht op. Zo hoeft dezelfde tekst de volgende keren niet opnieuw naar de TTS-provider te worden verstuurd. Ook hier kun je weer naar de YAML-modus gaan om de code te bekijken waarmee je de service in je eigen automatiseringen kunt aanroepen.
12 Automatiseer je muziek
Door de integratie van Music Assistant in Home Assistant kun je allerlei zaken automatiseren die met je muziek te maken hebben. Je kunt het zo gek niet bedenken of het is mogelijk. Wil je bijvoorbeeld een willekeurig nummer van AC/DC afspelen als je thuiskomt? Roep dan, wanneer een device tracker detecteert dat je thuiskomt, de service mass.search op met de artiestennaam en daarna de service mass.play_media waaraan je een willekeurig media-ID uit de resultaten doorgeeft.
De documentatie van Music Assistant geeft je uitgebreide informatie over de mogelijkheden, met talloze voorbeelden om je te inspireren. De ontwikkeling verloopt bovendien snel, en volgt ook de ontwikkelingen van Home Assistant op de voet. Zo is er ook al een mogelijkheid toegevoegd om Music Assistant via de OpenAI-integratie van Home Assistant via spraak te besturen. Vraag dan Play Nirvana in the kitchen en Music Assistant start de afspeellijst van Nirvana op je afspeelapparaat in de keuken.