Na początek postanowiłem zająć się możliwościami dźwiękowymi naszej malinki, a mówiąc dokładniej wykorzystaniu RPI jako centrum muzycznego. Ze względu...
Na początek postanowiłem zająć się możliwościami dźwiękowymi naszej malinki, a mówiąc dokładniej wykorzystaniu RPI jako centrum muzycznego. Ze względu na to, że temat jest dosyć obszerny (przynajmniej w zakresie możliwych konfiguracji i wykorzystywanego oprogramowania) postanowiłem go podzielić na kilka części. W pierwszej z nich postaram się przedstawić ogólny zarys pomysłu oraz zaproponować dwa, gotowe rozwiązania służące do uruchomienia centrum muzycznego. Przykłady konfiguracji przedstawię w dalszych częściach.
Autorem wpisu jest Rafał Świętonowski.
Spróbujmy trochę „pofilozofować” :) Założenia jak się okazuje nie są zbyt skomplikowane i same przychodzą do głowy po chwili zastanowienia. Jak przystało na poważny projekt zbierzmy najpierw wymagania ;)
- Musi to być usługa (w domyśle usługa serwerowa) pozwalająca na korzystanie z zasobów muzycznych, udostępnianych z różnych źródeł (np.: radio internetowe, zasoby serwera NAS, nośniki USB, DLNA, serwisy muzyczne, itp.).
- Usługa powinna posiadać prosty do obsługi panel administracyjny (przydzielanie zasobów zawierających treści muzyczne, uruchamianie usług dodatkowych, itp.).
- Usługa musi pozwalać na zarządzanie zawartością muzyczną przy pomocy różnych urządzeń (smartfony, PC, tablety).
- System powinien pobierać niewielkie ilości energii. To kwestia indywidualna i zależna od tego w jakim trybie chcemy używać naszego centrum muzycznego ale zakładam, że raczej będzie włączony przez większość doby oraz że nikt nie chce dużo płacić za prąd;) Oczywiście malinka jest stworzona do tego zadania.
- System powinien zapewniać zadowalającą jakość dźwięku. To oczywiście sprawa dyskusyjna ze względu na zastosowany sprzęt ale można ten stan rzeczy trochę poprawić o czym w dalszej części. Nie bez znaczenia jest też jakość medium muzycznego – w naszym wypadku będzie to oczywiście muzyka w formie cyfrowej.
Jak widać powyżej, nie ma tych założeń dużo i w prosty sposób (co postaram się pokazać) można je spełnić.
Poniżej rysunek poglądowy jak to wszystko może wyglądać:
Zauważyliście zapewne takie oznaczenia jak MPD i DAC. Pierwsze z nich dotyczy oprogramowania Music Player Daemon (MPD). Jest to oprogramowanie działające jako serwer dźwięku w architekturze klient-serwer. Część serwerowa odpowiada m.in. za odtwarzanie zawartości muzycznej, organizowanie jej w playlisty oraz zarządzanie bazą danych z zawartością muzyczną. Oprogramowanie posiada niewielkie wymagania sprzętowe i do naszych celów nadaje się idealnie.
Do komunikacji z serwerem MPD konieczne są aplikacje klienckie (zarówno do celów administracji jak i odtwarzania zasobów muzycznych). Nakładki klienckie dostępne są w postaci interfejsów WWW jak i aplikacji dedykowanych i to zarówno w wersji graficznej jak i tekstowej. Zyskujemy więc wiele możliwości na komunikację z naszym centrum muzycznym i patrząc na założenia możemy stwierdzić, że punkty 1, 2 oraz 3 mamy zapewnione. Punkt 4 założeń oczywiście zapewniamy już na samym początku ponieważ będziemy używali RPI, a malinka jak wiadomo nie pochłania dużych ilości prądu.
Co do punktu 5 to w ramach poprawy dźwięku wydobywającego się z malinki, postanowiłem zaopatrzyć się w coś, co na rysunku opisane jest jako DAC. Cóż to takiego? Ponieważ głównym (jedynym) medium muzycznym będą źródła cyfrowe to dobrze by było zaopatrzyć się w urządzenie, które potrafi „ulepszyć” dźwięki przesyłane z malinki (komputer w roli „transportu” - audiofile pewnie teraz dostają drgawek ;) ) Takim urządzeniem w każdym systemie audio jest konwerter (przetwornik) cyfrowo-analogowy - jest on odpowiedzialny za zamianę sygnału cyfrowego na jego postać analogową, która trafia do wzmacniacza a dalej do głośników (kolumny głośnikowe, słuchawki). Oczywiście od jakości takiego przetwornika zależy jakość wydobywającego się dźwięku.
Nasza dzielna malinka nie jest sprzętem audiofilskim a nam zależy przecież na tym aby brzmienie jakie będzie z niej wychodziło było jak najlepsze (założenia, punkt 5). W tym miejscu pojawia się rozwiązanie (niczym królik z kapelusza) – specjalna karta dźwiękowa do naszego komputerka. Jest ich przynajmniej kilka. Po przeanalizowaniu sytuacji zdecydowałem się na sprzęt HiFiBerry DAC+.
Jest to wersja przeznaczona dla RPI B+. Dodatkową zaletą tego urządzenia jest to, że działa (bez skomplikowanych modyfikacji konfiguracyjnych) na wielu przygotowanych dla RPI systemach oraz bardzo prosty montaż na malince. Ze względu na zastosowany w roli wzmacniacza sprzęt i posiadane okablowanie, wybrałem wersję z konektorami RCA. Zainteresowanych tym rozwiązaniem odsyłam na stronę.
Mamy już wszystko ! Chwilkę, jeszcze nie wybraliśmy bohatera, który odegra rolę serwera MPD. Tutaj też jest wiele gotowych propozycji. Ja do dalszej zabawy wybrałem Volumio oraz Pimusicbox. Po pierwsze obydwa rozwiązania działają z wybranym urządzeniem DAC, po drugie Pimusicbox zbudowany jest w oparciu o oprogramowanie mopidy, na przykładzie którego chciałbym pokazać proces konfiguracji i użytkowania serwera MPD dla RPI, uwzględniający instalację dodatkowych plugin'ów.
Oczywiście każda z tych propozycji spełnia również założenia przedstawione na początku artykułu i jest równie prosta w uruchomieniu i konfiguracji.
Volumio, które ewoluowało do obecnego stanu z projektu RaspiFi jest przygotowywane na wiele urządzeń, takich jak RPI, Cubox, Udoo i Beaglebone Black. Jak na "gotowca" przystało czas potrzebny na uruchomienie urządzenia i słuchania muzyki liczy się w pojedynczych minutach. System operacyjny nie posiada interfejsu graficznego a podczas startu urządzenia uruchamiane są jedynie niezbędne procesy i moduły, konieczne do pracy całości. Ustawienia konfiguracyjne możemy zmieniać za pomocą dedykowanego interfejsu WWW.
Aby uruchomić Volumio należy jedynie pobrać jego odpowiedni obraz (w naszym przypadku dla RPI) a następnie zapisać go na karcie SD. W systemie GNU/Linux możemy dokonać tego prostą komendą:
sudo dd bs=1M if=[nazwa_pliku_obrazu] of=/dev/[sd_name]
Najlepiej kilka razy upewnić się co do nazwy urządzenia pod jaką występuje karta SD. Czasami może to być urządzenie o oznaczeniu /dev/sdx a czasami np./dev/mmcblk0. Błąd popełniony w tym miejscu może się zakończyć wyczyszczeniem naszego dysku systemowego. Posiadacze systemu Windows mogą użyć do przygotowania karty SD z Volumio oprogramowania Win32DiskImager. Oprogramowanie uruchamiamy uprawnieniami konta Administratora.
Po uruchomieniu RPI i wpisaniu do przeglądarki internetowej adresu http://volumio.local/ lub adresu IP naszej malinki, powinniśmy zobaczyć taki oto ekran startowy:
Jak widać interfejs jest bardzo prosty (z prawej strony u góry rozwinięte menu z poszczególnymi pozycjami). Oczywiście powyższe zadziała jeżeli korzystamy z sieci LAN za pomocą karty ethernet'owej, a adres IP ustalany jest z serwera DHCP. W przeciwnym wypadku musimy ustawić najpierw parametry sieciowe naszej malinki (dla połączenia ethernet lub WiFi).
W przypadku podłączenia się do interfejsu Volumio istnieje możliwość zmian konfiguracji ustawień sieciowych w samym interfejsie co widać na poniższym obrazku.
Ponieważ używamy urządzenia DAC, musimy nasz konwerter zdefiniować w systemie Volumio. Volumio obsługuje HiFiBerry DAC+ bez problemu, wystarczy więc z menu „System” aktywować sterownik I2S dla odpowiedniego urządzenia i zrestartować RPI:
Poniżej jeszcze kilka obrazków z wybranymi widokami Volumio:
Konfiguracja dla Spotify. Wystarczy podać użytkownika, hasło i mamy dostęp do naszych zasobów muzycznych w tym serwisie. Oczywiście wymagane jest posiadanie opłaconego konta premium Spotify.
Konfiguracja zasobów sieciowych z naszą zawartością muzyczną odbywa się za pomocą opcji pokazanych poniżej:
Lista zaczytanych internetowych stacji radiowych:
A tak wygląda ekran Playback z włączonym utworem ze Spotify:
Na koniec jeszcze prosty klient MPD (Cantata) uruchomiony w środowisku KDE. W konfiguracji klienta należy podać adres serwera Volumio oraz numer portu (jest to port 6600). W przypadku pojawienia się błędu komunikacji z serwerem, można zmienić dowolną opcję w menu System/Playback i zapisać zmiany. Powinien zostać na nowo wygenerowany plik konfiguracyjny i zrestartowana usługa MPD. Po tej operacji powinno być już dobrze.
Poniżej widać utwory udostępnione przez serwer Volumio:
Podobnie prosto wygląda sprawa z oprogramowaniem Pimusicbox. Należy pobrać odpowiedni obraz, zapisać na karcie SD w sposób opisany powyżej i wystartować RPI. Aby uruchomić interfejs WWW, w tym przypadku wpisujemy w przeglądarce internetowej adres http://musicbox.local/ lub adres IP naszej malinki.
Więcej informacji o Pimusicbox, mopidy oraz bardziej zaawansowane ustawienia sieciowe, podpinanie mediów z muzyką, wykorzystanie aplikacji obsługujących protokół MPD dla urządzeń przenośnych czy ustawienia dla multiroom przedstawię w kolejnych częściach. Zapraszam.
Hej, jesteśmy na Google News - Obserwuj to, co ważne w techu