Dans le premier article de cette série, Un Raspberry Pi serveur de musique, j’ai expliqué comment créer un serveur utilisant MPD. Mais je n’étais pas vraiment satisfaite. Depuis j’ai acheté un Raspberry Pi 3 et je me suis dit qu’il était temps de passer à un niveau supérieur.
Dans cet article, j’explique comment créer un serveur de musique miniDLNA qui va gérer toute ma musique numérique et la rendre accessible via des appareils Android (ou Apple). Dans un prochain article de cette même série, Un Raspberry Pi serveur de musique, j’expliquerai comment y ajouter un serveur UPnP.
Table des Matières
De quoi j’ai besoin ?
- Un raspberry Pi 3 ;
- Un cable ethernet (on peut opter pour le wifi mais ce n’est pas ce que j’ai choisi) ;
- un disque dur USB ;
- Une alimentation USB pour le Raspberry Pi et le disque dur.
Préparer le Raspberry Pi (Raspbian Stretch, IP fixe)
J’ai installé Raspbian Stretch Lite (sans la partie graphique) en suivant les instructions de mon article Mise en service d’un Raspberry Pi.
Le « hostname » de mon Pi est : AlMusicServer. C’est le nom que j’utilise pour me connecter.
J’ai réglé ce Pi sur l’adresse IP fixe (connexion ethernet) 198.168.1.102 selon les instructions de mon article Raspberry Pi : connexion internet en wifi et/ou IP fixe.
Régler la sortie audio
Pour le réglage et les tests, je me suis inspirée des articles suivants :
- Sound configuration on Raspberry Pi with ALSA, de SCPhillips.com
- Testing audio sur Learn.adafruit
- Sound Issues sur Github
ALSA est le système Linux de gestion du son. Le paquet alsa-utils est pré-installé dans les distributions Raspbian et contient des commandes utiles pour tester et régler le son de notre Raspberry Pi.
J’ai connecté mon Pi via le connecteur Jack 3.5mm. Ce n’est pas la meilleure solution pour une bonne qualité audio. On a intérêt à utiliser au moins une carte son USB, voire un DAC Hifi. Je verrai ça ultérieurement.
Dans le terminal, s’assurer que le mode audio renvoie bien au connecteur jack (et pas HDMI) avec
amixer cset numid=3 1
Pour tester le son
!!! Attention à bien enfoncer le connecteur Jack, sinon il y a du bruit dans les HP et rien ne fonctionne !!!
speaker-test
Ca fait un bruit (léger) dans les haut parleurs. Il faut régler le volume fort pour l’entendre.
aplay /usr/share/sounds/alsa/Noise.wav
Fait aussi du bruit, qu’on entend que si le volume est très fort
Pour voir les périphériques audios et leurs pilotes
aplay –l liste tous les périphériques audio présents
lsmod permet de voir quel pilote est associé au(x) périphérique(s) audio.
Pour régler le son
amixer controls renvoie
numid=3,iface=MIXER,name='PCM Playback Route' numid=2,iface=MIXER,name='PCM Playback Switch' numid=1,iface=MIXER,name='PCM Playback Volume' numid=5,iface=PCM,name='IEC958 Playback Con Mask' numid=4,iface=PCM,name='IEC958 Playback Default'
Playback switch règle le son sur “ON” ou « OFF ». Réglé sur On, le son sort des haut parleur au volume défini pat numid=1 (playback volume). Réglé sur Off, les haut pareleurs sont muets quel que soit le réglage de volume.
amixer cget numid=1 doit donc nous indiquer quel est le réglage du volume. Ca me dit :
; type=INTEGER,access=rw---R--,values=1,min=-10239,max=400,step=0 : values=-2000 | dBscale-min=-102.39dB,step=0.01dB,mute=1
Pour régler le son au maximum, je tape (noter qu’au lieu de cget j’utilise cset) :
amixer cset numid=1 100%
Maintenant aplay /usr/share/sounds/alsa/Noise.wav émet maintenant un son que j’entends mieux.
Et pour régler le volume sur 100% et la sortie sur ON et qu’elle soit utilisée à chaque redémarrage du Pi
amixer cset numid=1 100% amixer cset numid=2 on alsactl store
Mon son fonctionne.
Si j’utilisais une carte son USB (on en trouve à des prix dérisoires), il faudrait que j’identifie son microprocesseur selon https://learn.adafruit.com/usb-audio-cards-with-a-raspberry-pi/figure-out-your-chipset. Ensuite selon le microprocesseur utilisé, je suivrais les instructions d’Adafruit dans le tutoriel USB Audio Cards with a Raspberry Pi.
Ajouter un disque dur USB
Connecter un disque dur USB puis suivre les instructions de mon article Monter un disque dur externe partagé sur un Raspberry Pi.
Ma musique est dans /media/iomega/MULTIMEDIA/musique.
Installer un serveur miniDLNA
DLNA ?
Cet article, en français, explique plutôt bien ce qu’est le DLNA. Pour résumer, je dirai juste Le DLNA (Digital Living Network Alliance) a été créé par Sony et d’autres entreprises pour définir des pratiques permettant le partage de médias digitaux entre appareils électroniques. En 2015, selon Wikipedia, plus de 200 entreprises participaient à cette alliance.
Installation de mini DLNA sur notre Raspberry Pi 3
J’ai suivi les instructions de Raspberry Pi Media Server – MiniDLNA., avec une correction pour que la base de données se mette à jour correctement lorsque je modifie les fichiers de musique (source : ce sujet sur le forum Raspberrypi.org)
apt-get install minidlna
Copier le fichier de configuration pour le conserver avant modification
cp /etc/minidlna.conf /etc/minidlna.OLD
puis modifier /etc/minidlna.conf
Ma musique est dans /media/iomega/MULTIMEDIA/musique suite à l’installation du disque dur. Il ne faut pas mettre directement ce répertoire dans la configuration de miniDLNA car dans ce cas inotify ne fonctionne pas correctement.
On doit laisser un répertoire local (sur la carte SD) et on crée un lien vers la véritable localisation des fichiers de musique ensuite… Comme ça inotify fonctionne, c’est à dire qu’il surveille en permanence si des fichiers sont modifiés et met alors la base de données à jour (si les modifications sont réalisées pendant que miniDLNA fonctionne).
Je modifie donc les lignes suivantes (pour la ligne inotify=yes, j’ai simplement décommenté la ligne) :
media_dir=A,/var/lib/minidlna/music db_dir=/media/iomega/MULTIMEDIA/ friendly_name= AL Music inotify=yes
Dans le terminal du Pi, je définis un lien entre /var/lib/minidlna/music et /media/iomega/MULTIMEDIA/musique :
ln -s /media/iomega/MULTIMEDIA/musique /var/lib/minidlna/music
On peut verifier que ça fonctionne en cliquant sur /var/lib/minidlna/music dans filezilla. On est enmené automatiquement sur /media/iomega/MULTIMEDIA/musique
Je démarre le service avec la commande
service minidlna start
Le disque tourne pendant un bout de temps.
Le log est dans /var/log/minidlna.log . Pour savoir en temps réel ce qui se passe, je peux utiliser
service minidlna status
Dans l’explorateur Windows, un clic sur “Réseau » affiche AL Music. Si je clique dessus, j’accède au lien http://192.168.1.102:8200/.
Si j’ai modifié les fichiers pendant l’arrêt de miniDLNA, je redémarre en forcant la reconstruction de la base de données :
service minidlna force-reload
Gestion des utilisateurs
C’est assez bizarre que je ne doive pas définir d’utilisateur et de groupe pour miniDLNA. Mais comme tout semble fonctionner… Si jamais on a un problème, il faudra peut-être s’inspirer de cet article de la documentation Ubuntu.
Lire des radios internet avec MiniDLNA
Dans ce forum, la solution de phile est de créer une playlist contenant les url des radios souhaitées et le sauvegarder en mode .txt avant de le renommer avec une extension .m3u. L’auteur met même une playlist exemple en téléchargement sur dropbox ici.
Ensuite on place le fichier dans le répertoire musique du Pi, /media/iomega/MULTIMEDIA/musique/.
Avec Windows Media Player, si je clique sur « Playlists » dans la bibliothèque DLNA « AL Music », je vois toutes mes listes, y compris la liste que je viens de placer. Mais je ne peux pas la lire. PAr contre, si je lis une radio internet (CTRL U dans Windows Media Player puis lien vers un flux internet, par exemple http://chai5she.cdn.dvmr.fr/bfmbusiness pour BFM), je peux la mettre dans la play list créée et elle apparaît bien dans le contenu de mon Pi (/media/iomega/MULTIMEDIA/musiqueRadio – 2015 12 04 – HCFR.m3u.
C’est sans doute lié au problème d’utilisateur indiqué plus haut… A suivre !
Et maintenant ?
Dans un prochain article de cette même série, Un Raspberry Pi serveur de musique, j’expliquerai quelles applications on peut utiliser pour accéder au serveur à partir d’un PC ou d’un appareil mobile présent sur le réseau local. Un autre article expliquera comment ajouter un serveur UPnP à notre Raspberry Pi pour rendre l’utilisation vraiment confortable, voire même accéder à notre musique via internet.
Bonjour,
J’ai installer minidlna sur mon rpi4, le service tourne et j’ai créé un lien, mais pas sur un disque dur externe, j’ai mis le lien qui point vers mon NAS synology.
Cela fonctionne visiblement quand j’utilise un client DLNA sur mon téléphone, je détecte le serveur, en revanche, la librairie n’est pas peuplée, je ne vois aucunes musiques.
Que faut il faire avec la database ? faut il la faire pointer autre part ?
Bonjour, Tout d’abord, merci pour votre tutoriel sur l’installation de minidlna. Je l’ai suivi pour installer minidlna sur raspberry et cela fonctionne à une exception près. Je souhaite mettre des radios internet dans ma playlist, mais lorsque je regarde le contenu de cette dernière avec un lecteur (ma tv, mon téléphone sous bubbleupnp, mon ordinateur avec windows media player ou un autre appareil) elle apparait mais est désespérément vide . Si j’inclus un fichier mp3 présent sur le raspberry à cette playlist, lui seul apparait et peut être lû, mais toujours pas les radios, et si je colle mon fichier… Lire la suite »