Nous avons (quasiment) tous l’habitude d’écouter la radio sur une chaîne Hifi, un autoradio ou un radio réveil. Dans tous ces cas là, on passe par les ondes radio, avec les aléas de réceptions qui peuvent exister.
En attendant l’avènement généralisé des radios numériques (comme nous avons connus le passage de la télé à la TNT), une piste pour avoir une qualité d’écoute correcte est la radio par Internet.
Mais comment avoir un système simple et utilisable par tous ?
- Acheter une radio dédiée ? Ca me semble un peu cher encore aujourd’hui
- Utiliser son ordinateur de bureau ou portable ? Un sacré matériel monopolisé
- Recycler un ordinateur un peu design ? Ah oui, c’est sympa et colorés les iMac de première génération, mais c’est un peu encombrant et énergivore
- Recycler un vieux smartphone ? Oui, la piste est intéressante, et je l’explorerai sûrement une prochaine fois
- Utiliser un Raspberry Pi ? Ahhhh, en voilà d’une bonne idée. Surtout sur un site qui parle aussi de cette framboise 🙂
L’inspiration
Il y a plusieurs sites qui présentent de très bonnes solutions qui m’ont beaucoup aidé à construire la mienne
- http://www.spiria.com/fr/blogue/systemes-embarques-et-m2m/construire-une-radio-web-avec-un-raspberry-pi
- https://www.youtube.com/watch?v=KM4n2OtwGl0
- http://raspberrywebserver.com/serveradmin/run-a-script-on-start-up.html
La réalisation : une radio toute simple qui démarre quand on lui demande
On va commencer petit : on installe tout ce qu’il faut pour pouvoir écouter la radio quand on lui demande via le SSH.
1ère étape, on installe le Raspberry
Pour commencer, il vous faut un Raspberry Pi avec Raspbian dessus : vous trouverez tout sur cette page Mettez de la vie dans votre Raspberry
Trouvez aussi des enceintes qui se branchent sur une prise jack et tout sera presque parfait.
2ème étape, on active la bonne sortie audio
Le son du Raspberry peut sortir soit par la prise HDMI soit par la prise jack. Par défaut, le Raspberry choisit automatiquement laquelle activer. Comme nous sommes des gens bien élevés, nous allons le guider pour qu’il utilise la bonne sortie : la prise jack.
Et comment ça se paramètre ? en se connectant via Putty ou Kitty en ssh et on lançe
sudo raspi-config
Il faut choisir les options avancées

Puis la partie Audio

Le choix est explicite entre le mode automatique, la prise jack ou la prise HDMI… je choisi jack pour pouvoir brancher un casque ou des enceintes.

3ème étape, on installe le logiciel qui va lire le flux radio
Pour écouter la radio FM, vous mettez votre radio sur 104.3 ou 97.7… dans le cas d’une radio Internet, vous mettez votre radio sur une adresse Internet. C’est ce que nous allons faire ensemble
Toujours connecté en SSH, nous allons lancé une première commande qui va mettre à jour la liste de ce qui peut s’installer sur votre Raspberry :
sudo apt-get update

Une fois terminé, votre Rasp connait la liste des paquets (ce qu’il peut installer) et leur dernière version. Il sait donc également ce qu’il peut mettre à jour parmi les logiciels qui sont déjà installés :
sudo apt-get upgrade

En cours de route, l’outil vous informe que les mises à jour vont prendre un peu plus de place sur le système. Il faut répondre Y (pour oui). Et à partir de là, les mises à jour se font. Ensuite, difficile de vous dire quel comportement adopter, puisque ça va énormément dépendre de la liste des mises à jour, qui évolue presque tous les jours.
Une chose est sûre, nous allons installer un outil pour lire le flux radio dont je vous parlais un peu plus haut :
sudo apt-get install mpd mpc

Il va maintenant falloir rajouter l’adresse de la radio que vous voulez écouter. J’ai trouvé ce site qui va vous aider : http://fluxradios.blogspot.fr/p/flux-radios-francaise.html
Personnellement, je suis allé sur la page de RTL pour récupérer un des liens. Voici comment tester en ajoutant une première adresse :
mpc add http://streaming.radio.rtl.fr/rtl-1-48-192
et pour tester si ça fonctionne, nous lançons la lecture de la première adresse ajoutée
mpc play 1

Pas de son ? Cela peut provenir d’une adresse Internet qui ne serait pas bonne ou pas compatible. Pour vérifier, vous pouvez rentrer la commande suivante (sans aucun paramètre) :
mpc
Il n’y a pas d’erreur? il va falloir vérifier que l’enceinte est bien branchée, que son volume est bien réglé, … Je ne peux pas faire grand chose de plus pour vous.
Il est indiqué qu’il y a une erreur ?

Là, je peux peut-être vous aider. Nous allons devoir essayer une autre adresse Internet en commençant par arrêter la lecture en cours
mpc stop
Supprimons maintenant la première adresse que nous avons ajoutée
mpc rem 1
et essayons une autre adresse
mpc add http://mfm.ice.infomaniak.ch/mfm-128.mp3
et de la même façon
mpc play 1
Ca y est, le son fonctionne ? Super.
Vous l’aure compris, on va pouvoir rajouter autant de radio que nous le souhaitons en jouant la commande
mpc add <url>
De la même façon, on joue la liste que nous souhaitons en demandant son numéro
mpc play <x>
il est aussi possible de passer d’une liste à l’autre en utilisant les commandes suivantes (respectivement accéder à la radio suivante et à la radio précédente)
mpc next mpc prev
Et si vous en avez marre, vous pouvez également supprimer toutes les adresses enregistrées
mpc clear
En résumé, une fois que vous avez enregistré l’adresse de la radio que vous souhaitez, vous lancer la commande suivante (en remplaçant le <x> par le numéro que vous souhaitez)
mpc play <x>
et pour arrêter
mpc stop
Phase 1 réussie ! Votre radio fonctionne mais ça reste laborieux.
2 commentaires sur “Projet Radio Wifi – Etape 1 : Faire sortir du son de votre Raspberry”
Bonjour
Dans quel fichier sont stockées les adresses des radios à lire ?
D’avance merxi
Bonjour Andrea. Voici ce que je viens de trouver sur : https://stackoverflow.com/questions/15659067/mpc-mpd-on-linux-how-to-play-local-wav-file
music_directory « /tmp »
playlist_directory « ~/.mpd/playlists »
db_file « ~/.mpd/database »
log_file « /tmp/mpdlog »
pid_file « ~/.mpd/pid »
state_file « ~/.mpd/state »
sticker_file « ~/.mpd/sticker.sql »
user « root »
group « root »
bind_to_address « 127.0.0.1 »
log_level « verbose »
auto_update « yes »
auto_update_depth « 3 »
follow_outside_symlinks « yes »
follow_inside_symlinks « yes »