Met de muziek-setup die ik had was ik niet tevreden. Ik had een muziekspeler met verschillende zoekmogelijkheden en daarnaast nog een set HTML-pagina’s voor de “analoge beleving”, maar dat moest toch ook in één oplossing kunnen?
Ik liet mijn HTML-oplossing zien op een Digitale Fitheids-meetup en op een Tech Tuesday en vroeg om hulp. Bij die laatste bijeenkomst kwam Harm Aarts met de suggestie om Nightingale helemaal los te laten en te kiezen voor een web based muziekspeler. Zoek eens verder op vlc://, suggereerde hij. Ook noemde hij Moode. Met deze informatie voerde ik ChatGPT.

Een eerste verkenning
Ik vroeg of ik mijn oude vertrouwde Nightingale muziekspeler kon aanpassen. Die is immers open source? Nightingale is opgebouwd uit XUL, JavaScript, SQLite en HTML/CSS, leerde ik. Eugh, too much. ChatGPT beaamde dat dat een ingewikkelde klus zou worden. Andere suggesties waren:
• vlc:// links: ChatGPT raadde deze route af: Dit is geen standaard browserprotocol en werkt alleen als je VLC zélf lokaal als handler hebt ingesteld voor bepaalde links. Dus het werkt niet in een normale browsercontext voor het bouwen van een browsergebaseerde audio player.
• Een HTML5-audio player: Die is alleen geschikt als je MP3-bestanden hebt in folders die bereikbaar zijn via een webserver, zei ChatGPT. file:// naar lokale mappen kan niet zomaar, want browsers blokkeren dit vanwege veiligheidsredenen. Omdat ik geen web server wilde, streepte ik deze optie weg. Achteraf vind ik het stom dat ik dit zomaar voor waar heb aangenomen, want mijn simpele oplossing werkte wél gewoon met file://.
• Zelf een geavanceerde JS-player bouwen met playlists, albumart, zoekfunctie, etcetera. Dat kan met HTML/CSS/JavaScript, zei ChatGPT. Eventueel een library zoals Howler.js of WaveSurfer.js. Er kan nog een backend bij, als je bestanden wil indexeren of bewerken. Dit zag ik niet zitten, helemaal zelf een muziekspeler bouwen. Ik heb ook nog een leven!
• Een bestaande muziekspeler met songtekstondersteuning aanpassen dan: Kijk eens naar APlayer, AmplitudeJS, Modern Audio Player, zei ChatGPT. Zoek op html5 music player, javascript audio player open source of self-hosted mp3 player. Ik downloadde wat muziekspelers en speelde er een beetje mee. Bekeek de code. Toen bedacht ik me dat ik beter naar een muziekspeler kon zoeken die geschreven is in Python, omdat ik daar makkelijker mee uit de voeten denk te kunnen dan met Javascript. Ook hoor ik om me heen tevreden geluiden over de combi AI en Python. Het idee dat de muziekspeler web based moest zijn, verliet ik nu ook.

Al chattend en proberend kwamen zo mijn eisen en wensen boven tafel:
• Kunnen zoeken op titel, genre, album en dergelijke, maar ook op album art per (cassette)lade
• Songtekstondersteuning
• Geen aparte NAS of web server
• Niet van scratch af aan zelf een muziekspeler bouwen, maar er één downloaden en aanpassen aan mijn wensen
• Het moet op Windows draaien maar ook op Linux, want daar wil ik misschien ooit nog naar overstappen
• Liefst geschreven in Python

Tweede chatrondje
Het op de Tech Tuesday genoemde Moode kwam eigenlijk best een eind in de richting van wat ik wilde, zag ik, net als Volumio en PiCorePlayer. Het waren alleen Raspberry Pi-oplossingen. Is er ook zoiets voor Windows? vroeg ik ChatGPT. Ik zocht daarnaast ook zelf op Github, MP3 player, Python. Uiteindelijk vond ik een heel handig lijstje op Wikipedia. Good old Wikipedia! Daar had ik ook kunnen beginnen met zoeken, natuurlijk. Stom!
Alles wegstrepend wat niet op Python liep of wat geen songtekstondersteuning had, bleek me al snel dat QuodLibet de muziekspeler was die het geschikst was voor mijn doel. Out of the box kwam het al heel dicht in de buurt van wat ik wilde.
Quod Libet betekent zoiets als ‘Wat je ook wilt’. Er zijn maar liefst negen manieren waarop je door je muziekcollectie kunt navigeren. Eén daarvan is de ‘cover grid’, die je zelf kunt customizen:



Een andere is de ‘paned browser’, waarin je niet alleen de standaardtags kunt gebruiken, maar ook zelfgemaakte tags:



De mogelijkheden om de user interface van QuodLibet aan te passen lijken eindeloos…