SFLPhone, IDJC et Tango Studio pour une webradio
Dans le cadre de Radio Giroll, émission mensuelle de (web)radio en direct autour des cultures libres, j'ai mis en place une nouvelle régie virtuelle. Nous cherchions, avec les autres membre du collectifs Giroll, une solution simple et fiable pour la partie téléphonie. Nous l'avons trouvé avec SFLPhone
Notre régie de diffusion
La partie serveur (que se soit de diffusion ou téléphonie) est fournie par mon ami Antoine avec bien sur du logiciel libre à tous les étages. Pour la régie, nous avons choisi un ordinateur portable pas tout jeune basé sur un processeur Core2Duo épaulé par 2Go de mémoire et une interface Audio USB M-audio Fast track Ultra (8 entrées dont 4 pré-amplifiées). Nous pouvons donc une régie capable de recevoir 4 interlocuteurs en simultané.
Au niveau logiciel, j'ai installé Tango Studio, une distribution dérivée de Debian et spécialisé dans le multimédia. Les logiciels utilisés sont Jack2 pour le serveur de son, IDJC pour diffuser, SFLPhone pour gérer la ligne téléphonique et Gladish pour simplifier les connexions de tout ce petit monde.
Bien sûr si certains d'entre vous sont intéressés pour en apprendre plus sur les aspect technique, faites le savoir, j'écrirai un article plus détaillé dessus.
Pourquoi SFLPhone?
Pour une émission de radio en direct, une ligne téléphonique est importante. Que se soit pour recevoir des appels d'auditeurs mais aussi pour appeler des intervenants.
Pour notre régie, un logiciel de téléphonie doit répondre à 4 contraintes
- S'interfacer avec le serveur SIP (Asterisk pour ne pas le citer) fourni par Antoine
- Être libre
- Être compatible avec notre serveur de son Jack en natif ou via un wrapper Alsa (mais pas de pulseaudio, c'est très mauvais pour la latence et non disponible sur Tango)
- être stable et léger (la machine et modeste et 4 flux micro à traiter en simultané ce n'est pas de la tarte)
J'ai testé pas mal de logiciels (Linphone, WengoPhone, Empathy ...) et j'ai retenu SFLPhone. Petit problèmes cependant : au moment de mon choix celui-ci n’était pas encore compatible avec Jack.
Mettre en place un wrapper Alsa.
Pour permettre à Jack et SFLPhone de dialoguer l'un avec l'autre, nous allons mettre en place une interface audio virtuelle Alsa<>Jack dans Gladish.
Charger le module adéquat
Pour que notre interface virtuelle fonctionne, il faut préalablement charger le module noyau snd_aloop
, il est chargé autolatiquement au démarrage sur Tango Studio, si ce n'est pas le cas pour votre distribution un petit modprobe snd_aloop
et le tour est joué.
Modifier le fichier .asoundrc
Dans un premier temps, j'ai modifié mon fichier .asoundrc
pour définir les périphériques audios virtuels qui serviront de base à la création du wrapper. j'ai trouvé ce fichier ici dans la partie Building an asoundrc file
. Il sera peut-être nécessaire de l'adapter à votre configuration (notamment au niveau du taux d'échantillonnage)
Vous trouverez ce fichier en pièce jointe à cet article.
Dans Gladish.
Je me sert de ce logiciel pour démarrer en un clic tous les logiciels qui compose la régie et les connecter les un aux autres.
J'ouvre Gladish , puis je vais dans Studio > nouveau que je nomme Giroll - 4 micros . Ensuite je vais rajouter 4 applications (Application > nouvelle application raccourci clavier F2).
- La seconde : commande
/usr/bin/alsa_out -j ploop -dploop -r 96000 -q 1
, nomAlsa lecture
, Level 1 et cocherlancer dans un terminal
. La commande permet de rentre disponible un pseudo-périphérique de lecture alsa pour jack.
- La troisième : commande
/usr/bin/alsa_in -j cloop -dcloop -r 96000 -q 1
, nomAlsa capture
, Level 1 et cocherlancer dans un terminal
. La commande permet de rentre disponible un pseudo-périphérique d'enregistrement alsa pour jack.
Il suffit alors de démarrer le studio, Gladish (menu Studio > Démarrer le studio ou la touche F5) se charge alors de lancer toutes les applications nécessaires et réalise toutes les connexions. La capture d'écran ci-dessous vous montre comment sont connectés les points d'entrées et de sortie Alsa vers IDJC pour utiliser SFLPhone :
- Capture_1 vers IDJC voip_ip_l
- Capture_2 vers IDJC voip_ip_r
- IDJC voip_out-l vers playback_1
- IDJC voip_out-r vers playback_2
configurer SFLPhone
Dns SFLPjhone, je vais dans Editer > Préférence audio > Greffon Alsa doit être à default.
SFLPhone est maintenant accessible dans l'interface d'IDJC : les 4 intervenants auront dans les retours la voix de l'interlocuteurs et celui-ci entendra le don des 4 micros à la fois. Il est à noter qu'il est ainsi possible de diffuser le son de n'importe quelle application Alsa vers jack.
Une version avec le support natif de Jack
L'équipe de SFLPhone a sorti début juillet la version 1.4 qui ajouter, entre autres, le support natif de Jack. Mais bien entendu ce n'est pas installable sur Debian Wheezy qui sert de support à Tango Studio. Mais on me souffle dans l'oreillette que Jof, génial créateur de Tango Studio pourrait compiler la version 1.4 et la rendre disponible dans son dépôt...