previous up next
Résumé

Nous présentons un environnement intégré pour la composition et la synthèse musicale sur ordinateur. L'architecture que nous proposons combine dans un seul système la synthèse en temps-réel, une gestion de la memoire dynamique avec un ramasse-miettes, le traitement interactif d'événements, et le dialogue avec l'utilisateur à travers un interprète Scheme. L'environnement est entièrement écrit dans le langage de programmation Java et peut être utilisé dans des applications réparties. Trois aspects du domaine de la musique sur ordinateur - composition, synthèse et interactivité - sont intégrés de manière intime dans cet environnement. Les concepts et les structures décrits dans cette thèse peuvent être étendus et appliqués plus généralement aux environnements multimédia.

L'interprète Scheme embarqué offre un environnement interactif de programmation. La plate-forme Java sous-jacente promeut l'utilisation transparente des objets fonctionnels dans le système. Ces objets fonctionnels, que nous appelons programmes, sont utilisés pour décrire le comportement complexe du système. Les événements, par exemple, sont composés d'un temps d'évaluation, d'un programme et des arguments du programme. Au temps indiqué le programme est appliqué avec ses arguments. Ainsi, l'interprète permet à l'utilisateur d'exprimer et modifier les actions du système dans un langage de haut-niveau.

Nous avons nommé l'unité de base de la composition une activité. Elle est est composée d'une position dans le temps, d'une durée, d'un programme de début et d'un programme de fin. Les deux programmes décrivent respectivement les actions à prendre pour commencer et terminer cette activité. L'organisation d'activités dans le temps est prise en charge par une structure appelée pattern. Les patterns regroupent un ensemble d'activités ainsi que les relations temporelles entre elles. Ces relations sont vérifiées après chaque manipulation de temps et une réorganisation des positions et des durées des activités peut en résulter. Cette stratégie se rapproche des techniques de la propagation de contraintes que l'on trouve dans la construction des interfaces graphiques. Les motifs permettent d'insérer un pattern à plusieurs reprises dans une composition. L'organisation des activités de durée inconnue au moment de la composition peut être réalisée à l'aide des operateurs d'intervalles basés sur des relations causales.

Les patterns et les motifs permettent la structuration d'une pièce de manière hiérarchique. A chaque niveau de cette hiérarchie nous attachons un axe de temps local. L'axe de temps d'un niveau est projeté sur l'axe du niveau supérieur moyennant un modèle de temps. Ces modèles permettent la déformation du temps local.

L'objet unité pour la génération de son est appelé un processus de synthèse. Il est créé en utilisant une stratégie de méta-classes : une technique de synthèse crée une nouvelle voix de synthèse, la voix de synthèse crée un nouveau processus de synthèse. L'information temporelle codée dans la partition est rendu disposible aux processus de synthèse. Cette information est regroupée dans un objet appelé contexte de temps. Il assure, entre autre, la conversion du temps indiqué par le synthétiseur dans le temps local d'un processus de synthèse.

L'interactivité du système est rendue possible grâce à la gestion concurrente de la synthèse en temps-réel, du traitement des événements et de l'entrée de données textuelles dans l'interprète Scheme. Dans cette thèse nous évaluons si un environnement dynamique, tel que nous le présentons, intègrant un ramasse-miettes, peut garantir une exécution en temps-réel ``dur.'' Il est difficile de répondre à cette question seulement à partir des discussions qu'on trouve dans la littérature. En revanche, nous introduisons une contrainte imposée sur les processus de synthèse qui réduit l'interaction entre le ramasse-miettes et la tâche temps-réel au problème du scheduling de tâches concurrentes.

La thèse est divisée en deux parties : la première présente l'état de l'art, la deuxième présente notre travail. La partie concernant l'état de l'art contient les chapitres suivants :

Chapitre 1
discute les techniques de programmation devenues standard, en particulier les notion de temps-réel dur et douce, la gestion de la mémoire dynamique, les ramasse-miettes, et la gestion de multiple tâches.

Chapitre 2
donne une brève introduction au domaine de la musique sur ordinateur. Nous abordons le sujet de la synthèse sonore et la composition assistée par ordinateur.

Chapitre 3
détaille en plus la question de l'organisation temporelle dans la composition. Nous abordons le problème de l'organisation des éléments discrets et l'utilisation des fonctions continues.

La partie concernant le travail effectué contient les chapitres suivants :

Chapitre 4
présente les bases de l'architecture de l'environnement que nous proposons dans ce travail. En particulier, nous argumentons le choix des langages, les concepts de bases tels que les événements, les programmes et les processus de synthèse. Nous donnons une description formelle de l'architecture.

Chapitre 5
détaille la réalisation de l'architecture ainsi que les classes de base pour la synthèse sonore. Nous montrons également comment l'environnement peut être utilisé dans une application répartie.

Chapitre 6
introduit les structures pour l'organisation temporelle d'une composition. Nous expliquons l'utilisation des patterns, motifs, modèles de temps et contextes de temps.

Chapitre 7
analyse le comportement temps réel du système. En particulier, nous estimons l'influence du ramasse-miettes sur le comportement de la tâche temps réel.

previous up next