Liquidsoap, qui vient de sortir en version 0.3.0, est un langage de script permettant de concevoir simplement des systèmes complexes de flux audio. Ce système étend considérablement les possibilités typiquement offertes. Grâce à lui, construisez la radio de vos rêves. Liquidsoap offre une collection rare de possibilités: mixage de flux, accès transparent aux fichiers distants, playlists dynamiques, émissions live, bot IRC, détection de blanc, multiples sorties, encodage distribué...
Liquidsoap a été développé conjointement à la webradio des élèves de l'École Centrale, RadioPi. Il permet la diffusion continue de playlists dynamiques et de directs, répartis sur huit canaux thématiques, le tout assuré par une solution simple et entièrement libre.
Avec Liquidsoap, une webradio dédiée à la musique libre a aussi vu le jour : Dolebraï. Son but est de faire connaître ce mode de diffusion alternatif et ses artistes, en présentant au public une sélection de morceaux de qualité. Le site web permet d'accéder rapidement aux playlists et aux informations sur les pistes diffusées. Afin d'assurer la qualité de la sélection, les playlists sont faites par les membres du projet. Nous cherchons des partenariats afin d'enrichir sa programmation ! Les morceaux de la playlist de Dolebraï sont distribués par leurs auteurs sous licences type Creative Commons ou Art Libre. L'unique contrainte est que les morceaux soient librement redistribuables. La playlist comporte de nombreuses pistes issues de petits netlabels, mais aussi de structures plus importantes comme Jamendo par exemple. Dolebraï restera autant que possible une radio sans publicité, autant sur le site web que dans le flux audio. Pour l'instant aucun apport financier n'existe. A terme le projet pourrait payer la location du serveur par des dons d'auditeurs ou des partenariats avec les distributeurs. Une autre forme de partenariat viserait à améliorer la bande passante, par la mise en place de relais Icecast ou Peercast.
RadioPi est une grosse webradio enregistrée à la SACEM. Elle émet sept canaux thématiques en Ogg/Vorbis, ainsi qu'un canal "web" sautant d'un thème à l'autre au fil de la journée, émis en Ogg/Vorbis et MP3. Des émissions en direct ont lieu régulièrement, relayées sur tous les canaux.
Liquidsoap est le générateur de flux du projet Savonet, qui regroupe plusieurs librairies et outils programmés en OCaml, autour du traitement audio. Le but initial du projet était de créer des outils pour la radio du campus de l'ENS Lyon, sans pour autant se restreindre à un type de configuration en particulier. Construit sur des concepts simples, liquidsoap s'est tout naturellement transformé en un petit langage de script où le flux audio est un type de base. Liquidsoap était stable en version 0.2.0 -- Avril 2005. La version 0.3.0 apporte de nombreuses nouveautés issues de la collaboration avec RadioPi, mais est surtout plus simple d'utilisation, notamment avec l'arrivée de la documentation sur notre wiki.
Ces deux premières radios publiques utilisant liquidsoap montrent bien comment cet outil permet de gérer simplement les systèmes simples, en s'étendant naturellement à des systèmes plus complexes. On trouvera sur le wiki du projet Savonet les configurations associées à ces deux utilisations:
1. Dolebraï fait dans la simplicité. Le flux est généré à partir d'une simple playlist, statique mais rechargée périodiquement, à laquelle s'ajoutent les jingles. Le site web est s'appuie sur Django, et utilise la base de données contenant les informations associées aux morceaux. L'unique interaction entre liquidsoap et le site web se fait via un fichier XML mis à jour à chaque nouvelle piste.
2. À RadioPi, liquidsoap permet de gérer tous les flux en une seule instance, change de style sur le canal web selon une programmation horaire, saute automatiquement sur les directs. Encore plus fort, la détection de blanc permet de couper les bonus-tracks ou les directs silencieux. Et depuis peu, nous avons mis en place l'encodage distribué: des flux bruts étant transmis en RTP à une instance secondaire de liquidsoap chargée de les encoder. Deux simples PC à 2GHz pourraient ainsi encoder quatorze canaux, malheureusement il n'y en a actuellement que neuf à diffuser. Les playlists thématiques sont gérées par un outil PHP/MySQL développé localement. Liquidsoap interagit avec ce système par le biais de deux scripts PHP: l'un fournit les prochaines pistes à diffuser, l'autre prend note des pistes effectivement diffusées.
Aller plus loin
- Liquidsoap (193 clics)
- Dolebraï sur peercast (40 clics)
- Dolebraï (192 clics)
- Radio Pi (250 clics)
- Script liquidsoap de Dolebraï (65 clics)
- Script liquidsoap de RadioPi (48 clics)
# pas de sorties vers Jack ?
Posté par ZeroHeure . Évalué à 4.
Je travaille à sonoriser le jardin du nombril du monde (swww.nombril.com pour les curieux). Un système de gestion/diffusion de radio est proche de nos besoins: base de données de sons, gestion de playlistes, diffusion simultanées de plusieurs playlistes sur plusieurs sorties, enregistrements live, gestion par plusieurs postes, ... Bref, je me suis penché sur Rivendell (http://www.salemradiolabs.com/rivendell/) qui est assez complet, mais évidemment tellement dédié radio, que certaines choses sont un peu lourdes pour nous.
Liquisoap a l'air prometteur. Et pas trop compliqué. En parcourant la doc je vois que je peux faire des sorties vers Alsa. Pas de Jack en vue ? Et pas de connexion à des bases de données ?
"La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay
[^] # Re: pas de sorties vers Jack ?
Posté par dbaelde (site web personnel) . Évalué à 6.
Pour les bases de données. Il y a quelques temps j'avais implémenté dans liquidsoap le protocole DJ (protocole au même titre que HTTP, FTP, ..) utilisant une connection à une table mysql au format particulier. Ocaml-mysql était demi-bugué, et c'était trop spécifique de toute façon, j'ai donc abandonné. Ce que je conseillerait maintenant est de faire un petit script dans le langage de ton choix pour parler à ta bdd, et interfacer liquidsoap avec ce script. Ils font ça chez radiopi. Si tu veux des détails vois le cookbook sur notre wiki ou maile nous à <savonet-users@lists.sf.net>.
Pour le reste, je suis déja tombé sur Rivendell, qui a l'air très complet. Je n'ai jamais étudié sa conception, ni même essayé. J'ai l'impression que liquidsoap est plus simple, probablement plus facile à étendre, mais étant le développeur j'ai clairement une vision biaisée. En tout cas je suis dispo pour toute question.
[^] # Re: pas de sorties vers Jack ?
Posté par dbaelde (site web personnel) . Évalué à 2.
Bref, pourquoi penses-tu à jack exactement ?
[^] # Re: pas de sorties vers Jack ?
Posté par ZeroHeure . Évalué à 1.
"La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay
[^] # Re: pas de sorties vers Jack ?
Posté par ZeroHeure . Évalué à 0.
Rivendell n'est pasun langage de script ! C'est un ensemble logiciel complet (en C++ avec Qt).
"La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay
[^] # Re: pas de sorties vers Jack ?
Posté par ZeroHeure . Évalué à 1.
les deux projets ont l'air assez proches
http://chuck.cs.princeton.edu/
"La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay
[^] # Re: pas de sorties vers Jack ?
Posté par dbaelde (site web personnel) . Évalué à 1.
En tout cas il me semble que c'est pas le même but que liquidsoap. Ca travaille surtout à bas niveau, complètement orienté vers la composition simple de flux, avec applications au live coding & co. Liquidsoap permet de travailler sur le flux même, mais a aussi une notion, plus "haut-niveau", de piste dans un flux, et permet de travailler sur des meta-données insérées dans le flux. Enfin, un flux peut se tarir puis redevenir disponible. Bref, tous ces trucs qui nous permettent d'agencer différentes sources de musique dans un script liq, passer de l'une à l'autre en fin de piste, réécrire les meta-données, etc.
# anniversaire
Posté par Francois Revol (site web personnel) . Évalué à 4.
[^] # Re: anniversaire
Posté par Gelnior . Évalué à 1.
# Paquets debian pour tester ?
Posté par Romain Be. . Évalué à 3.
Si il y en a parmis vous qui ont envie de tester, on a package la derniere version :
http://www.dolebrai.net/~toots/
Le paquet est encore a tester, mais il devrait etre largement suffisant pour faire des essais ou plus sans se prendre la tete a tout installer/compiler... :)
Romain
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.