Maitrise d'informatique


  1. Introduction

  2.  

     

    Le son reste encore le parent pauvre de l'informatique, comparé au graphisme notamment. En général, les ordinateurs sont mal ou non équipés pour le son. Les outils logiciels aussi font défaut, en particulier pour la programmation, puisqu'il existe de nombreuses bibliothèques graphiques, comme X11, QT, ou TK, mais une seule bibliothèque sonore à ma connaissance sous Unix. Elle se nomme AudioFile (AUDIOFILE, 1993), et repose sur une architecture complexe client / serveur, semblable à celle de X11. Or, plusieurs domaines de recherche en informatique nécessitent des outils sonores simples pour s'épanouir, comme la synthèse sonore, la reconnaissance vocale, ou l'informatique musicale.

    Le département d'informatique de l'université Paris 8 ne possède pas de bibliothèque sonore. L'un des objectifs de ce travail est de proposer aux étudiants de ce département des outils qui leur permettent de gérer et d'analyser du son simplement dans leurs programmes en langage C ou C++. Matériellement, nos ordinateurs alpha du " bocal " (notre salle d'informatique) sont déjà aptes à gérer du son, puisqu'ils sont tous équipés d'une carte son avec une entrée et une sortie audio, d'un petit haut-parleur et des périphériques systèmes nécessaires (TRANTER 1999). Cependant, lorsque l'on souhaite programmer du son sur ces machines, deux difficultés surgissent : la première réside dans l'appel de primitives assez absconses pour la configuration la carte son, et la seconde dans l'absence de format standard pour les fichiers audionumériques.

    Afin de parer à ces difficultés, cette maîtrise comprend deux bibliothèques, kwav et kfft, un éditeur graphique de fichiers audio, kediteur, ainsi que ce doument qui détaille l'utilisation et le fonctionnement de ces programmes. L'éditeur de sons permet à la fois de démontrer les potentialités de ces bibliothèques, et de témoigner de leur bon fonctionnement lors des opérations de maintenance. Les bibliothèques sont en libre-service à l'université depuis le mois de février 2000. Elles sont documentées par un manuel en ligne (taper man kwav sous shell), et les administrateurs possèdent une version complète pour réinstaller, en cas de besoin, tout ou partie des bibliothèques. Quelques étudiants les ont d'ailleurs utilisées ce semestre pour leurs projets de licence.

    Comme l'expliquent Brian KERNIGHAN et Denis RITCHIE, les principaux créateurs du C, " les fonctions partitionnent les gros traitements en tâches plus petites, et elles permettent de construire des programmes à partir de briques déjà écrites, au lieu de tout recommencer à zéro. Les fonctions bien conçues cachent les détails de leur fonctionnement aux parties du programme qui n'ont pas besoin de les connaître, ce qui clarifie l'ensemble et facilite les modifications ultérieures. " (KERNIGHAN et RITCHIE 1997, p. 67). Dans ce sens, le développement d'une bibliothèque constitue un exercice difficile, car il faut dépasser ses propres réflexes de programmation pour imaginer les besoins des autres programmeurs. Une attention particulière a donc été portée à la conception de l'ensemble : traitements à regrouper, noms des fonctions et des variables, pertinence des arguments, des valeurs de retour, et de leurs types.