Wir besitzen viele Audio-CDs und auf diese Sammlung bin ich auch stolz. Diese in ein Verwaltungsprogramm einzulesen und dort zu stöbern ist nett und keine Kunst. Was mich daran stört ist, dass ab einer gewissen Menge das Stöbern in digitalen Medien unmöglich ist. Das scrollen in geordneten Listen ist etwas anderes als in einem Regal durch die CDs zu stöbern und dabei auf Interpreten zu stoßen, an die man vielleicht schon viele Monate oder gar Jahre nicht mehr gedacht hat.
Mein Ziel war es, diese beiden Welten zu vereinen. Das habe ich mit RFID-Chips geschafft. Ich habe mit dem Programm Exact Audio Copy ein komplettes Archiv der CD-Sammlung im FLAC-Format angelegt. Aber dabei habe ich auch jeder CD bzw. jedem Album eine eigene RFID-Karte verpasst, die ich im unteren Teil der CD-Hülle, also zwischen der CD-Halterung und dem Rückseiten-Inlay versteckt habe. Jede Datei enthält im COMMENT-Tag den zehnstelligen Dezimalcode des RFID-Chips.
Der Haupt-Wiedergabe-Server ist ein MPD-Dienst unter Ubuntu. Dieser indiziert die CD-Sammlung. Ich habe folgende Konfiguration in der Konfigurationsdatei
sudo nano /etc/mpd.confeingestellt:
# Die Hardware-Soundkarte aktivieren:
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:1,0" # optional
mixer_type "software" # optional
mixer_device "default" # optional
mixer_control "PCM" # optional
# mixer_index "0" # optional
}
# dafür sorgen, dass der Comment-TAG mit indiziert wird:
metadata_to_use "+comment"Von nun an kann man mit einem Kartenleser den RFID durch vorhalten der CD an den Sensor auslesen. Es gibt RFID-Reader, die als Tastatur funktionieren. Das heißt, sie schreiben die ID nieder und simulieren danach den Druck der Taste ENTER.
Mit einem Shell-Skript kann man nun diesen Code auslesen und an MPD übergeben:
#!/bin/bash
while true
do
read -p "Bitte CD auflegen: " rfid
mpc search comment ${rfid} | mpc addIn diesem Fall wird die CD der aktuellen Warteschlange hinzugefügt. Es lohnt sich, ein paar RFID-Karten zu fertigen, um feste Befehle wie „PLAY“ oder „STOP“ parat zu halten. Diese können dann vor der MPC-Zeile mit einer IF-Schleife ausgewertet werden:
#!/bin/bash
while true
do
read -p "Bitte CD auflegen: " rfid
if [ ${rfid} == "1234567890" ]
then
ssh musicplayer@mpddomain.local 'mpc play'
elif [ ${rfid} == "1234567891" ]
then
ssh musicplayer@mpddomain.local 'mpc next'
elif [ ${rfid} == "1234567892" ]
then
ssh musicplayer@mpddomain.local 'mpc volume 30'
elif [ ${rfid} == "1234567893" ]
then
ssh musicplayer@mpddomain.local 'mpc stop'
else
echo "kommando GETCDID wird mit der Variable ${rfid} ausgefuehrt"
ssh ingschoe@pandora.local "mpc search comment ${rfid} | mpc add"
fi
doneDieses Skript lief auf einem Rapsberry Pi Zero W, der zusammen mit dem am USB-Port angeschlossenen Sensor an der Wand hing. Er gab über das WLAN die Befehle an den MPD-Server, wo sie dann ausgeführt wurden.
Wenn gewünscht, poste ich gerne einmal die vollständige Doku zu dieser Einrichtung. Ich habe sie hier angeschnitten, weil ich zwischenzeitlich HomeAssistant und somit MusicAssistant benutze. Der Raspberry Pi ist einem ESP-Chip gewichen und die Verwaltung der Befehle findet voll und ganz beim Music-Assistant statt. Player im Haus sind nun mehrere PiCorePlayer, was nun natürlich die Raspberry-Pis übernommen haben.












