Cela permet aussi d'assurer une diffusion depuis n'importe quel endroit. Un raccord entre les consoles et le réseau... c'est parti.

Un autre angle d'attaque pour expliquer la recherche de réduction des couts, consiste à aborder le douloureux problème de la foudre. Le point d'émission est généralement situé a un endroit haut. Il est donc exposé a la foudre. Les dégâts matériel et donc financier amène malheureusement à des choix de matériel facilement remplaçables et peu onéreux.

Le matériel utilisé est très bon marché (les tests actuels et la diffusion hertzienne du moment sont basés sur des machines que l'on peu qualifiées de «récup'». Reste à concrétiser par la réalisation de modules industriels (serveur en rack standard, résistant aux balles de préférence).

Enfin, ne soyons pas que venaux, l'utilisation exclusive de logiciels libres renforce nos idées libres, associatives et alternatives.

Et puis tant qu'on y est dans les utopies vehiculées par les gens «qui refusent de regarder le Monde en face». Nous avons pour objectif de transporter, dans le même lien, les deux radios associatives qui se partagent notre point d'émission...

ADSL


Ha comme ce sujet nous à posé tout plein de problèmes ! Nous vous conseillons de suivre à la lettre tous nos conseils. Parfois sur certains points nous auront l'air d'être de vieux cons radoteurs. On ne vous souhaite pas d'en baver autant que nous...

Besoin de base


Il faut deux lignes ADSL, une pour les studios et une autre pour le point d'émission. Ces accès peuvent être remplacés par des accès internet utilisant d'autres technologies. Ici nous parlerons de ce qu'on connaît : les abonnements ADSL commercialisés en France. Le coût de tels abonnements est bien plus bas que celui des liaisons louées dédiées chez un opérateur.

L'Encodage sélectionné implique que le flux peut atteindre le débit de 700Kbps. On doit donc passer ce débit sur les deux extrémités du lien. Or la lettre "A" du sigle ADSL, signifie "Assymetric". Les débits sont asymétriques. Pour une ligne ADSL de première génération, la voie montante (client vers le central téléphonique) à un debit théorique d'environ 900Kbps. La voie descendante (central vers client) à un débit d'environ 8Mbps.

Les offres commerciales ADSL ressemblent à ceci :

Offre description Utilisation COÏT
1024/128 1024 Kbps descendant et 128 Kbps montant Point d'émission
2048/256 2048 Kbps descendant et 256 Kbps montant Point d'émission
Auto adaptatif 8Mbps maximum descendant et 900Kbps maximum montant selon le profil de la ligne Studio

Pour passer les 700 Kbps maxi du lien, on choisi donc une ligne "Auto adaptative" coté studio car c'est la seule qui a une voie montante suffisante. Le profil de la ligne est important. Il convient donc de se renseigner auprès de son opérateur pour connaître le débit montant attendu sur la ligne.

ADSL en milieu perturbé


Faire fonctionner un modem ADSL à proximite d'un émetteur FM n'est pas chose facile. On devra respecter scrupuleusement les normes de compatibilité électromagnétique Pour rendre la ligne ADSL le plus fiable possible, nous vous conseillons vivement de ne prendre que le débit nécessaire, soit une ligne 2048/256 par exemple. En effet, avec un débit moindre, on réduit le spectre nécessaire pour le passage des signaux et la densité de données transportées sur les porteuses de la liaison haut débit. La célèbre marge au bruit ADSL s'en trouve grandie. Ici aussi, le profil de la ligne téléphonique support de la ligne ADSL est déterminant. La marge au bruit mesurée souhaitable devrait être au delà de 11 Db.


Mesures ADSL pour une ligne 2048/256 longue de 2600 mètres en calibre 04 sur un point d'émission FM.
La marge au bruit de14Db dans le sens descendant est parfaite.
Sur cette même ligne, avec une offre auto-adaptative "8méga", la marge au bruit était de 1Db seulement.

Tous les Routeur ADSL, n'ont pas le même comportement, le choix se fait malheureusement un peu au hasard. Les offres auto-adaptatives sont à fuir. Elles ne fonctionnent pas en mileu perturbé. On attends avec impatience l'accès haut débit de demain, a savoir la fibre optique.

Deconnexions


Certains fournisseurs d'accès Internet, ont le mauvais goût de deconnecter leurs utilisateurs à intervalle régulier. Avec deux lignes ADSL, il faut prévoir de une à deux coupures de liaisons par jour. Il y a rarement d'autres deconnexions pour maintenance, comme par exemple délestage de BAS ou DSLAM. La fiabilité de la connexion est un facteur important dans le choix du fournisseur.

Ces deconnexions peuvent survenir vers 4h00 du matin, elles sont peu gênantes pour l'auditeur. Lorsqu'elles surviennent aux heures de grande écoute, tous les jours, c'est una autre affaire. Certains dispositifs logiciels et matériels sont mis en oeuvre dans le projet COÏT.
Routeur
  • not tagging
  • no tags
Un bon routeur est un routeur mort... foudroyé généralement.

Modem ou Modem-Routeur ?

Le débat n'est pas clos dans l'équipe de développement de ce projet :
Modem piloté finement par le PC ou routeur indépendant donc autonome et robuste.

Dans le cas d'un modem, pour des raisons évidentes de fiabilité, on choisira un modem Ethernet. La machine Linux d'extrémité gère toute seule sa connexion Internet. On peut même forcer l'heure de déconnexion journalière la nuit, pour éviter une coupure des programes aux heures de grande écoute. Un modem impliquera l'utilisation d'un firewall logiciel.

Le routeur est autonome. il est plus compliqué d'y forcer les déconnexions dans une plage définie. L'utilité d'un pare-feu n'est pas évident car tant que la table NAT/PAT n'a pas été implémentée, il est impossible d'entrer sur une machine par internet. Dans le projet seul un port d'administration distante (SSH) est nécessaire pour les deux routeurs. Celui du point d'émission devra également ouvrir un autre port pour desservir le serveur Icecast.

Dans notre projet, nous avons à ce jour préféré l'option du routeur.

Filtre


Filtre maître ADSL vendu sous plusieurs marques en magasin de bricolage.

Un filtre maître pro est conseillé si des téléphones doivent être branchés sur la ligne support. A noter que s'il n'y a pas de téléphone branché sur une ligne ADSL aucun filtre n'est nécessaire. Le filtre est un filtre passe bas pour la téléphonie uniquement. Pour lutter un peu plus contre les idées reçues, en milieu perturbé en cas de pépins, nous vous conseillons de conserver la balise RC si l'opérateur Télécom l'a posée. Ce composant semble équilibrer l'impédance de la ligne et semble la rendre plus robuste qu'une ligne "ouverte" face aux parasites.

Résilience


Des mots anglo-saxons font parfois irruption dans notre vie. La résilience, capacité à retrouver un fonctionnement normal après un stress, résume bien la problématique du choix du routeur ADSL.

Nous l'avons vue dans la partie ADSL, le routeur du point d'émission va devoir travailler dans un milieu très perturbé électromagnétiquement par l'émission FM. Lors de la synchronisation d'un modem ADSL, DSLAM et modem cherchent et qualifient un nombre de porteuses ADSL suffisant pour assurer le débit de la ligne. le spectre ADSL va de 20KHz à 1.1MHz pour l'ADSL de première génération. La voie montante se trouve dans le bas du spectre et la voie montante dans le haut. Le fournisseur fixe une marge au bruit qui doit être atteinte par au moins une des extrémité pour que la synchro puisse être considérée comme valide et établie.

Pour une offre auto-adaptative, la phase de synchronisation consiste à sélectionner le maximum de fréquences disponibles pour obtenir le débit maximum permis par la ligne physique en respectant également une marge au bruit. Pour pouvoir rendre éligibles plus de lignes ADSL, les fournisseurs baissent énormément la marge au bruit cible au détriment de la fiabilité des liaisons. Le plus commercial à nos yeux, serait plutôt un accès en libre service à ce paramètre par le client. En fixant lui même sa marge au bruit, il gérerait lui même la fiabilité de sa liaison.

En milieu perturbé, les porteuses sont perturbées de manière aléatoire. On comprend facilement que lorsqu'on s'est synchronisé en utilisant le maximum des porteuses disponibles, en cas de pépin, le modem ne peut se rabattre sur des porteuses libres et non perturbées. On comprend également, qu'une offre auto-adaptative utilise beaucoup de porteuses. Son spectre de fonctionnement est large. Plus le spectre est large et plus on s'espose aux perturbations !. Avec une synchronisation établie sur le critère de marge au bruit de 4Db, les offres auto-adaptatives sont inadaptées.

Lorsque surviennent les chutes brutales de débit, modem et DSLAM, sur 2 à 3 secondes, refont un examen rapide des porteuse ok pour reprendre la transmission sans perte de synchronisation. Ces perte subites de débit s'entendent à l'antenne.

Le choix du modem est donc compliqué, on cherche un matériel dont le logiciel est capable de réussir une synchronisation sur les meilleures porteuses et de conserver la synchronisation malgré des perturbations. C'est un peu cela la résilience. A ce titre le modem ADSL du point d'émission sera toujours démarré après l'amplificateur du puissance FM de manière à ce qu'il prenne en compte les perturbations HF lors de sa phase de synchronisation. Sans cette manoeuvre, les 24 premières heures de transmission seront "chaudes" !

Nous utilisons actuellement des routeur Netgear DG-834 qui remplissent moyennement leur mission en milieu perturbé à la condition d'utiliser une ligne bridée au débits de 2048/256. Malgré cela, nous recherchons toujours d'autres matériels peut être meilleurs.
Redaction,

Installation Debian Etch

En utilisant la version "netinst". Nous considérons donc que la machine à affaire avec un accès réseau internet disponible.

Il faut tout d'abord récupérer l'image .iso d'un système Gnu/Linux minimal sur internet, puis graver sur un cédérom cette distribution. C'est cette image disque qui, une fois lancée en placant le cédérom obtenu dans le lecteur de notre rack, installera le système par copie sur le disque dur. Ce système ira chercher sur le réseau les paquets de logiciels supplémentaires dont nous aurons besoin, en fonction de la configuration mise en place. Isn't that hot, hu ?

Démarrage de la machine

Attention à l'interrupteur à l'arrière du boitier, au niveau de l'alimentation. Celui ci doit être positionné à 1.
Au début de la séquence de démarrage, il faut accéder au BIOS, un petit système embarqué par la carte-mère. Pour ce faire, utilisez la touche Del. Tapez deux fois de suite sur cette touche. (FIX ME: préciser l'affichage obtenu avec F2 et F12).
Le menu qui s'affiche alors à l'écran est celui du BIOS. Dans notre cas, puisque c'est la première fois que nous démarrons la machine, nous arrivons directement sur cet écran.
Remarque: Dans ce type d'interface, les déplacements se font avec l'aide des flèches gauche/droite haut/bas, les selections à l'aide des touches tabulations, espace. La touche /Entrée confirme généralement votre choix.

Donc, dans le menu du BIOS:
  • Paramétrage de l'heure et de la date
  • désactivation du lecteur de disquette (inexistant dans notre configuration)
  • réglage du "boot device priority", l'ordre de recherche d'un système amorçable: ici, cédérom, puis disque dur.

On sort du paramétrage (avec le menu ou les touches Exit, Échap, Esc...), puis l'on confirme les changements.
La machine redémarre.

Voici alors venir l'écran d'accueil du Gnu/Linux, saveur Debian.
Press F1 for help, or ENTER to boot
/Entrée
Choose language
French
Choisissez un pays
France
Carte de clavier à utiliser
Français (Fr-latin9)
Détection du matériel...
Examen du CD...
Chargement des composant supplémentaires...
Détection du matériel réseau...

Configurer le reseau: choisir celle avec Ethernet Controller, eth1 dans notre cas.
DHCP....ok (vérifier la connexion physique du cable réseau) ;-)

Veuillez indiquer le Nom de ce systeme
studio ou chatodo selon la destination de la machine.
domaine: laissez vide
Détection du disque et des périphériques...

Partitionnement:

Choisissons un Partionnement manuel.

Le principe appliqué ici est le suivant:
Le système de base est placé sur une partition dédiée standard, puis tout le reste dans un emballage spécial, sur un espace disque dit "LVM". On peut ainsi augmenter la taille de nos partitions à posteriori de l'installation, à chaud et très très très très très simplement.

Donc, on place le dossier système / sur une partition ext3. Il est préférable en effet de sortir / du LVM, donc ce qui contient /boot (le noyau),
/bin(les logiciels), tout ça, bref, les essentiels au fonctionnement de notre boîboîte, car cela permet de toujours démarrer sur un système hors LVM et d'avoir accès à la base. Même si les portes sont cassées, nous aurons quoiqu'il arrive accès au moteur...et surtout, facilement. Ce qui n'est pas lors d'une installation assistée standard.
A priori ça sert peu, mais lorsque ça sert, on est tout de même bien content d'avoir cette fonctionnalité.

Le LVM quant à lui, ne sera pas de type ext3 mais de type xfs. D'abord, sa sonne plus "Coit" ! :-) Ensuite, l'utilisation de xfs a par ailleurs au moins 3 intérêts: il est beucoup plus rapide que ext3, permet le redimensionnement à chaud, et est moins "standard" pour les pirates et leurs outils standards. Sans parler des pirates standards ! Bouuu, les vilains.

Revenons à notre menu de configuration:

Création d'un partition primaire dédiée à /.

choix du disque SCSI3 (0,0,0) (sda) - 80 Gb dans notre cas
sélectionner pri/log ... Espace libre /Entrée

Effacer toutes les anciennes partitions, si le disque a déja été partitionné.

Créer une nouvelle table de partition sur ce disque /Entrée
Nouvelle taille de la partition: 5Gb
type de la partition: primaire
Emplacement: début

utiliser comme: système de fichier journalisé ext3
point de montage: /
Option de montage defaults, aucune étiquette, 5% de bloc réservés, utilisation habituelle standard, indicateur d'amorcage absent.
Fin du paramétrage de cette partition /Entrée

Création d'une partition étendue déclarée comme volume physique pour LVM

Selectionner à nouveau pri/log Espace Libre
Créer une nouvelle partition de la taille de la place restante
Type de la partition: logique cette fois ci /Entrée
Emplacement: début
Utiliser comme: /Entrée
choisir volume physique pour LVM
fin du paramétrage de cette partition

Mise en place du LVM

Selectionner Configurer le gestionnaire de volume logiques

Puis créer un 'groupe de volumes'
ici, on va faire la création de vg_studio (ou vg_chatodo) avec /dev/sda5 (notre partition étendue) comme volume physique

Reste à garnir ce groupe de volume avec des volumes logiques, autrement dit:
création de volumes logiques dans ce groupe de volume :
sélectionner créer un volume logique /Entrée
Choisir le groupe à utilisé (ici, nous n'avons que vg_chatodo)
puis créer successivement:
lv_usr : 5G (xfs)
lv_var : 2G (xfs)
lv_tmp : 1G (xfs)
lv_home : 30G (xfs)
lv_swap: 1G (swap)

Partionnement des disques:

Sélectionner un par un les volumes logique /Entrée
Selectionner Utiliser comme /Entrée
choisir système de fichiers journalisés XFS
Point de montage: selon le volume en cour de paramétrage
ici, lv_home monté sur /home. Fin du paramétrage de cette partition.
On recommence avec:
lv_usr monté sur /usr
lv_var monté sur /var
lv_tmp monté sur /tmp
lv_swap "monté en swap" (Attention : partition système à choisir dans la rubrique précedente "Utiliser comme").

Un fois toutes les partitions en correspondance avec un point de montage
selectionner terminer le partionnement et appliquer les changements /Entrée
Faut-il appliquer les changements sur les disques: oui /Entrée
Formatage des partitions ..

Remarque: si vous voulez agrandir vos volumes logiques, la commande LvExtend devrait être utile. man lvextend et man lvm aussi, d'ailleur, tas de fainéants !

Dernière ligne droite

mot de passe root / confirmation de la saisie
nom d'utilisateur: ici canalb
mot de passe de ce nouvel utilisateur
azerty. Évitons les mots de passe qui tue ! Et prions que durant la Net Installation personne ne casse notre mot passe bidon ! Celui-ci est pour l'installation. Pour la production, nous changerons tout cela au profit d'un mot de passe plus consistant, un vrai, avec des poils...


Faut-il utiliser un miroir sur le reseau: oui
selectionner un serveur francophone (mir1.ovh.net dans notre cas et sans autre intention)
pas de serveur mandataire, laissez le champ vide et valider
Examen du miroir...

Souhaitez-vous participez à l'étude statistique sur l'utilisation des paquets: malheureusement non, puisque notre distribution restera figée par la suite.

Déselectionner ensuite les logiciels à installer [] - Environnement graphique de bureau pour ne laisser que la case à cocher [] - Système standard
Aller boire un coup le temps de l'installation des logiciels...

<interlude> ... tea for two, and two for tea, just me for you, and you for me...</interlude>

Installer GRUB sur le secteur ? oui /Entrée
Fin de l'installation, le lecteur de cédérom s'ouvre.
Redémarrage auto de la machine (enlever le cédérom !!!, sinon, vous n'êtes pas couché, le système redemmarera depuis le cédérom, et pas depuis sa copie sur le disque dur planqué dans le rack).

La machine vous propose ensuite de saisir un identifiant, ou login
canalb
Mot de passe
azerty

Voilà, vous êtes chez vous. Ici, nous ne nous connectons pas directement avec l'identité "super admin". Question de bonne habitude à prendre ! Une erreur de manip' avec les "super droits" est si vite arrivée... Et oui, quand on un un super collant, une super capelette et une super cagoule, on a aussi le droit de ne super pas faire n'importe super quoi...

On installe alors un éditeur de texte de compét'. Pour ce faire, il faut être "super utilisateur" (on dit aussi root):
Maintenant, on peu se connecter avec l'identité "root". Ca peut paraître saugrenu, mais il s'agit d'une bonne pratique, coco, soit à ce que l'on te dit ! On utilise le compte "root" en ayant réfléchis 'avant'.
su
mot de passe
azerty
Voilà, vous êtes super, yeah, root ! Mais vous le saviez déjà ! Notez au passage l'apparition du # au bout de votre invite de console. Le système vous rappelle que vous avec mis votre super collant moulant. Attention donc.

On peut alors lancer l'installation de logiciels en général, et plus particulièrement de l'éditeur:
apt-get install vim
Puisque nous y sommes, installons aussi les logiciels openssh-server et manpages-fr
Ils serviront utlérieurement, le premier pour l'administration distante de la machine par un accès dit ssh, le second pour pouvoir lire les pages de manuel en français.
apt-get install openssh-server manpages-fr

Bien. Nous allons donc à présent modifier le fichier de configuration /etc/apt/sources.list. Ce fichier référence les endroits où la machine peut aller récupérer des logiciels. Les deux premières lignes sont celles pointant vers le cédérom. Celui que vous avez utilisé pour le début de installation. Puisque nous n'en avons plus besoin, il faut "commenter" la ligne en s'assurant qu'elle débute par un #.

On ouvre le dit fichier avec l'éditeur vim:
vim /etc/apt/sources.list
Il faut à présent basculer l'éditeur en mode "insertion". Utilisez la touche i pour cela. En bas de la fenêtre, un -- insertion -- apparaît. C'est tout bon.

On "commente" alors le cédérom en ajoutant un # au début de la ligne.

Puis nous ajoutons contrib à la fin de chacunes des lignes deb blabla.bla... et deb-src blabla.bla... des serveur autres que ceux ayant dans l'url security.debian.org et l'on s'assure que ces lignes ne sont pas commentées. Voilà. Le système sait à présent où trouver les logiciels mis librement à disposition par la communauté Gnu/Linux and friends.

Pour sortir de vim en enregistrant les changements, utiliser successivement les trois touches Échap, : puis x. Vous pouvez aussi enregistrer sans quitter vim, avec Échap, : puis w. Et si vous avez vraiment la "wax", prenez le temps de lancer les commandes man vim et man man, yeah man !

FIXME: copie du fichier obtenu ici.

Reste à mettre à jour tout le système:

apt-get update
puis
apt-get dist-upgrade
Un dernier écran de config' pour la route: Configuration du kernel... tabulation /Entrée

Enfin, on quitte nos supers pouvoir "root" et notre super capuche pour retourner à notre bac à sable, sous l'identité du simple utilisateur aux droits restreints sur le système, ici l'utilisateur "canalb".
exit
Remarquez la disparition du # en fin l'invite, au profit d'un simple $. Encore une fois, vous ne pouvez plus faire de casse sur le système...

Fin de l'histoire, Etch is in da place...Vous êtes libre !



Installation des packages

Apres avoir installé les machines Linux, il faut y installer les packages permettant l'administration à distance, le transport et les traitements du signal sonore, le fonctionnement de la carte son, la sécurité des modules, ...

Rappels linux :

Ici le kit de base pour la manipulation des packages sous Debian.

Mettre a jour la liste des packages disponibles :
apt-get update

Savoir si un package est installé :
dpkg --list|grep nom_package

Chercher un package :
apt-cache search partie_du_nom_package

Détails d'un package :
apt-cache show nom_package

Installer un package :
aptitude install nom_package

Installer un package manuellement :
Télécharger le package dans un répertoire, puis a partir de ce répertoire :
dpkg - i Nom_fichier_package.deb

Packages à installer sur la machine coté Sudio :

Streaming :
  • Ices2

Administration, sécurité, fonctionnement :
  • Openssh-server : Admin a distance.
  • LYNX : explorateur web en ligne de commande pour les scripts.

Audio :
  • alsa : le son of course, alsa-utils, alsaplayer-alsa
  • mplayer : Lecteur multimedia, utile pour les réglages de la carte son ou les essais de plugins.
  • ladspa-sdk : permet de lister les plugins. Utile pour la maintenance.
  • ecasound : software package designed for multitrack audio processing - Attention - Version optionnelle Ecasound >= 2.4.6 corrigée pour nous (http://www.eca.cx/relnotes/ecasound_v2_4_6_relnotes.txt)
  • tap-plugins : Tom's Audio Processing LADSPA plugins
  • swh-plugins : Steve Harris's LADSPA plugins - Attention - Version obligatoire >= 0.4.15 (http://plugin.org.uk/download.php)
  • cmt : Computer Music Toolkit (cmt) a collection of LADSPA plugins

Packages à installer sur la machine coté émetteur:

Streaming :
  • Icecast2 : serveur de streaming recoit le flux des studios et le diffuse vers le player local
  • MPlayer : Joue le flux vers la carte son.

Administration, sécurité, fonctionnement :
  • Openssh-server : Admin a distance.
  • LYNX : explorateur web en ligne de commande pour les scripts.

Audio :
  • alsa : le son of course, alsa-utils, alsaplayer-alsa
  • ladspa-sdk : permet de lister les plugins. Utile pour la maintenance.
  • tap-plugins : Tom's Audio Processing LADSPA plugins pour le traitement de son.
  • swh-plugins : Steve Harris's LADSPA plugins - Attention version obligatoire >= 0.4.15
  • caps : Computer Music Toolkit (cmt) a collection of LADSPA plugins

Les ennuis potentiels :

Cette partie de la documentation est a revoir.

swh-plugins
aptitude install fftw
dpkg -i tzdata_2007h-1_all.deb
dpkg -i libc6_2.6.1-5_i386.deb
dpkg -i swh-plugins_0.4.15-0.1_i386.deb
tzdata_2007h-1_all.deb
libc6_2.6.1-5_i386.deb
swh-plugins_0.4.15-0.1_i386.deb

Optimisation machine

Beaucoup de choses s'écrivent et se disent à propos de l'optimisation d'une machine pour l'audio. Voici ici les points importants à balayer avant de mettre en exploitation les modules COÏT :

Désactivation des périphériques inutiles de la carte mère :

  • FireWire 1394
  • Carte Son interne
  • Ports Série et/ou Parallèle
  • Contrôleurs IDE et/ou SATA.
  • Lecteurs de carte à puce.

Désactivation des fonctions de réveil par un quelconque orifice :

  • Clavier.
  • Carte réseau.
  • Ports USB.
La machine va fonctionner en permanence, elle ne sera donc jamais en veille.

Comportement de la ventilation.

  • Ventilation automatique en fonction des besoin.
Si le module se trouve au fond d'un site inaccessible, il est peut-être heureux d'allonger la durée de vie des ventilateurs.

Comportement en cas de panne secteur.

  • Au retour de l'alimentation secteur, démarrage automatique du module.
Très important pour assurer la continuité de service.

Démarrage sans les périphériques de base

  • La machine devra démarrer sans clavier, souris, écran.
Ces périphériques peuvent capter des parasites HF lorsqu'ils se trouvent a proximité d l'émetteur FM.

Comportement du bouton Arrêt.

  • Paramétrage du bouton pour faire un shutdown propre du système Linux sur pression du bouton avant.

Toutes ces fonctions sont généralement accessibles par les Menu du BIOS de la carte mère. Dans les critères d'achats, il faut commencer par consulter la notice en ligne de la carte mère choisie et vérifiez que ces réglages sont accessibles.

Encodage

Une étude détaillée nous permet de choisir le codec audio OGG en qualité 8. Lors des premiers essais est apparu un bruit de numérisation important lorsqu'on &chantillonnais le signal a 44100Hz et 48000Hz. L'aigu donnait une très mauvaise impression même à travers un (vieil) émetteur FM de test. Contrairement aux idées reçues, le numérique n'est pas la panacée. Nous avons donc décidé de numériser le signal à 96000Hz. L'aigu est devenu beaucoup plus clair et surtout moins métallique.

Cette contrainte à un impact sur les débits observés dans le lien. De 256 à 320 Kbps attendus, on est passé à un débit observé de 320 Kbps à 750 Kbps. En injectant du bruit rose dans le lien, en obtenait un débit moyen proche de 450Kbps. Nous avons en fait également découvert que la bande passante de la carte son devenait, selon le théorème de Shannon 30Hz-48000Hz. En sortie studio, nous essuyons de nombreuses raies (harmoniques) encodées et transmises de 20000Hz à 48000Hz, la moitie de la frequence d'échantillonnage. L'autre conséquence est la relative complexité de l'encodage. Une machine relativement musclée est nécessaire.

spectre.png

Exemple extrême de ce qu'on a pu trouver dans le lien, un jour où nous devions parer à un défaut de pré accentuation sur l'émetteur FM.

Ce sont ces harmonique qui font crever le plafond des débits dans le lien. Le codec Ogg Vorbis ne permet pas la mise en route d'un filtre passe bas. Ce défaut sera plutôt résolu par la pose d'un filtre audio passe bas en amont de la carte son. Techniquement, en FM, aucune fréquence au delà de 16KHz n'est transmise. Il est donc inutile de les transmettre dans le lien.

En conclusion donc pour la partie audio : Échantillonnage audio à 96KHz pour de beaux aigus et codec Ogg Vorbis en qualité 8 pour un son clair et une stéréo profonde. Se méfier des harmoniques entrant dans le lien.

Voici un exemple de configuration du fichier Darkice pour sa section audio :

  • # this section describes the audio input that will be streamed
  • input
  • device = /dev/dsp # OSS DSP soundcard device for the audio input
  • #device = hw:0,0 # Alsa soundcard M-AUdio
  • sampleRate = 96000 # sample rate in Hz. try 11025, 22050 or 44100
  • bitsPerSample = 16 # bits per sample. try 16
  • channel = 2 # channels. 1 = mono, 2 = stereo
  • # this section describes a streaming connection to an IceCast2 server
  • # there may be up to 8 of these sections, named icecast2-0 ... icecast2-7
  • # these can be mixed with icecast-x and[shoutcast-x sections
  • icecast2-0
  • bitrateMode = vbr # average bit rate
  • format = vorbis # format of the stream: ogg vorbis
  • #bitrate = 256 # bitrate of the stream sent to the server Always prefer quality setting
  • quality = 0.8
  • server = yourstream.org # stream url
  • port = 8000 # port of the IceCast2 server, usually 8000
  • password = yourpassword # source password to the IceCast2 server
  • mountPoint = yourmountpoint

A l'usage, le lien ainsi configuré, a un son très pur. Pour obtenir les meilleurs résultats nous conseillons de moduler entre -3 dB et 0 dB numérique.

Décodage

Coté émetteur FM, le décodage du signal qui a été relayé par le serveur Icecast, est simplement lu par un player multimédia. Nous utilisons Mplayer en ligne de commande. Ici le décodage du flux choisi est réalisé sur une machine moins puissante. A Canal B, la machine Zéro de prototype est un vieux Pentium II 400Mhz, c'est un peu limite quand même ! On conserve en sortie de Codec la fréquence d'échantillonnage. La carte son et les drivers ALSA devront supporter cette fréquence.

Coté studio

Il n'y a pas de réglage de gain en entrée. On cherchera en fonction du matériel à attaquer la carte son en entrée avec le niveau correct. On pourra utiliser le bouclage de la carte son entrée sur sortie pour brancher un oscilloscope sur les sortie et visualiser d'éventuelles distorsions.

L'évaluation du niveau dans le lien, se fait en se connectant à distance au serveur Icecast et en lisant le flux dans un PC de mesure. Avec une carte son sérieuse, et un logiciel de type Sound Forge, on vérifie que le niveau dans le lien est situe entre 0 et -3 dB numériques. Attention, si vous respectez nos préconisations ADSL, la voie montante coté point d'émission ne vous permet de remonter qu'un flux haché. Néanmoins, ce flux partiel permet de réaliser les mesures importantes.

calibrage.png

Carte son réglée a 96 kHz, on lit ici le flux avec le player foobar 2000. On visualise et enregistre les signaux avec Sound Forge.

On vérifie également, grâce à Sound Forge, l'absence de plateaux dans les basses fréquences. Ces plateaux indiquent la saturation des préamplis d'entrée de carte son. La saturation peut parfois être plus en amont si votre radio est trop Rock'n Roll !

plateau.png On remarque que le signal trop fort est écrêté.

Coté Émetteur

Le mixer Alsa, permet de régler assez finement, et en prise de main à distance, le niveau de sortie du lien. Ainsi la contrainte de modulation FM et les 75 kHz d'excursion peuvent être retouchés hors site d'émission.

alsamixer.png Fenêtre Alsamixer en ligne de commande.

Suivant la carte son choisie, et le composant audio qui l'anime, et l'implémentation des drivers ALSA. On peut croiser les voies gauche/droite. La désaccentuation ou "Déemphasis" permet de régler l'atténuation des aigus en sortie de carte. Très utile pour attaquer L'émetteur FM.

Traitement du son

Il est possible, à la condition d'avoir des machines suffisamment puissantes, d'ajouter un traitement du son au lien audio décrit dans ce site. Un traitement de son en radio, consiste à donner une couleur sonore à la diffusion. Bien souvent malheureusement, le traitement audio des radios commerciales consiste à rendre le son "gros", "puissant", "automobile" et surtout "commercial". Les statistiques d'écoute de la radio semblent montrer qu'on écoute la radio en moyenne une quarantaine de minutes par jour dans la voiture sur les trajets boulot-dodo. Le but est de reconnaitre la radio dès que le tuner tombe sur sa fréquence. Il se veut fort pour couvrir le bruit de roulement de l'auto, flatteur, accrocheur pour vendre la publicité qui arrivera tôt ou tard. Les traitements de son commerciaux dénaturent énormément les oeuvres musicales, leur dynamique, leur timbre, leur image stéréo. Très rapidement ce son devient fatiguant.

Généralement, les radios de service publique ont un son bien traité, même si la contamination markéting fait maintenant aussi sonner "Jeune" les radios pour jeunes, "Bobo" les radio pour bobos, ...

Ici encore tout est en logiciel libre. Et la liberté, pour nous, est de diffuser proprement les oeuvres que les artistes ont eu la générosité de créer. Nous pensons qu'il existe encore des auditeurs qui passent des heures à écouter la radio, donc autant ne pas leur casser les oreilles. Dans cette partie, nous aborderons les recettes pour créer son "propre" traitement de son. Ces articles se basent sur notre expérience. Le cahier des charges se résume à ceci :

- Équilibre tonal, image stéréo. - Dynamique compatible avec la diffusion FM. Pour que la radio s'entende quand même un peu à coté du hurlement des radios commerciales. - Respect strict de la limite de modulation FM de 75 kHz en France.

tson_gen.png

Pour le lien, on distingue deux phases : - Le Traitement son studio amont vise à mettre en forme le signal pour exploiter pleinement la dynamique du conduit de transport. - Le Traitement son émetteur aval amène la couleur et la dynamique adaptées à l'émission FM et respectueuse des obligations techniques de transmission FM.

Traitement son studio amont

Le but du traitement est de passer le signal à 0 dB FS (Full Scale) dans le lien Ogg Vorbis et d'exploiter au maximum la plage dynamique du lien. Dans la section Encodage, nous avons vu que la qualité d'encodage n'est pas linéaire selon le niveau. On tout intérêt à s'approcher le plus possible du 0 dB FS à l'entrée du lien.

Petite parenthèse nécessaire sur le décibel, une bonne explication sur ce vaste sujet. Le niveau maximal admissible d'une carte son, est le niveau a partir duquel le signal sera distordu. Suivant les constructeurs et les drivers de la carte son, ce niveau maximal ne correspondra pas forcément a une capture donnant un signal a 0 db FS (niveau maximal du signal numérique). S'il est en dessous on devra mettre du gain pour compenser ce décalage. De même une carte peut écrêter le signal avant le 0 dB FS.

Le travail du technicien modèle :

tson_amont_nom.png Le vu-mètre table de mixage ne dépasse pas les 0 dB, on a une bonne marge de sécurité à l'acquisition sur la carte son. Nous n'avons qu'à ajouter un gain fixe pour atteindre les 0 dB FS dans le lien. Trop facile.

Rock n'roll

Si la radio est rock 'n roll, ses techniciens le sont aussi parfois. Ainsi, pousser un peu le niveau donne un son avec plus de "patate". Nous passerons donc les "patates" (dépassement du niveau 0 dB Vu-mètre studio) dans un presse purée sonore pour éviter la saturation numérique qui amène les désagréables clics.

tson_amont_nom.png Le signal dépasse le 0 dB Vu-mètre allègrement, il reste cependant inférieur au niveau maximal admissible de la carte son. On applique le gain vu précédemment. On applique un limiteur sur ce qui dépasse des 0 dB intermédiaires. Le signal n'est dynamiquement identique à l'original.

Notons au passage que les traitements intermédiaires audio se font en virgule flottante, Le 0 dB numérique peut être dépassé sans altération du signal.

Ici se justifie pleinement le choix d'attaquer la carte son avec une marge par rapport au niveau maximal admissible, pour permettre justement les petits dépassement inévitables. Les cartes son actuelle et leur grande plage dynamique le permettent. Toute l'astuce du limiteur sera d'avoir une action "molle" ne diminuant pas trop la dynamique. Le risque est d'obtenir un gros son compressé avec tous ses défauts. Le risque secondaire, c'est que les techniciens radio s'en aperçoivent et poussent systématiquement le niveau pour avoir un son plus pêchu !

Le mix d'un technicien sourd :

tson_amont_ecr.png Passé les bornes, il n'y a plus de limiteur. On dépasse le niveau maximal d'acquisition de la carte, le son sera distordu, le reste passe dans le gain puis le limiteur.

Nous allons passer au Traitement de son amont pratique.

Traitement de son amont pratique

Nous utiliserons le couteau suisse audio de Linux : Ecasound. Il permet de capturer le signal d'entrée audio de la carte son, d'y appliquer des plug-In LADSPA et de le sortir soit physiquement, dans un fichier ou via un "pipe" vers une console. Tout cela en ligne de commande ! De gauche à droite, grâce à des options, on décrit dans le cheminement du signal Audio de la source, en passant par les traitements, vers la cible.

Pour comprendre ce document, il est préférable de se reporter d'abord à la documentation ecasound.

ecasound.jpg

Coté studio pour traiter le son en entrée et ensuite l'encoder pour le transmettre via internet, nous aurons donc la ligne de commande suivante :

LC_NUMERIC=POSIX ecasound -s:c1.ecs -dd -D --deamon|/usr/bin/ices2 /etc/ices.xml

La partie droite concerne l'encodeur Ices2, nous n'en parlerons pas ici. A gauche, on appelle Ecasound avec une chaine de paramètre c1.ecs. Il s'agit d'un fichier contenant les différentes options de la ligne de commande à travers lesquelles le son va cheminer dans le traitement Ecasound. Attention le fichier doit être codé sur une seule ligne, une espace sépare chaque option. Il ressemble un peu à cela :

  • -b 2048 -f:24,2,96000 -i alsahw,0,0
  • -el:fastLookaheadLimiter,0,-2,30E-3
  • -el:fastLookaheadLimiter,0,-4,523E-3
  • -el:fastLookaheadLimiter,0,-6,20000E-3
  • -eli:1068,1690E-3
  • -f:16,2,96000
  • -o stdout

C'est plutôt hard à première vue et très puissant aussi. Les paramètres sont fort logiquement et chronologiquement placés. Une représentation graphique vaut mieux qu'on long discours :

tson_amont_ecasound.png

Décomposons le traitement :

  • -b 2048 -f:24,2,96000 -i alsahw,0,0 : On réalise une capture de l'interface ALSA par défaut au format 96 kHz 24 bits stéréo. Le buffer fait 2048 octets. La capture en 24 bits donne une meilleure précision du traitement audio.
  • -el:fastLookaheadLimiter,0,-2,30E-3 -el:fastLookaheadLimiter,0,-4,523E-3 -el:fastLookaheadLimiter,0,-6,20000E-3 -eli:1068,1690E-3 : C'est le traitement audio à proprement parler. Nous appelons 4 plugins LADSPA. 3 fois l'excellent "fastLookaheadLimiter", un limiteur stéréo prédictif, par palier de 2 dB avec des relâchements de durée différente. On perd ainsi le moins possible de dynamique. Ou si vous préférez, on ne compresse pas trop le signal. Nous avons vu au point Traitement son studio amont, que nous gardons un marge dynamique a l'acquisition. Dans cet exemple, nous réservons 6 dB. Les 3 limiteurs agissant respectivement a -2, -4, et -6 dB, il ne fonctionnent théoriquement qu'en cas de dépassement du Zéro db Table de mixage. On amplifie finalement le signal de sortie de 6 dB pour le ramener à 0 dB FS.
  • -f:16,2,96000 -o stdout petite conversion diminuer la résolution du signal en 16 bits et sortie vers la console via un pipe.

Si tout cela vous semble rébarbatif, nous vous proposons une méthode visuelle pour faire une Simulation traitement de son. Dans le développement de votre système COIT, vous pouvez prévoir plusieurs fichiers de Chaine de paramètres, pour modifier ou retoucher simplement le comportement de votre machinerie une fois en exploitation.

Traitement de son aval pratique

En pratique, coté émetteur, nous avons donc le serveur Icecast qui reçoit le flux audio au format Ogg Vorbis en provenance des studios. Une instance du lecteur multimédia Mplayer se connecte au serveur Icecast local et lit le flux comme vous écouteriez une web radio sur votre ordinateur. La sortie audio de Mplayer est dirigé vers le traitement de son ALSA. Enfin le son travers le mixeur audio ALSA et est dirigé vers les sorties physiques de la carte son.

tson_aval_gen.png

Pour faire varier les plaisirs, nous utilisons cette fois ci la possibilité qu'offre ALSA de créer des périphériques virtuels. Plus précisément dans le fichier .asoundrc (parfois aussi /etc/asound.conf selon la distribution Linux), nous spécifions l'utilisation d'une chaîne d'excellents plugin LADSPA. La ligne de commande pour invoquer le périphérique Alsa par défaut pour la lecture du flux dans la machine coté émetteur ressemble à ceci :

mplayer -ao alsa http://localhost:8000/test

Pour intégrer le traitement de son nous spécifions un périphérique virtuel nommé "ptson" par exemple :

mplayer -ao alsa:device=ptson http://localhost:8000/test

L'écriture du fichier .asoundrc ressemble un peu au cheminement de l'eau dans une série de cascades. Nous démarrons par un périphérique de type "Plug" qui permet de brancher le logiciel audio. Celui-ci laisse s'écouler le son a travers le premier plugin LADSPA, qui se deverse ensuite vers le second. La cascade s'arrête avec le dernier plug-in Audio qui aiguille le flux audio vers la sortie matérielle de la carte son.

tson_aval_asoundrc.png

Ce schéma vous facilite la lecture du fichier .asoundrc ou parfois aussi /etc/asound.conf selon la distribution Linux :

pcm.ice1712 {
type hw
card 0
}

ctl.ice1712 {
type hw
card 0
}

pcm.ptson {
type plug
slave.pcm "equalizer";
}
pcm.equalizer {
type ladspa
slave.pcm "valvesat";
path "/usr/lib/ladspa";
plugins [
{
label tap_equalizer
input {
# G1 G2 G3 G4 G5 G6 G6 G8 (Db -50 to 20)
# F1 F2 F3 F4 F5 F6 F7 F8 (Frequence)
controls [1 0 0 0 -1 -1 -1.2 -1.5 100 200 400 1000 3000 6000 12000 15000]
}
}
]
}
pcm.valvesat {
type ladspa
slave.pcm "limiter";
path "/usr/lib/ladspa";
plugins [
{
label valve
input {
# "Distortion level" input, control, 0 to 1, default 0
# "Distortion character" input, control, 0 to 1, default 0
controls [0.1 0.5]
}
}
]
}

pcm.limiter {
type ladspa
slave.pcm "plughw:0,0";
path "/usr/lib/ladspa";
plugins [
{
label fastLookaheadLimiter
input {
#InputGain(Db) -20 -> +20 ; Limit (db) -20 -> 0 ; Release time (s) 0.01 -> 2
controls [ 1.5 -0.1 0.021 ]
}
}
]
}
Enfin, la toute réglage du niveau de sortie du module pour attaquer l'entrée de l'émetteur, se trouve dans le mixer ALSA. voir la partie Réglages.