HiFiBerry: robimy z Raspberry Pi odtwarzacz muzyki HiFi

Strona głównaHiFiBerry: robimy z Raspberry Pi odtwarzacz muzyki HiFi
29.03.2016 21:04
HiFiBerry: robimy z Raspberry Pi odtwarzacz muzyki HiFi
bEhxaERO

Wysokiej jakości dźwięk trafia pod strzechy. Nie trzeba byćaudiofilem, wydającym dziesiątki tysięcy złotych na sprzęt, bycieszyć się 24-bitowym audio z próbkowaniem 192 kHz bez zakłóceń.Oczywiście dla prawdziwych audiofili, to co tu przedstawimy będzieherezją, ale zwykłym użytkownikom można dziś śmiało polecićdo odtwarzania muzyki Raspberry Pi z odpowiednią kartą dźwiękową.Pokażemy Wam, jak łatwo zamienić popularną Malinkę w niedrogi,programowalny odtwarzacz muzyki, który zapewni dostęp zarówno dolokalnej fonoteki jak i streamingu z Internetu.

bEhxaERh

Oczywiście nikt nie zabrania odtwarzania muzyki bezpośrednio zRaspberry Pi. Jakość generowanego w ten sposób dźwięku jest jednak raczejprzeciętna, co więcej, wygląda na to, że przy niskichczęstotliwościach nowsze modele Maliny radzą sobie gorzej, niżklasyczny Model B – taki jest koszt porzucenia liniowego regulatoranapięcia. Tak samo nie uzyskamy tu raczej dobrego dźwięku wysokiejczęstotliwości, powyżej 15 kHz.

Raspberry Pi jest jednak bardzo dobrą bazą pod stworzeniedobrego odtwarzacza dźwięku dzięki możliwości wykorzystaniamagistrali I2S, stworzonej przez Philipsa specjalnie do przesyłaniadźwięku w formie cyfrowej. Magistrala ta oddziela od siebie taktzegara i dane, pozwalając na uniknięcie zakłóceń. Możliwośćpodłączenia przetwornika DAC bezpośrednio do Maliny znacznieskraca zaś drogę sygnału, pozwalając ominąć kontroler USB iuzyskując sytuację niemal idealną, taką jak w profesjonalnymsprzęcie audio: komputer › I2S ›DAC › wzmacniacz.

HiFiBerry: nakładka z pięknym dźwiękiem

Dzięki uprzejmości sklepu Botland otrzymaliśmy do testów kartęmuzyczną HiFiBerry w wersji Digi+.Zakładana bezpośrednio na złącze GPIO Maliny karta nie wymagadodatkowych kabli i jest kompatybilna z Raspberry Pi A+/B+/2/3 (wwypadku modeli A/B konieczne będą małe modyfikacje, albozakupienie pasującego do nich modelu Digi). Parametry kartywyglądają bardzo interesująco – łączący się po magistraliI2S przetwornik, obsługujący częstotliwości do 192 kHz irozdzielczości do 24 bit, z wyjściami elektrycznym i optycznymS/PDIF, pozwalającymi podłączyć Raspberry Pi do wzmacniacza.Zasilanie oczywiście bezpośrednio z szyny GPIO, do tego mechanizmautomatycznej konfiguracji. Kartę-nakładkę kupimy w Botlandzie za145 złotych, dla audiofilów dostępna jest też wersja ztransformatorem izolującym galwanicznie sygnał z komputera za 199złotych.

bEhxaERj

W linii kart HiFiBerry znajdziemy jeszcze modelez wyjściem analogowym RCA oraz model z wbudowanym wzmacniaczem klasyD o mocy 25 W (który oczywiście wymaga zewnętrznego źródłazasilania). Tak samo jak Digi+, łączą się one z Maliną pomagistrali I2S, więc kwestia ich wykorzystania zależy od Waszychpotrzeb – my zdecydowaliśmy się na ten model z optycznym wyjściemze względu na to, że do dyspozycji mieliśmy chiński wzmacniaczSMSL z wejściem optycznym oraz Raspberry Pi 2 Model B.

Instalacja kart HiFiBerry jest bardzo łatwa. Delikatnie wciskamyją na złącze GPIO w Raspberry, otwory montażowe są dopasowane dominikomputerka, więc bez problemu połączymy obie płytki w stos.To wszystko – pozostaje jedynie podłączyć Raspberry Pi dozasilacza, a w gniazdo S/PDIF włożyć wtyczkę kabelka TOSLINK.Niektórzy radykalni audiofile polecają zastosowanie liniowychregulatorów napięcia z toroidalnym transformatorem, ale należącdo opcji umiarkowanej, wykorzystaliśmy tutaj zwykły tabletowyzasilacz 2,1 A z wyjściem microUSB (zasilacze 1,5 A i słabsze niewystarczą).

Volumio: sieciowy odtwarzacz HiFi

Bez oprogramowania oczywiście HiFiBerry niczego nie zrobi.Pierwotnie zamierzaliśmy szczegółowo pokazać, jak korzystać z tych kartdźwiękowych pod standardowym Raspbianem, ale szybko okazało się,że nie ma to większego sensu, przynajmniej przy założeniu, żeRaspberry Pi ma pracować jako wyspecjalizowany odtwarzacz muzyczny.

Uruchomienie HiFiBerry w Raspbianie jest (od Linuksa 3.18)dość proste. Po pierwsze z pliku /etc/modprobe.d/raspi-blacklist.conf musimy usunąć wiersze blacklist i2c-bcm2708 blacklist snd-soc-pcm512x blacklist snd-soc-wm8804 Następnie usunąć sterownik wbudowanego dźwięku, kasując w pliku /etc/modules wiersz snd_bcm2835 oraz skonfigurować drzewo urządzeń, w pliku /boot/config.txt dopisując wiersz dtoverlay=hifiberry-digi Potrzebna będzie jeszcze konfiguracja architektury ALSA – w tym celu tworzymy plik poleceniem sudo nano /etc/asound.conf, do któregowpisujemy: pcm.!default { type hw card 0 } ctl.!default { type hw card 0 }

bEhxaERp

Na bazie projektu RaspyFi powstał otóż sieciowy odtwarzaczmuzyki Volumio, który nie tylko zapewnia pełną obsługę obsługękart dźwiękowych podłączanych po I2S, ale też pozwalawykorzystać kolekcję muzyki przechowywanej np. na serwerze NAS czypodłączonym do Maliny zewnętrznym dysku, obsłużyć streaming zusługi Spotify, czy też zastosować specjalne profile kernela doulepszenia jakości dźwięku.

Uwaga: obecnie stabilna wersja Volumio nie działa jeszcze z najnowszym Raspberry Pi 3, wsparcie zostanie dodane w kolejnej wersji.

Volumio oferowane jest jako gotowy obraz systemu (zbudowanego nabazie Raspbiana), do wgrania na kartę SD. Znajdziecie go do pobraniana stronie projektu.Po rozpakowaniu archiwum zip znajdziemy w środku plik zrozszerzeniem .img, który na kartę nagrać można tak samo jakkażdy inny system na Malinę. Instrukcję, jak to zrobić naWindowsie, Linuksie czy Maku znajdziecie w pierwszymartykule z naszej serii.

Połączenie z siecią

Po nagraniu karty i jej włożeniu do Raspberry Pi, nasz muzycznyodtwarzacz startuje, inicjuje kartę dźwiękową, uruchamiaodtwarzacz, rozgłasza się w sieci lokalnej i udostępnia swójprzeglądarkowy interfejs. Tak to przynajmniej wygląda w idealnymwypadku, gdy Malinkę podłączyliśmy kabelkiem ethernetowymbezpośrednio do routera. Gdy jednak korzystamy z Wi-Fi, zaczynająsię schody. Co prawda Volumio zawiera niezbędne pakiety dokonfiguracji połączenia bezprzewodowego, ale by to zrobić, należywpierw Malinę podłączyć przez Ethernet – albo nauczyć sięnieco Linuksa.

bEhxaERq

Najpierw Ethernet, potem Wi-Fi

Pierwsza opcja jest prosta. Po uruchomieniu oprogramowania, wsieci lokalnej powinien pojawić się host o nazwie volumio.local –o ile nasz system i przeglądarka dobrze wspierają protokół mDNS.Bywa z tym różnie, nawet w najlepszym pod tym względem OS-ie Xokazało się, że Opera nie rozwiązuje tej nazwy, trzeba byłoprzełączyć się na Safari. Jeśli z jakiegoś powodu volumio.localnie działa, pozostaje wpisać adres IP urządzenia. Najłatwiejznaleźć go w panelu konfiguracyjnym routera, w ustawieniach DHCP(gdzie one są, to już zależy od modelu).

350174944028485569

Może być tak, że nie zawsze będziemy dysponowali dostępemdo routera. Jedną z najlepszych metod na wykrycie adresu IPkomputera podłączonego do sieci lokalnej jest wykorzystanie skanerasieciowego nmap. W wypadku Raspberry Pi wykorzystać można fakt, żeadres MAC tych komputerków zawsze zawiera bajty b8:27:eb. Wydając w konsoli polecenie nmap -sP 10.0.0.1/24 | awk '/^Nmap//B8:27:EB/' (oczywiście zamiast 10.0.0.1 może być inna pula adresów sieci lokalnej, np. 192.168.0.1),zobaczymy, jaki adres IP dostała nasza Malinka.

Aplikacja webowa Volumio pozwala na zmianę ustawień sieciowych wpanelu Menu > Network. W dziale Wireless Connection wpisujemy poprostu nazwę sieci, wybieramy typ szyfrowania (niestety dostępne sątylko WEP i WPA/WPA2-PSK) i wpisujemy hasło. Następnie pozostajekliknąć SAVE CHANGES – i już Volumio powinno móc korzystać zsieci bezprzewodowej. Obsługiwane są te same moduły Wi-Fi, co wRaspbianie.

bEhxaERr

Zamiast Ethernetu: monitor i klawiatura

Jeśli nie mamy możliwości podłączenia Raspberry Pi doroutera, wciąż nic straconego. Należy do Maliny podłączyćmonitor, klawiaturę, oraz moduł Wi-Fi. Uruchamianie systemu zajmiekilka minut – będzie on przez ten czas próbował uzyskać adressieciowy przez DHCP po kablu, ale w końcu zrezygnuje. Zostajemy zkonsolą.

Otwieramy plik konfiguracji interfejsów sieciowych poleceniemsudo nano /etc/network/interfaces i dopisujemy na końcu linijki:

allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp

Następnie zapisujemy zmiany przez Ctrl+O i wychodzimy kombinacjąCtrl-X.

bEhxaERs

Teraz poleceniem sudo nano /etc/wpa_supplicant/wpa_supplicant.confzakładamy plik konfiguracji szyfrowania WPA. Powinien on zawieraćnastępujące linijki:

ctrl_interface=DIR=/var/run/wpa_supplicantGROUP=netdev update_config=1 network=

Oczywiście zamiast NazwaSieci i Hasło podajemy parametry naszejsieci bezprzewodowej. Pozostaje zrestartować system (sudo reboot),Volumio będzie teraz już na starcie korzystało z Wi-Fi. Możemy odpiąć klawiaturę i monitor.

Konfiguracja odtwarzania dźwięku

Zanim nasze muzyczne Pi wyda z siebie pierwsze dźwięki,skonfigurujmy wykorzystywanego do tego demona MPD. Dobra wiadomośćdla nielubiących konsoli – wszystko można sobie wyklikać, przezinterfejs webowy. Na początku wchodzimy do Menu > Settings, anastępnie w sekcji I2S Driver wybieramy Hifiberry Digi. Następnieprzechodzimy do konfiguracji odtwarzania w Menu > Playback.Omówimy najważniejsze działy:

  • Audio Output – tutaj wskazujemy wyjście dźwiękowe. Domyślniewybrana jest systemowa ALSA, jednak mając kartę HiFiBerryprzełączamy na sndrpihifiberry.
  • Volume control mixer – tutaj ustawiamy regulację głośnościdźwięku. Domyślnie włączony jest sprzętowy mikser, zapewniającynajwyższą jakość dźwięku, jednak nie działa on ze wszystkimiprzetwornikami. Jeśli macie ten problem, pozostaje przełączyć namikser software'owy, jednak nieco pogarsza on jakość dźwięku, lubwyłączyć mikser w ogóle, wtedy jednak głośność będzie możnaregulować tylko na wzmacniaczu.

Demon muzyczny pozwala też na ustawienie kilku przydatnychfunkcji. Gapless mp3 playback ustawione na yes to odtwarzanie utworówkończących się nagle bez przerwy na ciszę. Jeśli nie działabezpośrednie otwarzanie 1-bitowego systemu modulacji DSD, możnawłączyć DSD over PCM. Volume normalization ocali nas przedgwałtownymi skokami głośności w utworze. Audio buffer size towielkość bufora audio. Domyślna wielkość – 2048 – wystarczyna 12 sekund dźwięku w jakości CD. Auto update pozwala zaśautomatyczne odświeżanie bazy utworów po zmianie w katalogu zmuzyką.

Volumio umożliwia również, z niezłym rezultatem, na resampling utworóww czasie rzeczywistym. Wymaga to mocniejszych Malinek, ale już naRaspberry Pi 2 działa dobrze. Możemy tu w teorii wymusićresampling nawet do 32 bitów i 384 kHz, w naszym wypadku DAC i taknie przekroczy 24 bitów i 192 kHz. Jakość zależy od wybranejopcji interpolacji. Wykorzystywana jest funkcja sinc – tranformataFouriera funkcji prostokątnej, a dostępne są ustawienia Fastest,Medium i Best – oczywiście im szybsza opcja, tym niższa jakość.

Zmiany zatwierdzamy za pomocą SAVE CHANGES.

Ustawienia ogólnosystemowe

Co prawda odwiedziliśmy już wcześniej Menu > Settings, można tu jednakzrobić sporo innych rzeczy:

  • Player name – ustawić nazwę odtwarzacza widoczną w sieci,zamiast domyślnego volumio.
  • Services management – kontrolować działanie sieciowych funkcjiVolumio, takich jak obsługa protokołu Airplay, kontrola przez UPnP,indeksowanie zawartości po UPnP czy serwer biblioteki utworów poDLNA. Jeśli mamy płatne konto w Spotify, tu możemy włączyćobsługę tego serwisu (podając swój login i hasło) oraz wymusićstrumieniowanie w wysokiej jakości (320 kb/s).img=iphoneairplay
  • I2S driver – jak już wspomniano, tu włączamy obsługęmagistrali niezbędnej do podłączenia karty dźwiękowej.
  • Miscellanous – to drobiazgi takie jak dźwięk startowy oraz typlayoutu interfejsu (widok biblioteki zajmuje więcej miejsca)
  • Sound quality tweaks – zawiera zestaw ustawień parametrówkernela, które modyfikują opóźnienia i mają wpływ na płynnośćodtwarzania i ogólną jakość dźwięku. Trudno wskazać tunajlepsze ustawienie, jest to kwestia dość indywidualna, zdaniemautora artykułu najlepiej sprawdza się profil Buscia.
  • System updates – tutaj można wymusić aktualizację całegoodtwarzacza Volumio.

Fonoteka i odtwarzanie muzyki

Pomimo obsługi Spotify, Volumio jest pomyślane przede wszystkimo odtwarzaniu muzyki z lokalnych źródeł. Mogą one znajdować sięna dysku sieciowym, udostępniane po protokołach SMB i NFS, na dyskuUSB, a nawet w RAMdysku (choć to nie ma za dużego sensu). Utwory napendrive zostaną wykryte i dodane do biblioteki automatycznie.Zasoby na dysku sieciowym trzeba dodać ręcznie.

350174944029665217

W tym celu w Menu > Library klikamy przycisk ADD NEW MOUNT. Wkolejnym panelu podajemy nazwę źródła, protokół (SMB/CIFS alboNFS), adres IP dysku sieciowego, nazwę zdalnego katalogu (należyzakończyć ją ukośnikiem) oraz dostępowe login i hasło. Wustawieniach zaawansowanych można jeszcze zmienić stronę kodową,rozmiary bufora odczytu i zapisu, oraz flagi montowania zdalnegozasobu. Kliknięcie SAVE MOUNT dodaje zasób sieciowy do naszejfonoteki – chwila indeksowania i będziemy mieli dostęp dozgromadzonych tam utworów.

Podpięty zasób sieciowy będzie dostępny pod przyciskiemBrowse. Jak zauważycie, oprócz dodanych ręcznie zasobów znajdujesię tam niezły zestaw stacji radiowych (WEBRADIO) – przyciskiem +możemy do niego dodawać kolejne stacje, hamburgeryotwierają menu kontekstowe pozwalające dodać stację do listyodtwarzania.

350174944029861825

Sama lista odtwarzania jest prosta w obsłudze. To co już dodane,usunięte może być przyciskiem minus, listę można zapisać popodaniu jej nazwy, a następnie wyczyścić. Dostępna jest teżinteraktywna wyszukiwarka-filtr, lepsza niż Ctrl-F w przeglądarce.

350174944029992897

Pozostaje omówić wreszcie sam interfejs odtwarzania. Lewy okrągto wskaźnik postępu utworu, cztery przyciski pod nim pozwalają napowtarzanie listy, odtwarzanie w losowej kolejności, odtwarzaniepojedynczego utworu oraz tryb pochłaniania, w którym odtworzonyutwór wypada z listy. Prawy okrąg służy do kontroli głośnościi ewentualnego wyciszenia. Na samej górze mamy też pasek zprzyciskami kontroli odtwarzania, których zastosowania nie trzebachyba wyjaśniać.

350174944030123969

Nie tylko przeglądarka: aplikacje do sterowania

Korzystanie z przeglądarkowego interfejsu jest wygodne nakomputerze osobistym, niekoniecznie już jednak będzie tak wygodnena smartfonie czy tablecie. Użytkownicy Androida mogą jednakkontrolować Volumio za pomocą kilku aplikacji. Sound@hometo rozbudowane narzędzie, które docenią posiadacze kilkuodtwarzaczy w różnych pomieszczeniach – tu można skonfigurowaćsobie oddzielne ustawienia dla każdego z nich. Audiowardto po prostu natywny androidowy interfejs dla Volumio, dodatkowopozwalający wyświetlać teksty piosenek pobranych przez Musixmatch.VolumioSpotify Share to wtyczka do aplikacji Spotify, za pomocą którejmożemy sterować odtwarzaniem muzyki z tego popularnego streamingu(działa to tylko dla kont komercyjnych).

  • Slider item
  • Slider item

Aplikacje te nie są oczywiście niczym przełomowym, alezamieniają urządzenie mobilne działające w tej samej siecilokalnej co odtwarzacz Volumio w wygodnego pilota, demonstrujączarazem, że rozwiązanie to cieszy się wsparciem społeczności iraczej nie zostanie zarzucone.

Malinowe impresje

Podczas testów Raspberry Pi 2 z kartą HiFiBerry Digi+ i oprogramowaniemVolumio spisywało się jako odtwarzacz muzyki znakomicie. Jest tojedno z najużyteczniejszych domowych zastosowań tego komputerka. Nie tylko wygodatego rozwiązania jest wielka, ale też i jakość uzyskanego dźwiękuwarta uwagi.

W przeprowadzonych przez nas testach porównawczychuczestnicy eksperymentu mieli za zadanie wskazać, które odtworzenietego samego utworu brzmiało dla nich lepiej.

Rywalem Malinki był komputerek HTPC z płytą główną AsRockaAM1H-ITX, z układem dźwiękowym Realtek ALC892 i optycznym wyjściemSPDIF. Wykorzystywany był ten sam wzmacniacz i te same kolumnystereo. Za każdym razem oceniający wskazywali, że lepszy dźwiękwydobywa się z HiFiBerry, niezależnie od tego, czy były to prostedyskotekowe rytmy, czy wokal Rihanny, czy też IX Symfonia. Lepszapołowa autora artykułu, obdarzona słuchem absolutnym i szkolona wszkole muzycznej w śpiewie, wskazywała w szczególności na znacznielepsze przenoszenie niskich tonów, niż w rywalizującym urządzeniu.

Łatwo więc dziś wskazać lepsze niż Raspberry Pi komputerki doodtwarzania filmów (szczególnie 4K), łatwo wskazać lepsze serweryNAS, wiele jest też lepszego specjalizowanego sprzętu dlaelektroników. Jeśli jednak chodzi o odtwarzanie muzyki, Malina wpołączeniu z kartą HiFiBerry staje się bardzo dobrym wyborem –kosztem kilkuset złotych zrobimy sobie sprzętowy odtwarzacz HiFi,tak łatwy (po skonfigurowaniu) w użyciu, że korzystać mogą zniego nawet domownicy nie znający się na Linuksie.

Po prostu włączasz i gra.

Programy

Aktualizacje
Aktualizacje
Nowości
Udostępnij:
bEhxaESf