Music Player Daemon


DNS / DHCP / Nagios / Gammu / Asterisk / MusicPlayerDaemon / Arduino RaspberryPI / OpenVPN | Créer son image pour Raspberry PI | DJI Fade | Reolink Timelapse | K8S on Raspberry Pi


Installation d’un serveur Music Player Daemon sur Raspberry Pi

Travaillant sur Mac j’écoutais ma musique sur iTunes, seulement à chaque upgrade de Xcode ou de iTunes ou de … la musique se coupe pendant toute la durée de la mise à jour qui peut être longue, bref cela a finit par m’agacer, j’ai donc décidé de déplacer ma bibiotheque musicale sur un raspberry pi et l’utiliser pour jouer la musique, seulement ceux qui ont essayé savent que le pi au niveau sortie audio “manque de patate”, le projet a donc évolué en ajout d’une carte son digne de ce nom, puis ajout d’un écran tactile pour piloter la musique donc réalisation d’une application tactile en Qt, et impression d’un boitier spécialement pour accueillir tout ca proprement sur le bureau. Nous allons détailler les étapes.

Music Player Daemon

Mon choix s’est porté sur Music Player Daemon, pour divers raisons : 1. il se pilote entierement par ligne de commande 2. il peut se piloter par une librairie par le réseau 3. il s’installe très simplement.

Music Player Daemon se décompose en deux packages : mpd (Music Player Daemon) et mpc (Music Player Client).

$> apt-get install mpd mpc

Nous reviendrons plus loin sur les commandes de bases de MPC

Installation d’une carte Hifi.

La carte retenue est la HifiBerry AMP2, elle se branche sur le port GPIO, attention cette carte demande une alimentation externe, le Raspberry PI est alors alimenté au travers du GPIO, il n’est plus nécessaire de l’alimenter par son port USB-C.

Voici la carte. HifiBerry AMP2

Son alimentation externe. Alimentation 12V 5A 60W

Ecran tactile.

L’écran sélectionné est le Waveshare 5inch HDMI LCD (H) 800x480 / Touch Screen Supports, il se branche tout simplement en HDMI sur le Raspberry PI.

Waveshare 5inch HDMI LCD (H) 800x480

Impression d’un boitier.

Je me suis réalisé mon boitier, voici ce que cela donne une fois monté et installé.

mpd-cote.jpg mpd-face.jpg

Voici les STL du boitier.

boitier-pi-bas-HifiBerry.stl boitier-pi-ecran.stl boitier-pi-ecran-front.stl

Installation de l’interface graphique full screen.

Télécharger le tar.gz contenant les sources du projet

QtHifi.tar.gz

Extraire l’archive

$> tar zxvf QtHifi.tar.gz 

Pour le compiler il faut les packages Qt.

$> apt-get install qt5-default qt5-gtk-platformtheme:armhf qt5-qmake:armhf qt5-style-plugins:armhf qt5ct

Se placer dans le répertoire QtHifi/datas/cmds/ et adapter les scripts en fonction du host ou tourne le Music Player Daemon, chez moi il tourne sur le host mpd.local.boxadmin.com (mpd)

Compiler le projet.

$> cd QtHifi
$> qmake
$> make

Faire en sorte que l’interface graphique se lance au boot du Raspberry PI

$> cd /etc/xdg/lxsession/LXDE-p
$> vi autostart
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
point-rpi
@xset s noblank
@xset s off
@xset –dpms
/home/pi/QtHifi/QtHifi &

Bien sur il faut adapter le chemin /home/pi/QtHifi/QtHifi en fonction de l’endroit ou QtHifi a été compilé.

Quelques commmandes MPC

musique suivante

$ mpc --host=127.0.0.1 next

pause

$ mpc --host=127.0.0.1 pause

musique précédente

$ mpc --host=127.0.0.1 prev

jouer la musique courante

$ mpc --host=127.0.0.1 play

stop

$ mpc --host=127.0.0.1 stop

liste des playlists

$ mpc --host 127.0.0.1 lsplaylists 

lister les musiques actuellement en playlist

$ mpc --host=127.0.0.1 playlist

Script pour les trier

#!/bin/bash

i=1
IFS=$'\n'
for line in $(mpc --host=127.0.0.1 playlist)
do
    echo "$i : $line"
    i=$(expr $i + 1)
done

Supprimer les musiques dans la playlist actuelle.

$ mpc --host=127.0.0.1 clear

Charger une playlist.

$ mpc --host=127.0.0.1 load nom-de-la-playlist

DNS / DHCP / Nagios / Gammu / Asterisk / MusicPlayerDaemon / Arduino RaspberryPI / OpenVPN | Créer son image pour Raspberry PI | DJI Fade | Reolink Timelapse | K8S on Raspberry Pi