Mesure in situ de l`absorption acoustique des matériaux dans le
Transcription
Mesure in situ de l`absorption acoustique des matériaux dans le
281 A Système de mesure et informatique L’annexe qui suit doit être vue comme un complément au chapitre sur le système de mesure. Elle traite dans un premier temps du rassemblement des éléments constituant un système informatique qui respecte les exigences de la mesure in situ, en conformité avec la double logique, technique et économique, formulée lors de l’analyse du problème. La concrétisation de ce système idéal est abordée ensuite. Le système restant à ce jour inachevé, la dernière partie s’intéresse aux perspectives. A.1 Métrologie informatique - choix d’une base de travail Ici, l’objectif n’est pas de réinventer la roue, mais, pour filer la métaphore, de faire en sorte que sa rotation connaisse le moins possible d’accidents de parcours, et ne soit pas réservée aux privilégiés. On procède ici par couches, en allant du plus concret et matériel vers le plus abstrait et immatériel. A.1.1 Hardware : PC portable et périphériques génériques Les tâches à réaliser étant complexes, il est certainement beaucoup moins onéreux de recourir à l’appareil virtuel et adaptable par excellence qu’est l’ordinateur pour contrôler la mesure, engendrer et acquérir les signaux plutot que de développer une électronique spécifique. L’équipement de mesure complet devant être facilement transportable, notre choix se restreint aux portables de type compatible PC ou de marque Apple. Sur le plan des périphériques, la première catégorie l’emporte largement sur la seconde. Nous optons donc pour un compatible PC. Une interface audio est nécessaire pour permettre au PC d’engendrer et d’enregistrer des signaux. Toujours dans une optique de réduction des coûts, il serait souhaitable de choisir dans la gamme des cartes existantes. La démocratisation du multimédia aidant, des cartes de très bonne facture en termes de résolution, distorsion et de rapport signal sur bruit sont disponibles à des prix raisonnables. De ce fait notre souhait n’est plus du tout irréaliste. Un étudiant de 282 Annexe Mesure et informatique l’université de Trondheim a d’ailleurs bénéficié de la bibliographie constituée durant ce mémoire pour réaliser un système MLS, aujourd’hui commercialisé, qui repose sur le périphérique audio standard d’un ordinateur portable fonctionnant sous Windows 95. A.1.2 Le système d’exploitation : priorités fixes à défaut de temps réel A.1.2.1 L’incompétence des systèmes courants Elément semble-t-il mal connu de bon nombre d’utilisateurs d’ordinateurs en métrologie, les systèmes d’exploitations courants ne sont pas "temps-réel". Cela signifie que le temps d’éxécution d’une tâche n’est pas critique pour eux. Pour plus de détails sur la notion de temps-réel en informatique, le lecteur pourra se reporter à [Comp.realtime-1998]. Il semble sur ce point que le monde de la mesure acoustique ait beaucoup à apprendre de celui de la performance musicale par ordinateur. Sa littérature propose quelques références sur le sujet [Fichera1991] [Viara-1991], la nôtre aucune, sauf erreur. Or, dans le cas de l’utilisation d’un ordinateur pour la génération et l’acquistion simultanée de signaux, la question du caractère temps-réel est d’une importance primordiale. En effet, en théorie, rien ne garantit que le transfert des signaux se fera de manière suffisamment rapide ou régulière. D’autres tâches sont actives au moment où la mesure s’effectue et le système d’exploitation distribue le temps CPU à chacune suivant leurs priorités. Sous Windows 95 (aujourd’hui 98), système d’exploitation multitâches destiné à la bureautique, ces priorités ne sont pas contrôlables par l’utilisateur. Par ailleurs il semble que le programmeur ne soit pas mieux loti, car les notions de processus, de multitâche et de priorité n’apparaissent nulle part dans la documentation pourtant pléthorique sur le système phare d’aujourd’hui commercialement parlant. En fait, ce système prévoit tout de même une classe de processus dits "temps réel", mais les spécialistes jugent pour nous qu’elle ne mérite pas ce qualificatif [Timmerman_Monfret-1997]. Dans ces conditions, il se peut que des erreurs se produisent, comme dans le cas d’un transfert de données. Prenons un exemple presque quotidien, la gravure de CD-Rom. Cette opération nécessite un débit de données sensiblement constant entre la mémoire de l’ordinateur et le graveur, au risque de devoir recommencer la gravure sur un 283 disque neuf. La constance du débit n’est atteinte que si l’on empêche tout autre tâche, telle qu’un économiseur d’écran, de s’exécuter. Les débits en question sont pourtant peu élevés, lorsqu’on les compare aux capacités d’un microprocesseur actuel ou d’un bus d’échange. Par définition, la gravure dite "double vitesse", courante à l’heure de la présente rédaction, correspond en effet au débit engendré par le duplex - lecture et enregistrement simultanés - sur 2x2 canaux, à 44.1 kHz et 16 bits de résolution par échantillon, soit environ 350 kilo-octets/s. Le cas échéant, les erreurs ne seront pas nécessairement signalées par le système d’exploitation. Cette conclusion est valable également pour MacOS, le système d’exploitation d’Apple, du moins avant que sa version X ne soit disponible. Ceci n’empêche pas les spécialistes des logiciels de métrologie de développer pour Windows ou MacOS. Si les performances d’environnements de développement tels que LabView se sont très nettement améliorées au fil des années, la même faiblesse subsiste sur ces systèmes d’exploitation. Dans l’absolu, rien ne garantit que la mesure s’effectuera correctement à chaque fois. Nous ne savons pas si des mécanismes de vérification du bon déroulement des mesures ont été intégrés auxdits logiciels. En tout cas, en 1995, lors de l’essai d’un générateur de signal sinusoïdal fourni comme démonstration des fonctionnalités de LabView et d’une carte d’acquisition propriétaire, il fut possible d’entendre pendant quelques instants dans le haut-parleur relié à la sortie de la carte via un amplificateur de puissance, des grésillements correspondant aux déplacements de la souris, signes d’un changement inopiné d’activité pour le processeur. Inopiné et mal venu, mais ne donnant pas lieu au moindre message d’erreur de la part du programme de contrôle. Expérience suffisante pour nous pousser à rechercher un système d’exploitation mieux adapté. A.1.2.2 Des systèmes plus adaptés : OS/2 et les UNIX pour PC OS/2, développé conjointement par IBM et Microsoft pour la plate-forme PC, apportait la solution. Multiprocessus, ce système connaît quatre catégories de priorités, dont la priorité "temps critique" [[Deitel_Kogan-1992], p 137]. Malheureusement, malgré une conception autrement plus solide et ouverte que celle de Windows, ce système semblait condamné en 1995, du fait de l’abandon de son développement par Microsoft. Parmi les systèmes spécifiquement temps réel, QNX est certainement le 284 Annexe Mesure et informatique plus connu. Il fonctionne sur plusieurs plates-formes matérielles dont les compatibles PC. Ce choix peut sembler s’imposer. Mais la couche système d’exploitation n’est pas la dernière à considérer dans notre sélection. On remarquera par ailleurs que d’autres concurrents existent [Comp.realtime-1998]. Sans aller jusqu’au système temps-réel, nous avons fait allusion aux priorités entre les différentes tâches processeur. Une solution consisterait à déterminer par des essais le niveau de priorité suffisant pour que l’acquisition de signaux se déroule bien, et à imposer cette valeur au système d’exploitation. Il suffit donc de disposer d’un système d’exploitation multitâches un peu évolué, comme UNIX. L’offre de versions d’UNIX, le standard des stations de travail, ou de Mach [[Tanenbaum-1992], §15] dont plusieurs sont domaine public, est en fait assez large. Au début de ce travail, Linux commençait par exemple à prendre forme. NeXTSTEP était, quand à lui, à la fois tout à fait au point et seul à proposer un environnement graphique convivial. Il n’était pas encore question de penser à WindowsNT, très largement inspiré d’UNIX, qui ne fonctionnait que pour des configurations de PC de haut de gamme à processeurs multiples. Aujourd’hui, cette solution serait à envisager, du point de vue système du moins, quoiqu’elle soit connue pour être d’une grande voracité en ressources système. A.1.3 La gestion du son sur ordinateur et les outils de développement En 1995, les outils fournis sous Windows pour contrôler le son sur un ordinateur étaient très rudimentaires. Le compilateur Borland C++ 4.0, contemporain de ce millésime, ne proposait rien d’autre que des fonctions de très bas niveau, du point de vue de l’abstraction s’entend. Au programmeur de se plonger dans les profondeurs de l’architecture du système et des drivers de carte. La fonctionnalité son, non prioritaire, n’était vraisemblablement pas encore implantée sous Linux. NeXTSTEP, outre le fait qu’il proposait des outils de développement qui ont fait de lui une référence pendant plusieurs années auprès des programmeurs professionnels, était seul à fournir des bibliothèques d’objets, parmi lesquels une véritable interface de développement d’application, l’App Kit, et des bibliothèques 285 audio, le Sound Kit et le Music Kit, qui permettaient, du fait de leur niveau d’abstraction élevé, un développement très rapide d’applications dans le domaine. Le choix de NeXTSTEP 3.3 s’imposait donc sur tous les plans. Le langage natif de NeXTSTEP est l’Objective-C, comme son nom l’indique un langage orienté objets (davantage objets que le C++) dérivé du langage C. Son apprentissage est assez facile. Pour plus de détails, le lecteur pourra se reporter à l’introduction donnée en annexe. Une seule incertitude planait au sujet de NeXTSTEP, celle de sa réussite commeciale… A.2 Tentatives de réalisation A.2.1 Le Sound Kit L’essentiel pour nous était de disposer d’un programme permettant la lecture et l’enregistrement simultanés de signaux. Pour commencer, nous avons choisi de n’exploiter que le Sound Kit, qui répondait sur le papier à nos besoins, et de développer avec une carte son grand public, de type Soundblaster 16. Celle-ci permet l’enregistrement et la lecture sur deux canaux avec une résolution maximale de 16 bits et une fréquence d’échantillonnage de 44.1 kHz, ce qui est amplement suffisant pour nos mesures. A.2.1.1 Fonctionnalités prometteuses du Sound Kit Le Sound Kit est la partie objet du software spécifique son de NeXTSTEP. Il contient 10 classes représentant les différents éléments et données impliquées dans un système d’enregistrement / lecture / visualisation audio, autour de Sound, la classe servant à représenter et manipuler les données audio. Trois lignes de code sont suffisantes pour créer une instance de l’objet Sound, lui associer un fichier de son, et lancer sa lecture : … id MLS; … MLS=[[Sound alloc] initFromSoundfile:"nom_de_fichier"]; [MLS play]; … En guise de test des fonctionnalités, il nous a été dès lors très facile de programmer un générateur MLS, avec interface graphique intégrée utilisant l’App Kit. La partie audio du code est fournie en annexe (Cf C.1). Il est possible 286 Annexe Mesure et informatique d’engendrer des séquences de très longue durée (ordre > 20 si nécessaire) avec ce générateur. De même, un enregistreur bi-canaux a été programmé rapidement (Cf C.2.2). A.2.1.2 Le duplex impossible : bug dans le système Les difficultés sont apparues au moment de combiner lecture et enregistrement. Le fonctionnement du programme correspondant n’est pas du tout satisfaisant. Enregistrement et lecture s’excluent mutuellement. Le recours aux objets dédiés au contrôle de périphérique audio NXSoundIn et NXSoundOut est sans effet. De même, toutes les tentatives sont restées vaines avec les fonctions de plus bas niveau. L’explication de ces problèmes est venue beaucoup plus tard. Premièrement, la carte Soundblaster 16 ne permet pas lecture et enregistrement en simultané, sauf en mode 8 bits, ce qui n’est pas acceptable pour les besoins de nos mesures. Deuxièmement, le module drivers de NeXTSTEP souffre d’un bug qui empêche cette opération, cela quel que soit le modèle de périphérique audio utilisé. Les entrées / sorties audio étant un aspect non critique du fonctionnement d’un ordinateur en général, ce problème n’a jamais été résolu, au profit de questions plus prioritaires pour la compagnie. Une solution aurait peut-être consisté à installer deux cartes audio sur la même carte mère. NeXTSTEP permet l’installation de deux périphériques audio identiques. Mais l’essai s’est avéré infructueux, les cartes n’étant pas reconnues par le Sound Kit. En laboratoire, on aurait pu associer deux ordinateurs disposant chacun d’une carte audio, du fait de la capacité du SoundKit à commander des ressources audio distantes de façon aussi sibylline que les ressources locales. A.2.1.3 A plus bas niveau, portage incomplet La bibliothèque Sound de NeXTSTEP fournit aussi des fonctions de bas niveau permettant le contrôle d’une carte à processeur de traitement de signal (Digital Signal Processor, DSP), les Driver Functions. On touche ici aux limites du portage de NeXTSTEP depuis le hardware spécifique sur lequel il a été développé vers le hardware PC : les fonctions existent bien, mais très peu de cartes à DSP sont supportées, et celles-ci n’étaient plus commercialisées au moment de l’achat de la licence NeXTSTEP que nous avons utilisée. 287 A.2.2 Le MusicKit A.2.2.1 Fonctionnalités Généralités Pour sortir de l’impasse, nous avons exploré les possibilités du MusicKit, développé par le Center for Computer Research in Music and Acoustics (CCRMA) de l’université de Stanford (E.U.). Le but de ce kit, qui est la synthèse et la performance musicales, paraît bien éloigné de nos préoccupations. Mais musique et mesures acoustiques ne sont pas aussi étrangères. Les synthétiseurs sont des générateurs de signaux en général plus sophistiqués que ceux que nous utilisons pour nos expériences. La musique par ordinateur procède souvent en modifiant des signaux du monde extérieur dont il faut faire l’acquisition. Enfin le respect de contraintes temporelles est un aspect critique de la qualité d’une performance musicale, comme le rappellent les références évoquées ci-dessus. Nous pouvons donc ici faire abstraction du champ d’application originel de ces classes d’objets. Dans un langage plus "sérieux", elles modélisent la synthèse et l’acquistion de signaux et fournissent des outils de contrôle temporel. L’analogie a tout de même ses limites. La différence la plus importante se trouve dans l’"orientation" du fonctionnement. En mesure, le but final, du point de vue de l’ordinateur, est d’enregistrer quelque chose. En musique, le flux est inverse : il s’agit surtout de produire un signal. Détails : orchestre, chef, DSP Le MusicKit est un édifice d’envergure, 20 Méga-octets de code. Il est facile de s’y égarer, malgré un très net effort de documentation et d’illustration de ses fonctionnalités. Résumons celles qui nous intéressent directement. Le MusicKit s’appuie sur la combinaison ordinateur hôte et cartes audio à DSP - les DSP doivent appartenir à la famille 56000 de Motorola. Leur nombre est, en l’absence de réseau, limité par celui des slots disponibles pour des extensions sur la carte mère de l’ordinateur hôte. Celui-ci sert de maître d’œuvre. Il se charge de la mobilisation des ressources, de leur paramétrage, de leur activation à temps contraint ou non. Le fonctionnement à temps contraint implique l’initialisation d’une instance de la classe Conductor. Chaque carte à DSP est représentée au niveau logiciel par une instance de la classe Orchestra. Chaque orchestre regroupe un certain nombre 288 Annexe Mesure et informatique d’"instruments", des fonctions de production ou de traitement de signal élémentaires - générateurs, filtres, amplificateurs, retards…- chacune est l’instance d’un Unit Generator particulier. Attention donc, un générateur unité n’est pas nécessairement un générateur de signaux. Ces générateurs-unités sont connectés les uns aux autres par des instances de patch points. La classe patch point hérite de la classe SynthData, conçue pour représenter des zones de mémoire de données DSP. Le MusicKit est livré avec un grand nombre de ces générateursunités, portions de code assembleur DSP56000 encapsulées dans une classe Objective-C. Parmi ces modules, citons, outre un générateur de signal sinusoïdal classique, une version modulable en fréquence grâce à un générateur de rampe et un générateur pseudo-aléatoire de type congruence linéaire. Un certain nombre d’éléments sont donc en place pour un système permettant la comparaison des mérites des procédés d’acquisition proposés au chapitre précédent. Si nécessaire, il est possible d’en programmer d’autres en assembleur 56000, mais la tâche s’annonce ardue pour le néophyte, d’autant plus qu’aucun outil de débuggage n’existe sur hardware Intel. Elément important, l’activité du DSP se partage entre les différents générateurs-unités chargés en mémoire dans une situation donnée, avec comme règle d’avoir produit exactement 16 échantillons à la sortie d’un générateur avant de passer à un autre, ceci pour des raisons d’efficacité de fonctionnement. L’"orientation" de fonctionnement différente dont il a été question a pour conséquence l’absence d’une fonctionnalité qui serait bien utile en mesure, à savoir la possibilité de transférer en mémoire hôte les échantillons lus à la sortie des convertisseurs analogique/numérique par un générateur-unité d’entrée (InUG). On notera au passage que la lecture d’un fichier de son précalculé via le DSP n’est pas prévue non plus. En termes de chronologie, il est nécessaire de distinguer deux phases dans le fonctionnement d’un orchestre. La première est celle de la configuration, qui consiste en un transfert des générateurs-unités et des données en mémoire DSP. La deuxième est celle du fonctionnement, pendant laquelle il n’est plus possible de transférer des données entre hôte et DSP, mais simplement d’envoyer des commandes via le port hôte du DSP. 289 A.2.2.2 Mise en pratique Ces travaux s’étendent sur une assez longue période, de l’été 1996 à l’automne 1998, car ils ont été menés avec un niveau de priorité assez bas. Ils s’appuient sur la version 4.1.1 du MusicKit, puis sa version 4.2 à partir de l’été 1997, en combinaison avec une des deux cartes de marque Turtle Beach cidessous : • Tahiti : DSP 56001 et convertisseurs 18 bits • Fiji : DSP 56002 et convertisseurs 20 bits L’impossibilité d’enregistrer à partir du MusicKit implique que ce Kit ne peut être auto-suffisant par rapport à nos besoins. Combiner la génération par le MusicKit et l’acquistion par le SoundKit est la seule voie possible. Un premier système MLS limité L’approche la plus simple, à savoir la lecture d’un fichier contenant une séquence préalablement calculée, est à rejeter pour la raison précisée ci-dessus. De même, on pourrait penser qu’il est possible de concevoir un générateur MLS par construction d’un registre à décalage à l’aide d’une combinaison de générateurs-unités existants, de type ligne à retard et sommateur, mais la contrainte des 16 échantillons mentionnée ci-dessus empêche de procéder ainsi, sauf à accepter une fréquence maximale de signal extrêmement basse égale à 44100/16=2750 Hz ! Trois possibilités restent, en l’absence d’un générateur unité produisant une MLS. La première, utiliser un générateur-unité de type oscillateur générique (OscgUG). Un oscillateur générique balaie en boucle une instance de SynthData contenant une période de signal précalculée. Dans notre cas, il suffirait donc de calculer les valeurs de la séquence à l’aide du processeur-hôte et de les ranger dans une instance de SynthData connectée à un oscillateur générique (Cf Figure121). 290 Annexe Mesure et informatique Table Oscg Out2Sum Figure-121 : génération de signaux de forme d’onde quelconque avec le Music Kit. Les patchpoints ne sont pas représentés ici. Utiliser un oscillateur générique ne pose pas de difficulté. Mais le procédé trouve très vite ses limites, du fait de la petite taille de la mémoire de données externe de la carte à DSP. Numériquement, il n’est pas possible d’engendrer une séquence d’ordre supérieur à 12, ce qui est trop faible pour nos besoins. La compilation des deux courtes portions de code rappelées en annexe montre le bon fonctionnement en duplex de la combinaison MusicKit / SoundKit utilisée (Cf C.2). Il est possible de gagner un ordre en exploitant la séparation de la mémoire de données en deux bancs X et Y. Le principe consiste alors à mettre en place un oscillateur générique pour chaque banc de mémoire, et à stoquer la première moité du signal dans un vecteur rangé dans le banc X et la seconde dans le banc Y. Les sorties des oscillateurs génériques sont reliées aux deux entrées d’un générateur-unité de commutation servant à sélectionner la sortie d’oscillateur à connecter au générateur-unité de sortie, au terme d’une demie période (Cf Figure122). Cela nécessite l’emploi d’un conductor pour envoyer la commande de basculement le moment venu. Table X Oscg DSwitch Out2Sum Oscg Y Table Figure-122 : maximisation de la durée de synthèse par exploitation des deux bancs de mémoire. 291 Une deuxième voie consisterait à utiliser l’interface procédurale fournie par le Music Kit. Elle contient des fonctions qui permettent de communiquer avec les drivers de cartes à DSP, de transférer des données avec contrôle temporel ou non, et d’exécuter des instructions DSP, le tout à la demande du processeur-hôte. Il suffirait en théorie de mettre en place un générateur-unité de sortie, et d’envoyer périodiquement des échantillons vers le patchpoint auquel son entrée est connectée. Le temps a manqué pour passer à la pratique. Reste la solution radicale, l’écriture d’un générateur unité dédié. Malheureusement, l’assembleur spécifique est plutôt ardu à apprendre pour l’habitué des langages procéduraux ou objets. Une telle méthode ne serait pas dans l’esprit de cette exploration, qui souhaitait montrer la possibilité d’un développement générique. Mais la solution est là, qui attend un programmeur disponible et un tant soit peu tenace. A.3 Perspectives A.3.1 Le devenir de NeXTSTEP NeXT Computer, devenu Apple Enterprise Software, suite à un rachat inattendu, a abandonné progressivement le support technique de NeXTSTEP 3.3, et d’OPENSTEP 4.x, dernières versions du système…Malgré ses immenses talents, ce système d’exception [Byte-1994], [[DiCosmo_Nora-1998], p 159-160] se meurt après n’avoir connu qu’un succès d’estime. Quid de la solution retenue ? A-t-elle déjà sombré dans les oubliettes de l’industrie informatique ? Non pas. Openstep, spécification publique d’objets définie conjointement par Sun Microsystems et NeXT Computer en 1994, est toujours à flots. Elle est partie intégrante de Rhapsody, version de développement de MacOS X, la nouvelle génération du système d’exploitation d’Apple. Rhapsody, reposant sur le même noyau Mach que NeXTSTEP, est un système de type UNIX du point de vue de ses fondations, donc permettant le contrôle de priorités par l’utilisateur. Au même titre que NeXTSTEP, Rhapsody est multiplateforme, fonctionnant indifféremment sur PC et sur MacIntosh. Cela signifie que ce système d’exploitation serait disponible pour tous les ordinateurs portables, une avancée par rapport à NeXTSTEP, qui était limité au monde PC. Malheureusement, pour des raisons obscures, MacOS X ne sera disponible que 292 Annexe Mesure et informatique sur MacIntosh, alors que bon nombre de développements du système ont été réalisés sur PC. En ce qui concerne le développement d’applications spécifiques au son et au signal, une correction du DriverKit est attendue qui permettra enfin lecture et enregistrement en simultané sans que l’on doive employer deux cartes audio. A.3.2 La généralisation du temps réel Le standard Posix, dont la vocation est l’uniformisation des interfaces des systèmes d’exploitations UNIX, vient de s’étendre au temps réel avec sa version 4 [Friesenham-1998]. Au niveau des systèmes particuliers, une version temps réel de Mach est désormais disponible [RTMach-1997], mais son intégration à des systèmes grand public n’a pas encore été réalisée. Une extension temps réel vient aussi d’apparaître pour Linux [Yodaiken_EtAl-1998]. A.3.3 Le son, parent pauvre du multimédia En 1998, la dernière édition de Visual C++, une référence en matière de développement sous Windows (95 et NT), ne proposait toujours aucune classe audio. Linux offrait, quant à lui, des outils de bas niveau [Tranter-1997]. Sur le plan du hardware, la généralisation des cartes audio de bonne qualité se confirme. Des convertisseurs de 20 bits de résolution ne sont plus rares. Les DSP se démocratisent, ainsi que les entrées / sorties numériques. De telles entrées / sorties permettent d’interposer un enregistreur numérique dans la chaîne de mesure, ce qui étend considérablement les possibilités de stockage, sans compromettre la qualité des mesures. Mais l’amélioration des performances est particulièrement lente comparée à la croissance vertigineuse de celles de cartes vidéo. Au niveau hardware, et bien davantage encore au niveau software, le son reste le parent pauvre du multimédia. A.3.4 L’informatique domaine public Openstep, disponible par ailleurs comme "surcouche" de WindowsNT, est à l’origine du projet GNUstep, soutenu par la Free Software Foundation qui vise à porter cette spécification sur Linux. Ce système d’exploitation pour PC et MacIntosh, entre autres, est le plus répandu des UNIX domaine public à l’heure 293 actuelle. Le but de GNUstep est fournir à Linux les environnements utilisateur et développeur conviviaux qui lui manquent. Par ailleurs, le portage du MusicKit pour Openstep est très avancé. En dehors de la phase de synthèse et d’acquisition, les traitements peuvent être effectués par des logiciels domaine public comme Octave, qui est un clone de Matlab. La visualisation peut être confiée à gnuplot, lui aussi domaine public. D’où la perspective d’un système de mesure presque intégralement domaine public, minimisant par ailleurs les coûts de développement, combinaison de Linux, Openstep, MusicKit, Octave et gnuplot, sous réserve que des drivers pour les cartes audio reconnues par le MusicKit soient disponibles sous Linux. Ce portage devrait être facilité par le fait que Linux et NeXTSTEP reposent l’un comme l’autre sur Mach.