Un jukebox casalingo con Raspberry Pi e mpd (parte 1)

Ascolto molta musica, e pur avendo una discreta collezione di CD originali, trovo comodo ripparli in formato mp3 per poter avere a disposizione tutta la mia libreria musicale a portata di clic. Ultimamente, però, mi sono trovato spesso a tenere acceso il PC desktop solo per riprodurre musica. Non si tratta certo di una buona soluzione, dato che oltre al consumo di corrente elettrica c’e’ il rumore di sottofondo delle ventole, che si fa sentire specialmente di notte.

Qualche giorno fa ho guardato il mio Raspberry Pi, acceso come sempre a fare da downloader e server casalingo, e mi sono chiesto se potessi usarlo come media player per riprodurre musica risparmiando 100W e rotti e in completo silenzio. La risposta? mpd.

mpd o Music Player Daemon è un server musicale per riprodurre musica sul computer su cui gira, e viene controllato da remoto tramite un client in esecuzione su altri computer o dispositivi mobili. Puo’ riprodurre il formato mp3 o altri formati tramite plugin (uno su tutti flac). Vediamo come installarlo.

Cosa ci serve:

  • Un Raspberry Pi (uso il model B)
  • Un alimentatore con uscita microUSB che eroghi almeno 1.2A
  • Una card SD da almeno 4GB (almeno 16GB se volete tenere la libreria musicale sulla SD) in classe 4+ per il sistema operativo
  • (opzionale) Un HD esterno o una chiavetta USB capiente per contenere la libreria musicale
  • Un cavo ethernet per collegare il Pi alla rete locale/internet
  • Delle cuffie o casse con cavo jack stereo da 3.5
  • (opzionale) un DAC/amplificatore USB esterno come il Fiio E7

Tempo necessario: 10-15 minuti se abbiamo già una installazione funzionante di Raspbian.

Installazione di base

Il sistema operativo che uso e’ Raspbian. Potete scaricarlo dalla sezione downloads del sito ufficiale del Pi, e installarlo seguendo questa guida. Io ho usato la versione 2014-06-30, ma vanno benissimo anche versioni piu’ vecchie se lo avete gia’ installato.

In breve:

  • Creo la card SD con il sistema operativo usando win32diskimager (o un tool equivalente sotto linux/OsX);
  • al primo avvio, cerco l’indirizzo IP del raspberry (di solito tramite la pagina di configurazione del router, oppure usando un tool di analisi della rete locale) e faccio il login via SSH, che sulle versioni recenti di Raspbian è attivato di default (quindi non serve collegare monitor e tastiera solo per abilitarlo);
  • $ sudo raspi-config per espandere il filesystem sull’intera SD, settare la timezone e altre preferenze;
  • monto l’HD esterno o la penna USB con la libreria musicale (per questa guida si suppone che gli mp3 stiano dentro la directory /mnt/usbhdd/music);
  • (opzionale) configuro samba per poter vedere il disco esterno dagli altri computer sulla rete locale.

Installazione di mpd

Una volta che il Raspberry è avviato e posso visualizzare i file musicali dentro la directory prescelta, installo mpd:

$ sudo apt-get install mpd

Una volta scaricati i pacchetti il demone viene avviato automaticamente, quindi lo fermo e creo una copia di backup del file di configurazione, /etc/mpd.conf:

$ sudo /etc/init.d/mpd stop
$ sudo cp /etc/mpd.conf /etc/mpd.conf.original

Avvio l’editor nano per modificare il file di configurazione:

$ sudo nano /etc/mpd.conf

Il file mpd.conf aperto in nano

Il file mpd.conf aperto in nano

All’interno del file di configurazione, ho modificato i seguenti valori (far precedere una riga dal cancelletto # commenta la riga e lascia intatti i valori di default del parametro):

music_directory            “/mnt/usbhdd/music”
playlist_directory          “/mnt/usbhdd/music/playlists”
[…]
user     “mpd”
[…]
#bind_to_address       “localhost”   (commentato, rimane sul valore di default “any”)
[…]
audio_output {
type               “alsa”
name            “Raspberry Onboard Audio” (verra’ visualizzato sul client)
device           “hw:0,0”
format           “44100:16:2”
mixer-device “default”
mixer-control “PCM”
mixer-index   “0”
}

Esco da nano con ctrl-x e rispondendo Y alla richiesta di sovrascrittura del file, poi riavvio il server con la nuova configurazione:

$ sudo /etc/init.d/mpd start

A questo punto, se la configurazione è corretta, il server dovrebbe avviarsi e iniziare a costruire il database dei file dalla directory impostata in music_directory nel file mpd.conf. Ora mi serve un modo per controllarlo e far partire la musica!

Installazione di ncmpcpp

Il modo più veloce per controllare che tutto sia stato installato e configurato correttamente è quello di installare un client mpd sullo stesso Raspberry, che si colleghi al server mpd che abbiamo appena lanciato e ci permetta di controllarlo. Dato che sono già collegato via SSH, la scelta cade su ncmpcpp, che installo con apt-get:

$ sudo apt-get install ncmpcpp

Finita l’installazione non c’e’ nulla da configurare, basta solo lanciare il client:

$ ncmpcpp

Le schermate di ncmpcpp si selezionano con i tasti 1-8, in particolare:

  • 1 apre la finestra di help con tutti i comandi a disposizione in ciascuna schermata;
  • 2 apre la playlist corrente;
  • 3 apre il file browser per navigare tra le cartelle e aggiungere file e cartelle alla playlist;
  • 4 apre la finestra di ricerca nella libreria multimediale;
  • 5 e’ la libreria multimediale vera e propria divisa per artisti/album/tracce;
  • 8 apre la lista dei device audio per selezionare l’uscita audio attiva.
La schermata File Browser di ncmpcpp (tasto 3)

La schermata File Browser di ncmpcpp (tasto 3)

Per prima cosa vado sulla schermata 3, dove non trovo nulla perchè devo aggiornare il database dal server mpd al client. Posso farlo premendo u per update, dopo qualche secondo in cui compare una [U] in alto a destra dovrei avere l’elenco delle cartelle, a questo punto basta navigare con le frecce su/giu’ e invio, aggiungere una cartella alla playlist corrente con spazio e passare alla playlist con 2, poi selezionare una canzone e mandarla in play con invio. Il volume si regola con le frecce sinistra-destra.

La schermata della playlist attiva in ncmpcpp (tasto 2)

La schermata della playlist attiva in ncmpcpp (tasto 2)

Se si usa l’uscita audio jack del Raspberry e non si sono fatti errori, dalle casse si dovrebbe sentire qualcosa :)

Il bello di questo setup è che una volta creata una playlist e lanciata la riproduzione non è più necessario tenere aperto il client ncmpcpp (nè quindi la connessione ssh, o il computer da cui ci si connette via ssh), quindi si può spegnere il pc e godersi la propria musica in silenzio e risparmiando corrente!

 In conclusione…

In questo post abbiamo visto come installare il server mpd per trasformare il nostro Raspberry Pi in un riproduttore di musica digitale, controllabile da qualsiasi computer della rete (a partire dallo stesso Pi), silenzioso e a consumo energetico quasi nullo. Nella seconda parte della guida vedremo che è possibile controllare il nostro jukebox casalingo anche tramite smartphone o tablet, usando delle app che fanno da client mpd. Vedremo anche come configurare un eventuale DAC esterno USB per migliorare la qualità di riproduzione saltando l’uscita audio onboard del Raspberry Pi. A presto!

One thought on “Un jukebox casalingo con Raspberry Pi e mpd (parte 1)

  1. Pingback: Un jukebox casalingo con Raspberry Pi e mpd (parte 2) | vemp.org

Leave a Reply

Your email address will not be published. Required fields are marked *