27 septembre 2019

Radio internet avec un raspberry pi

Marre de Radio France, marre des postes radios internet du commerce. Do It Youself ou en français on n'est jamais mieux servi que par soi-même.

Motivations

Radio France devient une merde, y compris France Culture. Exemple, ce connard qui a remplacé Antoine Mercier. Il se prend pour Jean-Pierre Pernaut : Petits reportages formatés avec son lot de traductions simultanées, des micro-trottoirs crottés, et une analyse de caniveau. Un peu d'air ! Avec internet le monde devient un village. On peut écouter à loisir les flux des radios francophones, Radio Four de la BBC, et davantage encore.

J'avais déjà tenté une solution en achetant une radio internet (voir l'article Sagemcom). Mais en dépit d'une ergonomie désagréable, il lui fallait des plombes pour se connecter au flux d'une radio. Et il lui manquait une fonctionnalité importante : celle de lire les balados (les podcasts pour les inféodés à l'ipod). Maintenant c'est pire que tout, le potentiomère derrière le bouton qui sert à presque tout, est défaillant. À la poubelle.

Après avoir regardé ce qui se vendait, j'ai résolu de faire mon propre récepteur radio internet, on n'est jamais mieux servi que par soi-même (DIY in english). Et je dois le confesser ça faisait un bail que je voulais jouer avec un raspberry pi.

Matériel

J'ai opté pour un raspberry pi 3 B, avec un écran de la taille de la carte, acheté chez audiophonics (1).

N'ayant pas réussi à faire fonctionner une vieille télécommande, je me suis rabattu sur un pavé numérique de PC qui croupissait dans un tiroir.

Enfin la sortie son est branchée sur des hautparleurs de PC.

Bien évidemment j'utilise abondamment ssh et vnc.

Je ne désespère pas de faire un jour fonctionner une télécommande. J'envisage aussi de lui fabriquer une boîte qui inclura l'électronique et l'alimentation.

Logiciel

Je n'ai pas réussi (1) à faire fonctionner l'écran avec ma distribution préférée (Archlinux). Je me résigne à adopter la brouette de debian : raspbian buster qui en est encore à la version 4 du noyeau.

Naturellement j'utilise python 3 et tkinter. Voici le script (2).

Ce script a besoin de deux fichiers

Le script radio.py comprend essentiellement deux classes :

Ce script est organisé autour de deux modes : le streaming et les podcasts. On utilise la touche Tab du clavier pour boucler entre les directs et les podcasts.

Voici un aperçu de ce que ça donne :

Notes

(1)

Chez Audiophonics la documentation est en dessous de tout. Il ne savent pas encore produire un vrai fichier PDF. C'est une image emballée dans ce format. Un fichier dt-blob.bin est fourni pour être utilisé exclusivement avec raspbian, en tout cas, pas avec Archlinux.

(2)

J'utilise system("mpc ...") au lieu de python-mdp2 parce que ce dernier plante parfois. Je ne me suis pas attardé à comprendre pourquoi.


Réalisé avec Qlam - LGPL