Dernière mise à jour :
03/12/2008
Présentation
Le logiciel AudioSwitch est un commutateur automatique ou manuel de
sources audio, doté de trois "entrées" (trois sources
audio différentes) et de une sortie audio. Il s'agit d'une
version allégée (commencée) d'un projet bien plus ambitieux
nommé AudioMatrix (pas commencé), lequel permet de spécifier autant
d'entrées et de sorties que souhaitées.
En mode Automatique, il permet de basculer automatiquement d'une source
sonore principale à une source sonore de secours, si le niveau
du signal de la source principale reste un temps
déterminé sous un seuil déterminé (par
exemple au moins 20 secondes en-dessous de -40 dBFS). En mode manuel,
il permet de prendre le contrôle de façon immédiate
et sans délai. Une fonction intégrée de script,
dont l'activation est optionnelle, permet de spécifier
l'ensemble des paramètres que le logiciel peut gérer :
temps d'absence signal, retour vers la source principale, temps de
transition au moment des commutation, etc.
Fonctions principales
Le logiciel, à son origine, était juste prévu pour
passer automatiquement d'une source principale à une source de
secours en cas de défaillance de la première. Puis au fil
du temps, et suite à des demandes d'internautes de divers
horizons (monde de la radio principalement), certaines autres
fonctionnalités ont été demandées. Je ne
peux en aucune manière promettre que l'ensemble des fonctions
demandées et listées ci-après seront
implémentées, car pour certaines je n'ai pas
l'expérience et ignore totalement ce dans quoi je m'engage. Pour
les fonctions que j'ai déjà réalisées dans
d'autres logiciels, je ne me fais pas trop de soucis. La
première version du logiciel se focalisera donc sur les
fonctions "sûres", même si dans les chapitres qui suivent,
j'en parle comme si c'était fait.
Tableau récapitulatif des fonctions prévues
Ce tableau évoluera bien entendu au fil du temps et de
l'avancement du projet
Gestion avancée par script
|
Implémenté. |
Commutation automatique
|
Implémenté.
|
Commutation progressive
|
Implémenté. |
Secours du secours
|
Implémenté. |
Détection présence
audio
|
Implémenté. |
Télécommandes
|
Non implémenté
dans un premier temps. Je sais faire mais ce n'est pas le plus
important pour le moment.
|
Commutation automatique source principale vers source secondaire
C'est la fonction de base. On
dispose d'une source sonore de base que l'on souhaite exploiter, pour
une diffusion sonore quelconque (kermesse, radio, etc). Si cette source
sonore disparait pour une raison ou pour une autre, une source sonore
de secours prend la relève. Si vous êtes proche du
matériel jouant la source sonore principale, pas de
problème, vous résolvez le problème rapidement et
cinq minutes après ça repart. Mais si vous êtes
absent ou loin, et que l'absence de son est vraiment gênante,
cette commutation automatique peut s'avérer vraiment pratique
car elle vous laisse plus de temps pour intervenir, et surtout avec
moins de stress. Bien entendu, chacun a ses propres besoins et les
critères définissant la coupure de la source audio
principale diffèrent d'un cas à l'autre. Vous savez sans
doute qu'il est facile de détecter une absence audio avec des
sources audio "pleines", mais qu'il est très difficile de
détecter une absence audio sur une musique classique dans
laquelle on peut trouver de longs passages pianissimo. Quoi qu'il en
soit, le logiciel AudioSwitch ne prétend pas rivaliser avec des
outils professionnels : on peut spécifier un seuil au-dessous
duquel on considère qu'il y a absence, et on peut
spécifier une durée à partir de laquelle on
considère que le signal principal est vraiment perdu (les deux
conditions doivent être respectées pour ordonner la
commutation).
Retour vers source sonore principale
Que faire si une commutation automatique a eu lieu, et que la source
audio principale réapparaît sans que vous n'ayez rien fait
pour ça ? Le basculement des sources dans l'autre sens (secours
vers normal) doit-il être opéré ? Là aussi,
chacun a ses propres besoins et opinions sur la chose, et le mieux
à mon sens est de permettre à tout un chacun de
décider quoi faire. Le logiciel permet donc au choix de revenir
sur la source principale ou de rester sur la source secondaire, si le
programme principal revient. Afin d'éviter de multiples
commutations automatiques si la source principale se coupe de
façon intermittente, un comptage du nombre de commutations est
effectué, et vous pouvez spécifiez un nombre maximal, par
exemple 2 ou 3. Si le nombre de commutation a atteint le nombre maximl
fixé, le logiciel reste sur la source de secours, même si
la source principale est de nouveau détectée.
Secours du secours
Cette fonction est sans doute un peu ambitieuse, et même pire
elle pourrait faire penser que l'on n'a pas confiance dans le
système de secours primaire. Mais même si la
défaillance simultanée des sources principale et secours
primaire est très peu probable, cela peut arriver. La source de
secours bénéficie donc d'un traitement similaire à
celui attribué à la source principale : si le secours
primaire vient à lacher, ou s'il ne répond pas à
l'appel lors d'une demande de commutation automatique, alors c'est la
source de secours secondaire qui prend la relève. Les conditions
de rebasculement vers la source pricipale peuvent être identiques
à celles définies pour la commutation principale, ou
être différentes.
Types de sources
Si la source sonore principale sera quasiment toujours reliée
à une entrée de carte son (exploitation temps
réel), la source sonore de secours peut quant à elle
revetir différents habits. Mais il faut reconnaitre que les
choix sont tout de même bien maigres : soit une autre
entrée de carte son, soit lecture de fichiers audio sur disque
dur. Bien entendu, on peut aussi ajouter un signal sonore fixe (signal
test) mais j'en vois mal l'interêt. Pour le moment donc, choix de
la source de secours primaire sur entrée de carte son ou lecture
de fichiers sur disque dur.
Remarque : si vous disposez
d'une carte son n'ayant qu'une seule entrée audio, la source de
secours sera obligatoirement issue d'une lecture de fichiers audio sur
disque dur.
Détection silence ou détection présence audio ?
Votre besoin peut être de passer d'une source sonore principale
vers une source sonore secondaire, non pas quand il y a absence signal
sur la source principale, mais quand il y a présence signal sur
la source secondaire. Dans ce cas, la gestion de la commutation
n'est pas du tout la même, et là encore le logiciel
dispose de certains attouts. Grâce au script avancé, vous
pouvez décider si c'est la source sonore principale ou la source
sonore de secours qui doit être considérée comme
prioritaire. Cerise sur le gâteau : vous pouvez décider
d'effectuer une commutation totale ou d'effectuer un simple
affablissement de la source non prioritaire. Exemple d'application :
musique sur source principale et parole sur source de secours : si
présence voix sur source de secours, atténuation
automatique de la source principale. Un fader automatique, en somme...
Je vous laisse imaginer ce qu'une telle fonction peut vous apporter en
dehors de cet exemple simple.
Transistions brutales ou progressives
Le mode de commutation peut être brutal ou progressif. Vous avez
en effet la possibilité de spécifier le temps de
"montée en puissance" et le temps d'atténuation, en
millisecondes ou en secondes, au moment des commutations. Bien entendu,
il semble plus judicieux de recourir à un temps de commutation
court lors d'une détection absence signal, et d'adopter une
transistion douce (sur deux secondes par exemple) lors d'un retour vers
la normale. Mais encore une fois, vous pouvez faire ce que vous voulez
et c'est bien là le principal. Bien entendu, le comportement du
logiciel restera censé si vous ne spécifiez rien du tout.
Télécommandes entrantes et sortantes
Sur les matériels professionnels, les commutations peuvent
être automatiques (détection silence ou détection
présence audio), mais aussi manuelles, par le biais de
télécommandes venant de l'extérieur. Le logiciel
AudioSwitch est en mesure de répondre à ce genre de
sollicitations externes. Soit par le biais de commandes envoyées
via un port série, soit par le biais de commandes de type
"boucles sèches" (contacts de relais ou d'interrupteurs)
appliquées sur des entrées d'un port parallèle.
Pour ce qui est du port parallèle, vous devez avoir conscience
qu'il a physiquement disparu des PC actuels, et les interfaces USB /
LPT que l'on trouve pour relier une imprimante parallèle sur un
port USB ne conviennent pas pour l'application qui nous interresse (
j'ai fait quelques tests
qui ne m'ont pas convaincu du tout). Pour l'instant donc, seules les
télécommandes par port série sont garanties (mais
pour combien de temps, ça je ne sais répondre).
Côté "sortant", le logiciel est également en mesure
d'envoyer des messages lorsque des commutations ont lieu : messages
sous forme texte via port série ou TC logiques via port
parallèle. Les messages à envoyer sont définis par
vos soins, mais si vous n'en spécifiez aucun, des messages
prédéfinis sont utilisés, du genre
"25/05/2008-12h34:27 : Commutation automatique Source Principale vers
Source Secours 1".
Avertissement
Je ne sais pas si vous êtes au courant, mais un ordinateur
présente un MTBF (temps moyen avant panne) bien plus faible
qu'un équipement de commutation matériel style Rami
AUF200. Vous devez tenir compte de ce point si l'utilisation du soft
répond à un besoin de diffusion radio en temps
réel. Et avant toute installation, demandez-vous bien si l'ajout
d'un tel équipement logiciel est réellement
justifié.
Pourquoi ce logiciel met-il autant de temps à sortir ?
Parce que j'ai pris la décision de démarrer mes nouveaux
développements audio sur la plateforme Vista, avec Delphi 2007
(les projets existants restent maintenus sous Delphi 5 et sous Win XP).
Delphi 2007 est encore assez nouveau pour moi, et Vista l'est
également. Ce
qui signifie qu'il faut que je passe du temps (beaucoup de temps) pour
comprendre les règles de bases et les pourquoi du "ça
fonctionne pas comme je veux". Je ne dois pas seulement apprendre
à m'en servir, je dois aussi apprendre de nouvelles
règles de développement, que l'on doit toujours suivre si
l'on tient à la qualité et au bon fonctionnement des
logiciels sur le maximum de machines. Je sais que vous êtes
attentifs à la sortie de ce programme, en témoignent les
quelques courriers que je reçois régulièrement me
demandant où en est l'avancement du projet. Promis, ça
sortira bien un jour, puisque le plus gros est désormais fait ;-)
Téléchargement
Voir Avertissements donnés
à la page
Freewares.
Faut patienter encore un peu....
Crédits
Un grand merci à Boian Mitov, pour le travail extraordianire
qu'il a
accompli avec ses composants multimédia AudioLab, SignalLab,
PlotLab, VideoLab, VisionLab et OpenWire ! Pour les
développeur
sous Delphi, je vous conseille d'y jeter un oeil !
Thanks a lot to Boian
Mitov, for its
splendid multimedia components library AudioLab, SignalLab, PlotLab,
VideoLab, VisionLab et OpenWire ! If you're writting audio or video
applications under Delphi, these components will certainely be very
helpfull !
Mitov Components Lab