Version POC (Proof of concept) de la webradio V2
Je commence par les remerciements, tout particulièrement à trebmuh , le responsable du projet Librazik et à ephase , le technicien de la radio libre de Bordeaux : Giroll Plutôt que de repartir sur une base de Studiobox, qui propose un menu “sommaire” et des applications limitées, l'idée est de partir d'une distribution Grand public avec des paquets standards et de pouvoir transformer au moment voulu son système en webradio et de réutiliser son PC avec ou sans webradio. On part donc d'une base Linux Debian et on lui ajoute les dépots de l'équipe Librazik, et on utilise l'interface IDJC qui permet de gérer un flux webradio de manière très optimale.
0. Ce que cette solution peut faire
- Diffuser dans le flux radio depuis un seul ordi : les micros branchés sur le PC (via table de mixage), de la musique stockée sur le PC, un fond sonore par dessus une voix, des jingles par dessus la musique et les micros et étalonner leur puissance
- Ajouter de la compression aux micros si peu amplifiés
- Enregistrer une émission ou un morceau d'émission au milieu de la diffusion et vérifier l'enregistrement en direct
- Enregistrer l'émission en FLAC, sans perte avec enregistrement des métadonnées diffusées.
- Stopper la diffusion, tout en continuant d'enregistrer l'émission
- Diffuser en retour le son diffusé à l'antenne en direct (ou pas)
- Voir en direct le nombre d'auditeurs connectés
- Couper les micros depuis le PC
- Diffuser depuis le PC des musiques ou sons en streaming diffusées sur le web
- Diffuser de la musique 24h/24 avec une lecture aléatoire
- Diffuser les infos des tags des fichiers MP3.
- Et beaucoup d'autres trucs pas encore découverts…
0-bis. Installation rapide
- Voir cette procédure pour une installation “toutotomatik”
0-ter. Installation basique
Procédure d'install testée sur des X201
Installation de LibraZiK 3 ? Ne semble pas nécessaire.
1) Télécharger une image d'installation de la dernière version de Debian (Buster) avec l'environnement graphique Mate
https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/10.6.0-live+nonfree/amd64/iso-hybrid/debian-live-10.6.0-amd64-mate+nonfree.iso
2) Créer une clé USB “bootable” avec l'image téléchargée
3) Installer la dernière version de debian (Buster)
4) Ajouter les dépôts Librazik
* Se connecter avec son compte utilisateurice
* Menu → Système → Administration → Gestionnaire de paquets Synaptic
* Installer le paquet gdebi 1)
* Une fois le logiciel installé, fermer Synaptic
* Menu → Applications → Internet → Firefox ESR
* Aller à l'adresse http://download.tuxfamily.org/librazik/pasapas/
* Télécharger les paquets “librazik-keyring_3_all.deb” et “librazik-apt_3.02_all.deb” en double cliquant dessus. L'installateur de paquets GDebi se lance automatiquement et propose d'installer les paquets.
* Relancer Synaptic et “recharger” la liste des dépôts
Une fois Synaptic “rechargé” une erreur de doublon apparaît, il suffit de déselectionner les sources en double pour revenir à un “Synaptic sans erreur”.
5) Installer Jackd et IDJC
* Installer jackd et IDJC
* Suivre la fin de la procédure d'install/paramétrage des outils depuis https://ladoc.cemea.org/technique/webradiov2_librazik (à partir du paragraphe 4 “Paramétrage de Jackd”)
Et ça fonctionne !
1. Une base Debian
On installe sur une partition d'un PC une distribution Debian à partir d'une image ISO Debian net-install, (mais on peut aussi partir d'une Debian avec un environnement XFCE pré-installé et passer directement à l'étape 2.). On partitionne comme on veut (on peut tout mettre dans une seule partition si on veut).
On modifie les dépots Debian (/etc/apt/sources.list) pour ajouter à minima les dépots contrib (et non-free qui est ici optionnel mais nécessaire pour certains pilotes wifi comme firmware-iwlwifi
):
deb http://deb.debian.org/debian stretch main contrib non-free deb-src http://deb.debian.org/debian stretch main contrib non-free deb http://deb.debian.org/debian-security/ stretch/updates main contrib non-free deb-src http://deb.debian.org/debian-security/ stretch/updates main contrib non-free deb http://deb.debian.org/debian stretch-updates main contrib non-free deb-src http://deb.debian.org/debian stretch-updates main contrib non-free
et on installe le méta paquet mate-desktop-environment
mais aussi lightdm
(pour l'interface grahique) et on peut aussi installer mate-desktop-environment-extras mate-tweak
Mate est un environnement simple et léger basé sur Gnome 2. Mais au fond, peu importe l'environnement (d'autres à tester ?).
On peut aussi installer d'autres bricoles comme mate-tweak, firefox et ce qu'on veut d'autres tant que ça marche.
Paquets intéressants à rajouter, à compléter :
sudo apt install audacious easytag audacity task-mate-desktop mate-desktop-environment mate-desktop-environment-extras lightdm firefox-esr firefox-esr-l10n-fr network-manager-gnome
Il peut être utilie d'ajouter un taggeur de MP3 comme : easytag
ou exfalso
(ou d'autres)
IMPORTANT : il est nécessaire que l'utilisateur soit membre du groupe “audio”
sudo adduser monuser audio #adapter monuser à votre nom d'utilisateur
2. Ajout des dépots Librazik
On veut pouvoir bénéficier des supers outils de Librazik il faut ajouter les dépots de ce projet dans notre Debian.
Se rendre sur https://download.tuxfamily.org/librazik/decepas/ et télécharger les 2 fichiers .deb et les installer.
wget https://download.tuxfamily.org/librazik/decepas/librazik-keyring_2_all.deb && dpkg -i librazik-keyring_2_all.deb wget https://download.tuxfamily.org/librazik/decepas/librazik-apt_2_all.deb && dpkg -i librazik-apt_2_all.deb rm librazik-keyring_2_all.deb && rm librazik-apt_2_all.deb apt-get update && apt-get upgrade
En cas d'erreur de doublons de dépots dans la mise à jour, corriger manuellement avec cette doc : https://librazik.tuxfamily.org/doc2/logiciels/synaptic/doublon
3. Ajout de paquets liés à Librazik
On a besoin surtout de jackd (serveur de son), de qjackctl (interface de gestion de Jackd) (mais on pourra aussi lui préférer Cadence couplé avec Catia qui jouent le même rôle) et de IDJC, Internet DJ Console (qui sera l'outil principal de la webradio).
Certains recommandent l'usage d'un noyau Linux Basse Latence (à confirmer ?) pour réduire le temps entre l'entrée du son et le retour dans le casque par exemple.
sudo apt install idjc qjackctl linux-image-4.9.0-8-lzk-bl-amd64 # remplacer qjackctl par cadence et catia
4. Paramétrage de Jackd
Jackd est un serveur de son, utile pour pouvoir gérer plusieurs entrées. IDJC n'en a pas besoin pour fonctionner et diffuser un flux audio vers la radio, mais il est nécessaire pour gérer différentes entrées son : pistes son, son externe (micros), son depuis un navigateur Internet…
Il est recommandé de lancer Jack avec l'utilitaire QJackctl.
Jack arrêté :
Jack démarré (mode TR Temps réel avec le noyau basse latence installé et démarré dessus) et 0 (0) x-runs (décrochage = craquements).
Le processeur est utilisé à 3,4 %.
Réglages de QJackctl, onglets Paramétres : On peut ajouter un péripherique audio à utiliser dans Jack dans Interface (sa carte son interne si on veut l'utiliser comme entrée micro ou la sortie locale = le retour de ce qui est diffusé en direct et même un peu plus…).
On peut passer la fréquence d'échantillonnage à 44100 Hz et descendre Echantillons/Période à 512 ou 256 ou moins pour trouver un compromis intéressant entre “CPU utilisé” et “latence”.
Atteindre une latence de 5ms avec 5% de CPU est très correct.
On peut ajouter des options pour lancer Jack dès le lancement de Qjackctl, le démarrer minimisé dans la barre des tâches
Pour une config optimale, voir cette page pour un logiciel de gestion de jackd similaire : https://librazik.tuxfamily.org/doc2/manuel/configuration_jack
et cette page pour tout saisir de Jack avec Cadence : https://librazik.tuxfamily.org/doc2/logiciels/suite-cadence/cadence
5. Paramétrage de Connexions Jack
Lancer le Graphe de QJackctl pour voir vos interfaces utiles.
Ici on voit :
- Pulseaudio Jack Sink = pont entre le son sorti de pulseaudio (son joué dans le navigateur par exemple)
- System Playback = la sortie de la carte son du PC = Hauts-parleurs du PC portable par exemple
- System Capture = périphérique de capture de son de la carte son = micro interne ou externe connecté sur l'entrée son
- PulseAudio Jack source = entrée dans le serveur Jack pour être réutilisé
Il va maintenant falloir lancer IDJC qui va rajouter beaucoup d'entrées utiles comme :
- str_out l&r qui sont les 2 sorties vers le flux principal
- dj_out l&r qui sont les sorties DJ, pas nécessairement les mêmes
- ch_in_1 à 4 qui sont des entrées dans IDJC. C'est la qu'on va greffer tout ce qui va venir de l'exterieur : micros, musique du navigateur Internet
- alarm_out : signal utilisé en fin de morceau pour alerte
- pl et pr : player left 1 et player right 2 dans l'interface de IDJC : on ne s'en occupe pas
- pi et pe : je ne sais pas, sans doute les Effets (jingle) et les musiques de fond.
Au final, on doit connecter manuellement :
- PulseAudio Jack Sink vers ch_in_3
- Le périphérique d'entrée des micros (ici le System capture mais ça peut être la table de mixage en USB) vers ch_in_1 et ch_in_2
- str_out vers le Playback local si on veut avoir un retour direct du son diffusé
- alarm_out vers le Playback local pour entendre les alarmes dans le studio
- pour le reste on verra, mais ça marche déjà comme ça.
On peut ajouter des options pour lancer Jack dès le lancement de Qjackctl, le démarrer minimisé dans la barre des tâches
Pour une config optimale, voir cette page pour un logiciel de gestion de jackd similaire : https://librazik.tuxfamily.org/doc2/manuel/configuration_jack
et cette page pour tout saisir de Jack avec Cadence : https://librazik.tuxfamily.org/doc2/logiciels/suite-cadence/cadence
6. Configuration de IDJC
Décocher “Voir” → Canal mêtres qui ne nous intéressent pas
Aller dans Voir / Préférences et modifier :
Onglet Général :
Transmissions simultannées : 1 (on ne veut pas émettre sur plusieurs canaux en même temps mais on pourrait)
Nom du fichier d'enregistrement : emission-%Y%m%d-%H%M%S.$r au lieu de idjc-blabla.
Onglet Canaux
Renommer dans le canal 1 le texte “DJ” en “MicroRadios” et dans le 2 le “Aux” en “MusiqueInternet”
Et regarder les raccourcis “Scorciatoie”
7. Configuration pour diffusion et enregistrement dans IDJC
Aller dans Voir / Sortie
Il n'y a qu'une sortie puisqu'on a enlevé les autres. On clique sur «Configuration» et on choisit l'onglet «Connexion» et le bouton “Nouveau”
Il semble que le script paramètre le canal de diffusion sur “radios.cemea.org/listen” de base.
Il faut supprimer cette config pour pouvoir éditer et paramétrer la sienne en “Icecast 2 Maître”
On remplit les champs avec son canal :
On n'oublie pas “source” ni son bon mot de passe de canal. On laisse cochée la petite case du bas pour avoir les stats d'écoute en direct !!! Et on valide.
Se rendre dans l'onglet “Format” et choisir MPEG puis enchainer les paramètres par défaut , jusqu'à obtenir la configuration jointe où les 3 capacités sont en vert :
Icecast (o) - Shoutcast (o) - Recordable (o)
Et on peut personnaliser l'onglet “Informations sur le flux” et on peut jeter un oeil à “Contrôle individuel”
On peut aussi personnaliser le lieu des enregistrements : le 1 en Flux 1 (celui d'envoi = mp3) et le 2 en FLAC (sans perte).
On ferme et on est prêt pour la première session live !
8. On balance la sauce sur le web !
Pour lancer la diffusion sur le canal :
Fichier / flux / 1 votre flux ou connexion de groupe. A activer ou désactiver
Pour enregistrer la diffusion :
Fichier / Enregistreurs / 1 ou 2 ou les 2 selon votre besoin. A activer ou désactiver
Interface de IDJC.
2 onglets :
Lecteur principal pour diffuser des musiques en alternance avec les players (vous vous souvenez des entrées pl et pr dans le graphe de Qjackctl ? Ce sont eux) en haut et le Crossfader en bas : cocher bien «Monitor mix : Flux“ et non DJ.
Effets : pour balancer des jingles ou des musiques de fond (pendant une histoire par exemple).
Les boutons en bas servent à envoyer sur le Stream (flux sortant de la radio)': MicroRadios pour les micros branchés sur le ch_in_1, et MusiquesInternet sur le ch_in_3
On oublie vite les options Voip et téléphonie qui ne nous concernent pas.
Le bandeau à droite est très intéressant, car en plus du vu-mètre, il indique aussi :
- si le flux est diffusé (flux = vert)
- si le ou les enregistrements sont lancés (Enregistrer 1 et 2 en vert)
- le nombre d'auditeurs connectés (casque : 0, 1, 2…)
Je connais pas la différence entre VU et Pick ???
Que faut-il faire maintenant ?
Voilà, il reste à faire des essais avec du matos différent et regarder toutes les options utiles qu'on activera par défaut dans des fichiers de conf par défaut.
Il faut malmener l'interface de IDJC pour en comprendre les subtilités et voir tout ce qui est utile / inutile pour nos besoins.
Objectif : proposer un paquet deb qui installe tout ce qu'il faut et ajouter des outils simples :
- Créer sa config (canal, mot de passe) et son interface audio
- Lancer le IDJC avec le jack par défaut et la conf du canal par défaut
- Une doc pour accompagner tout ça
- On peut aussi imaginer une distribution Linux cléf en main avec tout ça d'installé comme la webradio V1.
- On garde aussi en tête que tout ça doit pouvoir être modifié, adapté pour d'autres structures.
Donc essayer de regarder toutes les options, de comprendre comment ça fonctionne et de trouver de supers astuces.
Studiobox v2 en ISO
L'académie de Versailles a conçu une version actualisée, donc les sources sont publiques : http://francois-xavier-vial.ac-versailles.fr/studiobox/
Les CEMEA Belges ont aussi leur version : https://github.com/Papaul2/webradio_live
Donc une nouvelle version pourrait bientôt voir le jour.