Quelques notes sur mon travail actuel:
l´implémentation de GéoMaestro sous Squeak

Stéphane Rollandin
hepta@zogotounga.net
le 14 février 2003



I. GéoMaestro


1) principes

GéoMaestro est composé de deux systèmes de compositions intégrés.

Le premier, le plus original, est celui qui donne son nom au programme. Il s´agit d´une sorte de notation musicale à deux dimensions définissant une composition statique, couplée à un ensemble de structure géométriques servant de supports de projections. La composition musicale se dévelope à partir de la composition statique lorsqu´on parcourt les supports de projection.

Pour une introduction détaillée, voyez la page suivante (en anglais):
Composing with GeoMaestro


Le deuxième système est un mixeur intelligent permettant d´assembler différents types de données musicales (notamment fichiers MIDI, composition CSound et fichiers audios) de façon intuitive, grace à une interface graphique basée sur un paradigme expliqué au début de la page suivante (en anglais toujours):
GeoMaestro: the Compositor tool

...voyez aussi cet article paru en été 2001 dans le Csound Magazine:
GeoMaestro & Csound: an introduction to the Compositor tool


2) implémentation actuelle

GéoMaestro est distribué publiquement en tant qu´extension de KeyKit, un language de haut niveau, interprété, spécialisé pour le dévelopement d´applications MIDI.

L´adresse WWW du site est la suivante:
http://www.zogotounga.net/GM/GM0.html

Il est distribué sous license GPL (c´est un logiciel libre), et fonctionne sous Windows, Linux et MacOS. Sa documentation est disponible en anglais à sur mon site (adresse ci-dessus), et, partiellement, en français à sur le site de Jean Argenty.

C´est un système expérimental, relativement facile à installer mais difficile à utiliser pour qui n´est pas un programmeur. Quelques personnes courageuses l´utilisent cependant. J´ai aussi eu l´honneur d´être invité à Tokyo durant l´été 2002 pour le présenter dans le cadre d´une exposition de logiciels innovants.

Les premiers résultats musicaux que j´ai obtenu en mettant au clair les idées de GéoMaestro, de très courtes compositions, ont été regroupées avec des commentaires et des illustrations sur cette page, qui fait partie de la documentation. Plus ambitieux, le CD "onze variations pour piano" est un exercice de style: toutes les compositions y sont issues de la figure ci-dessous, suivant des algorithmes plus ou moins simples mais tous très faciles à programmer sous GéoMaestro. La diversité des résultats montre le potentiel de cette approche. Quand à la valeur musicale des morceaux, l´auditeur en reste juge, mais je suis assez content de dérive minérale et de la berceuse à 36 mains.


la suite de points à l´origine des variations pour piano


3) limitations

KeyKit est un excellent langage pour manipuler les données MIDI. Il ne dispose cependant que de capacités graphiques très limitées, et il est également particulièrement limité en ce qui concerne la gestion des données texte.

D´autre part, ce n´est pas un logiciel libre (il appartient à AT&T). Son dévelopement est entièrement tributaire de l´activité de son créateur, Tim Thompson, qui de surcroît ne possède pas les droits sur le programme. L´avenir de KeyKit n´est donc malheureusement pas solidement assuré.


4) perspectives

Mon travail présent est une phase d´expansion et de consolidation de GéoMaestro. Elle passe par sa réimplémentation complète sous Squeak, un très puissant système multimédia, libre, multi-plateforme et 100% objet.

L´interface utilisateur va s´en trouver considérablement embellie et simplifiée. Les potentialités du programme vont largement s´accroitre, du fait de la structure objet et de l´environnement Smalltalk dans lequel il va se déveloper.



II. L´environnement de dévelopement: Squeak Smalltalk

Smalltalk est l´un des premiers langages objets, et l´un des plus purs. Bien que d´une utilisation plutôt confidentielle, essentiellement académique, c´est l´un des environnements de programmation les plus puissants et confortables qui soit.

Squeak est un Smalltalk libre, très activement dévelopé par un large groupe international de programmeurs de très haut niveau. Il est particulièrement dédié au multimédia, à la recherche et à l´enseignement (scolaire ou universitaire).

Son interface graphique, Morphic, n´as pas d´équivalent. Elle permet des interactions très fines avec tous les objets du système, et simplifie considérablement le dévelopement de GéoMaestro.



III. Le but recherché: un système de composition audio en temps différé

L´objectif à terme est double, reprenant la double optique de GéoMaestro:
Par "données musicales", il faut entendre l´acceptation la plus générale possible. L´un des objectifs du système est de gérer à partir d´une interface unique, mais extensible et paramétrable, l´opération de nombreux outils différents, comme aujourd´hui Csound, KeyKit et TiMidity et plus tard peut-être PD, Common Music et plus généralement n´importe quel outil de composition fonctionnant en mode batch ou opérable par TCP/IP.

L´ambition du système de mixage est donc d´être un cadre unique qui prenne en charge la gestion des nombreux scripts, fichiers sources et fichiers temporaires requis pour travailler sur une composition unique avec différents programmes.

C´est dans ce cadre que prendront place les outils que je développe par ailleurs sous Emacs pour faciliter le travail avec Csound: Csound-X


Evidemment ces objectifs sont sujets à évolution, particulièrement si je venais à travailler en collaboration avec d´autres personnes.


IV. Stade actuel de dévelopement

Seule la partie mixeur a dépassé l´état d´ébauche, et c´est donc celle que je présente brièvement dans la suite.

1) quelques illustrations

Voici une capture d´écran que je vous invite à visiter informellement:




Le petit diagramme composé de boites reliées par des flèches est une très simple composition. On l´évalue à partir de sa boite source (celle de gauche), en faisant apparaitre son menu contextuel et en sélectionnant "EVALUATE":



Cela a pour effet de créer une partition Csound en assemblant un fichier *.sco existant (on le voit dans la fenêtre ocre en bas de l´écran) et une partition calculée par la boite "MusicalPhrase -> CsoundScore" qui interprète les notes des boites jaunes vif et l´envelope de la boite jaune pâle:



Ainsi, il est possible de changer la forme de l´envelope et d´écouter immédiatement le résultat au niveau de la composition Csound en évaluant la boite source. De même, on peut aussi éditer la partition csound du haut, changer les notes des boites jaunes, ou encore le paramétrage de la boite blanche qui opère la conversions. Toutes ces manipulations, bien que très différentes dans leur nature, sont accessibles à partir d´une interface unique: inutile de jongler entre les fichiers de script et les options de ligne de commande.

L´essentiel ici est qu´il est très facile d´installer de nouveaux types de boites au sein du système.

Le menu de gauche propose une liste des boites déjà implémentées:



2) exemple d´extension: boîte lambda

Voici un exemple où l´implémentation sous Squeak est déjà plus puissante que la version originale de GéoMaestro:



Il s´agit d´une boite lambda, c´est-à-dire une fonction d´un ou plusieurs paramètres, capable d´opérer un mixage "abstrait" sur des boites arguments. L´opération est définie par un graphe de mixage interne à la boite lambda, qui ici est très bête: il se contente de répéter trois fois un élément musical dans le même temps qu´il en répète deux fois un autre.

Les boites arguments (ou paramètres) sont identifiées par le moyen de vignettes colorées. On voit ici que l´élément répété trois fois est identifié par une vignette rouge, qui dans la boite lambda est liée à une autre vignette, laquelle se référe finalement à la valeur d´une des boites jaunes, celle de 5 notes. De même, la phrase de 12 notes sera donc répété deux fois.

Il suffit de déplacer les vignettes des boites jaunes vers d´autres boites pour changer les arguments de la boite lambda; on peut aussi changer les vignettes dans la boite lambda elle-même.