Spotify Connect na Raspberry Pi z kartą USB Audio

Jako że lubię przed snem posłuchać muzyki przeniosłem swoje stanowisko ze wzmacniaczem i słuchawki na szafkę nocną. Problem pojawił się jednak dostarczeniem sygnału do sprzętu. Każdorazowe podłączanie telefonu do wzmacniacza jest uciążliwe, szczególnie w urządzeniu bez złączą jack 3,5 mm. 
Postanowiłem więc wykorzystać Raspberry Pi jako jeden z odtwarzaczy mojego ulubionego Spotify.
Poniższy poradnik będzie działał jedynie u subskrybentów Spotify Premium.


Po wstępnym uruchomieniu okazało się, że wbudowane wyjście jack w Raspberry Pi pozostawia wiele do życzenia - sygnał analogowy generowany jest poprzez modulację PWM z filtrem dolnoprzepustowym, rozwiązanie  a'la wzmacniacz klasy D.
Na szczęście udało mi się odgrzebać z moich zapasów kartę USB DAC z układem Burr-Brown PCM2704, która w znaczącym stopniu poprawiła jakość odtwarzanego sygnału.
W niniejszym wpisie przedstawię wam przebieg instalacji niezbędnych pakietów i ich konfigurację, lekko zahaczę też o aspekty sprzętowe.

Raspotify - nasza furtka do Spotify Connect

Raspotify to klient Spotify Connect reklamowany jako taki, który po prostu działa. I rzeczywiście tak jest. Po instalacji pozostałe urządzenia od razu wykryły moje Raspberry i możliwy był odsłuch.
Aby zainstalować rozszerzenie wystarczy w terminalu wykonać:
curl -sL https://dtcooper.github.io/raspotify/install.sh | sh
I na tym w zasadzie mógłby się ten poradnik zakończyć, ale warto skonfigurować kilka rzeczy.
Wpisujemy:
sudo nano /etc/default/raspotify
Naszym oczom ukaże się edytor tekstu z plikiem konfiguracyjnym Raspotify. Interesują nas przede wszystkim klucze DEVICE_NAME, BITRATE. Służą one do ustalenia widocznej nazwy odtwarzacza oraz jakości streamowanej muzyki. Ustawiamy wedle życzenia zgodnie z opisem w pliku konfiguracyjnym. Nie zapomnijcie usunąć znaku komentarza (kratki) z edytowanych linii.
Do klucza OPTIONS wrócę niebawem. Możemy zapisać plik kombinacją CTRL + X i potwierdzić przy pomocy "Y".

Wyjście audio

W zależności od potrzeb możemy z Raspberry otrzymać sygnał analogowy ze złącza jack (nie polecam tego rozwiązania) lub sygnał cyfrowy z HDMI (do wykorzystania np. z amplitunerem). Aby wybrać domyślne wyjście dźwiękowe uruchamiamy:
sudo raspi-config
następnie przechodzimy do "Advanced options" i "Audio". Wybieramy interesujące nas wyjście, zapisujemy konfigurację i możemy cieszyć się muzyką ze Spotify na zdefiniowanym urządzeniu.

Konfiguracja wyjścia audio

Raspotify a karta USB Audio

W przypadku podłączenia do Raspberry Pi karty dźwiękowej USB sprawa nieco się komplikuje, gdyż Raspotify pomija systemowy mikser audio i nawet pomimo ustawienia urządzenia USB jako domyślnego źródła dźwięku nie usłyszymy z niego kawałków ze Spotify.
Aby to naprawić wpisujemy:
aplay -l
Wyświetli nam się lista urządzeń audio podobna do tej na poniższym zrzucie.

Lista urządzeń audio

Odnajdujemy na niej kartę dźwiękową USB, u mnie jest to urządzenie USB Audio DAC. Znajduje się ona pod adresem "card 1, device 0". Informacja ta bedzie nam potrzebna do skonfigurowania Raspotify. Dla pewności możemy przetestować kartę wpisując:
speaker-test -c2 -D plughw:1,0
oczywiście jeśli mamy inny adres karty to poprawiamy wartości po dwukropku na odpowiednie.
Jeśli wszystko jest w porządku możemy skonfigurować Raspotify. Uruchamiamy edytor z plikiem konfiguracyjnym (drugie polecenie z tego poradnika) i dopisujemy klucz:
OPTIONS="--device hw:1,0"
gdzie pierwsza wartość po dwukropku to nr karty, a druga to nr urządzenia. Zapisujemy plik.
Aby zmiany odniosły skutek restartujemy Raspotify:
sudo systemctl restart raspotify
Do odczytu statusu odtwarzacza używamy:
sudo systemctl status raspotify

Montaż sprzętu

Układ początkowo leżał luzem na szafce, jednak znalazłem też w starych rzeczach plastikową obudowę po jakimś projekcie. Wielkością idealnie nadawała się na kombinację Raspberry z kartą USB Audio. Musiałem jedynie w kompaktowy sposób połączyć oba urządzenia. Aby to zrobić przerobiłem kabel USB, tak aby wtyk zajmował jak najmniej miejsca, a z drugiej strony wlutowałem się bezpośrednio w pady gniazda USB w karcie dźwiękowej.

Wnętrze odtwarzacza Spotify

Podsumowanie

Ostatecznie jestem zadowolony z efektu, wizualnie nie jest idealnie, ponieważ obudowa posiada ślady po poprzednich projektach, jednakże pod względem funkcjonalności i stabilności jest rewelacyjnie.

Efekt końcowy

Komentarze

Popularne wpisy

Reverse engineering wzmacniacza FirstWatt F7 - schemat

Kontroler MIDI do efektu gitarowego Line 6 M5