Logiciels > Freewares > AudioSwitch - Vx.x.x.x

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.

AudioSwitch

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