Du nouveau pour Donkey Kong®

Composition automatique, structure, style et diversité.

Rémy Mouton, 18 rue des annelets 75019 Paris, mouton@filnet.fr

Résumé : Cet article, après un rappel commenté des résultats précédemment obtenus en matière de composition automatique tonale, présente une nouvelle méthode dans ce domaine, et l'automate DK, qui l'implémente. Les principales innovations y sont l'introduction d'une notion de style et d'un contrôle de la structure des pièces produites, tous deux paramétrables simplement et efficacement. Elles permettent une réflexion fructueuse et un choix motivé dans le compromis classique entre étendue et diversité.

1. Introduction

La composition automatique de musique tonale n'est pas un domaine souvent abordé par les chercheurs en Informatique, et ceci pour un certain nombre de raisons :

Un certain nombre de raisons m'ont poussé, au contraire, vers la composition automatique tonale :

L'automate DK (prononcer "déca". NB : cet automate n'emprunte rien d'autre que ses initiales au jeu Donkey Kong, marque déposée.) présenté au §3 du présent article est un développement hors de toute institution des recherches commencées en 1992 sous la direction de Frank Brown au Laboratoire Son et Vision de l'Université de Paris I (Centre St Charles). Ces recherches, bien que comprenant une grande partie d'automatisation de l'analyse musicale plus que de la composition, ont donné lieu précédemment à un certain nombre de réalisations dans le domaine de la composition automatique tonale, réalisations qui seront brièvement décrites et commentées dans le §2. Cette approche globale du phénomène tonal a permis de préciser certains problèmes d'une grande généralité, dont le "compromis étendue/diversité" discuté au §4. La conclusion, §5, ouvre des perspectives d'avenir et fournit des sujets de recherches futures.

2. Résultats précédents

2.1. Quelques automates du commerce

On trouve dans le commerce un bon nombre d'automates compositeurs, principalement réalisés sur des ordinateurs familiaux ou personnels. Le travail dont ils sont issus est malheureusement bien souvent lui aussi "familial" ou "personnel" : non publié ou inaccessible, il laisse ces programmes à l'état de "boîtes noires" d'où sort de la musique. Une utilisation particulière de ces logiciels (non examinée dans cet article) est, au sein de didacticiels de solfège, la génération automatique de dictées musicales. Bien souvent, dans ce cas, le programme se contente de tirer au hasard une courte série de durées et de hauteurs, avec un contrôle plus ou moins habile de la quantification des durées, de la tessiture, de l'échelle, et, au mieux, de la taille des intervalles successifs - il n'y a pas là composition à proprement parler.

En contraste avec l'insignifiance des générateurs de dictées, les logiciels dédiés exclusivement à la composition automatique qui survivent à la pression de sélection du commerce produisent souvent une musique étonnamment convaincante. Ceci est particulièrement vrai des logiciels qui composent dans un style de variété (comme Big Band, sur Atari, ou Rock Rapp 'n Roll, sur Macintosh) ; certainement parce que ceux qui abordent des styles classiques (comme C.P.U. Bach, de Sid Meyer, sur PC) pātissent de l'"effet de répertoire" : l'auditeur un peu cultivé connaît exhaustivement, même de manière imprécise, les oeuvres du compositeur que le logiciel prétend imiter, et peut éliminer la production de la machine comme ne faisant pas partie de la liste des pièces répertoriées. Cet effet est aggravé par le fait que, connaissant l'oeuvre intégralement, l'auditeur s'intéresse à l'interprétation plus qu'à la composition : les logiciels considérés ne rivalisent pas (encore) avec l'être humain dans ce domaine.

A l'usage, malheureusement, la production de ces logiciels paraît rapidement assez monotone. Lorsqu'ils sont configurables, les paramètres laissés à la maîtrise de l'utilisateur comprennent en général la possibilité de composer ou de modifier à la main certains éléments du morceau (orchestration, harmonies, présence ou absence de riffs, solos, etc., ...) et un paramètre global de "style" contrôlant essentiellement la rythmique ("slow rock", "march", "waltz", ..., sont des styles proposés par Big Band). Le petit nombre de configurations stylistiques disponibles et l'opacité des fichiers qui les décrivent ne permettent pas de dire si la monotonie constatée est due à l'algorithme de composition lui-même ou aux effets du compromis étendue/diversité (sur-restriction ou noyade, voir §4).

2.2. L'automate Kantor

L'automate Kantor [Brown 1994] est un des premiers à la fabrication desquels j'aie participé. Il ne tentait pas de résoudre les problèmes des logiciels du commerce, son but principal étant la production de musique en temps réel et en continu, mais il posa, au travers de circonstances parfois comiques, des questions déterminantes pour les recherches suivantes (et futures). Il a été réalisé en deux étapes : un prétraitement consistant en l'énumération des enchaînements d'accords autorisés par les traités d'écriture, et la composition en temps réel procédant par concaténation des paires d'accords précédemment calculées, rythmisation, ornementation de la mélodie, orchestration et production MIDI.

Les premières difficultés surgirent lorsque nous voulūmes nous assurer un minimum de contrôle de la forme des pièces produites. La contrainte du temps réel n'autorisant pas de procédés de tātonnement (backtracking ou autre), tout le contrôle du processus harmonique devait se faire en excluant ou en incluant certains des enchaînements d'accords répertoriés, au vu des circonstances locales lors de la composition. Pour permettre, par exemple, de reprendre en mineur un thème composé en majeur, nous contraignîmes Kantor à n'utiliser, dans la phase "composition du thème", que des enchaînements d'accords communs aux deux modes. Le contrôle de la longueur des phrases fut plus délicat : sitôt la longueur souhaitée atteinte, nous obligions l'automate à tirer une cadence parfaite dès qu'il le pouvait - la rythmisation venait ensuite corriger les variations de longueur dues aux quelques accords qu'il avait fallu pour atteindre cette cadence (remarquer qu'un tel procédé n'est pas étranger à l'accélération harmonique aux cadences, typique de la musique classique). Autoriser ou non les modulations n'était pas difficile, puisque, conformément aux traités, nous avions répertorié à part les enchaînements modulants, et que ceux-ci peuvent se produire après presque n'importe quel accord - mais nous n'avons pas pu contrôler la direction des modulations. Il n'était pas possible non plus de garantir la validité de l'enchaînement harmonique entre deux segments composés séparément ou entre les deux extrémités d'un même segment (pour la reprise du thème, par exemple) : les musiciens classiques se préoccupent peu, à vrai dire, de la disposition de l'enchaînement d'accords situé entre deux parties d'une pièce ou à la reprise - il n'empêche que, au moment même où nous exposions ces difficultés au cours d'une démonstration au 4e Congrès International sur la Signification Musicale, un accord de si majeur succéda brutalement à un accord de do majeur, provoquant l'hilarité générale... Quant à donner une unité ou un "sens" à la musique produite, en introduisant des notions comme "dispositions préférentielles des accords", "formules caractéristiques", "direction de la mélodie", "développement" ou "point-crise", il n'y fallait pas songer.

D'une manière générale, Kantor posait le problème d'un contrôle de la macroforme et du style sans contradiction avec la microforme. La définition d'une notion de style au niveau local de l'écriture n'est déjà pas simple : les traités l'évitent systématiquement, et l'on va voir au §2.3. que certains éléments d'une telle définition, indispensables et non controversés, donnent sérieusement à réfléchir au programmeur. Quant à la macroforme et à une notion de style plus globale, on ne dispose que de la description du style classique (au sens strict : Mozart et Haydn) de [Rosen], des analyses historiques pertinentes mais sans systématisme de l'évolution des formes de divers manuels ([Michels], [Hodeir], ...), et des conseils aux étudiants des manuels d'orchestration et de composition ([Falk], ...) et des professeurs d'écriture, toutes sources d'informations bien peu orientées vers l'Informatique, et bien promptes à négliger, en s'appuyant sur une culture et une habitude typiquement humaines, des détails cruciaux pour le programmeur.

2.3. Composition de phrases par un système à base de règles

Peu après avoir participé à la fabrication de Kantor, je réalisai un compositeur automatique à base de règles qui, en renonçant au temps réel et en s'autorisant des algorithmes de tātonnement, voulait permettre une réorganisation de la tāche de composition donnant la possibilité, sinon de définir proprement une notion aussi imprécise que le style, du moins de réconcilier structure et écriture. Les explosions combinatoires rencontrées lors de l'énumération des enchaînements d'accords pour Kantor dissuadaient d'aborder le problème en laissant les règles de composition et d'écriture en vrac : il fallait segmenter le travail. L'ordre des opérations choisi pour réaliser des phrases musicales fut le suivant : choix des paramètres globaux (mode rythmique, tonalité, ...), choix de la forme (nombre de mesures, type de cadence, courbe dirigeant la mélodie, figure rythmique principale, ...), choix du rythme, choix conjoint de la mélodie et des fonctions harmoniques, réalisation de l'harmonie (à 4 parties et suivant les règles des traités).

J'avais renoncé au temps réel, et, en fait, à tout contrôle brutal des temps de calcul : ce fut la faille par où s'engouffrèrent difficultés et questionnements. Pour une phrase musicale de quelques mesures, les temps de calcul nécessaires lors de la réalisation de l'harmonie s'échelonnent de quelques dixièmes de seconde, dans 95% des cas, à plusieurs heures (ou peut-être plusieurs jours...), pour déclarer un échec dans les cas rares, mais présents, où deux ou plusieurs règles appartenant à des stades différents de la réalisation entrent en contradiction, par exemple, si la mélodie choisie ne peut pas constituer la cadence voulue pour cause de parallélismes indus, ou bien, s'il n'est pas possible de préparer la 7me de tel ou tel accord pour cause d'intervalle trop grand ou de croisement mal venu entre les voix, etc.. Certaines de ces contradictions ont été perçues au cours des siècles par les élèves harmonistes, et consignées dans les traités sous forme d'exceptions aux règles : "la 7me de dominante peut monter si la basse de l'accord +6 monte d'un degré", "des octaves consécutives par mouvement contraire sont autorisées dans la cadence parfaite", etc.. Mais même après deux années d'utilisation et d'enregistrement des exceptions, je n'ai pas réussi à éliminer totalement les cas d'échec de mon automate compositeur. En fait, la solution est donnée par certaines formulations des traités, comme "les tessitures peuvent êtres étendues d'une note en cas de besoin" : il faudrait introduire une hiérarchie entre les règles, et des (méta-)règles du genre "... sauf en cas d'impossibilité ou de contradiction avec une règle plus forte".

Chacun sait, hélas, que de telles méta-règles posent des problèmes d'Intelligence Artificielle qui ne sont pas près d'être résolus, problèmes de complexité (énumérer toutes les possibilités pour conclure à un échec est, en général, bien plus long que trouver une solution si elle existe), et problèmes d'IA fondamentale (quelle est la règle, quelles sont les règles responsables d'un échec ?). D'un point de vue musicologique, cette difficulté renvoie une fois de plus à la notion de style : d'une part, la hiérarchie des règles d'écriture ou même de composition se modifie d'époque en époque et de compositeur en compositeur (par exemple, Bach préfère souvent la complétude des accords à la résolution des sensibles, alors que Mozart réagit en sens inverse), et d'autre part, les cas de transgressions de règles pour cause de contradiction entre une exigence stylistique et une tradition donnent souvent lieu à la création de "figures" caractéristiques d'un style ou d'un compositeur.

3. L'automate DK

3.1. Buts

Les interrogations quant aux interactions entre structure et écriture, posées par Kantor et approfondies par l'automate à base de règles qui l'avait suivi, ayant abouti, en dernier ressort, à la question de la définition pratique d'une notion de style, je décidai de m'y concentrer plus particulièrement. Afin de ne pas tomber dans les problèmes d'Intelligence Artificielle fondamentale précédemment évoqués, mais aussi, dans le but de pouvoir comparer les résultats de mes travaux avec des logiciels existants, et enfin, dans l'espoir d'une éventuelle utilisation "industrielle" du produit de mes recherches, je décidai de mettre momentanément de côté les traités d'écriture et de réaliser un automate composant dans un style (ou des styles) de variété.

Le but était donc de réaliser un automate compositeur, qui, sans se préoccuper exagérément de la disposition des accords ou de la résolution des sensibles, serait capable

3.2. Méthodes

La méthode la plus simple pour inventer automatiquement des objets complexes semble être de piocher aléatoirement les divers composantes ou paramètres de ces objets dans des tables constituées à l'avance. Un tel procédé présente l'avantage de ne pas réintroduire de système de règles, tout en permettant de maîtriser simplement les possibilités pour chacun des paramètres en question. Une autre caractéristique de cette méthode est d'obliger le programmeur à définir les composantes de l'objet final de manière à ce qu'elles soient en grande partie indépendantes - de manière à ce que le contenu utilisable d'une des tables dépende aussi peu que possible des éléments choisis dans les autres tables. Cette obligation peut être vue comme un inconvénient (manque de souplesse) ou comme un avantage (obligation de formaliser correctement le problème à traiter). On va voir qu'elle permet de dégager nettement un certain nombre d'interrogations fondamentales.

Il n'est évidemment pas possible de tabuler tous les paramètres nécessaires à la composition d'un morceau de musique. Un fichier de configuration stylistique de l'automate DK contient les tables suivantes :

L'unité d'une pièce est obtenue, lors de la composition, en constituant, en guise de pré-traitement, une table de figures, choisies parmi les éléments autorisés par le style en cours, mais spécifiques à cette pièce. Par exemple, une formule d'accompagnement de référence est choisie pour les carrures de type X et une autre (éventuellement identique) pour les carrures Y. Chaque demi-mesure portera la formule d'accompagnement caractéristique du type de carrure dont elle fait partie. De la même manière, deux orchestrations seulement seront utilisées dans la pièce, avec un changement éventuel à chaque carrure (l'orchestration n'est pas liée au type de carrure, de manière à ce qu'une reprise puisse bénéficier d'une orchestration différente). Quatre figures proprement dites, gouvernant rythme et mélodie pour une mesure, sont choisies et utilisées de la manière suivante :

Dans le fichier de style, une description de l'utilisation de ces figures est donnée en association avec chaque forme. Par exemple, une forme XX (deux carrures...) pourra correspondre à un profil AABAaaba (...= 8 mesures), signifiant d'utiliser la première figure pour chaque occurrence d'un A, la seconde figure aux occurrences de B, une variation de la première figure pour un a et une variation de la seconde pour un b. Les formules rythmiques sont variées en utilisant la liste de formules proches fournie pour chacune dans la définition du style ; les lignes mélodiques sont soumises à des manipulations simples (symétries, homothéties, copie de la première moitié sur la seconde, ...). La pièce entière est réalisée en respectant la forme choisie et les figures qu'elle demande, mélodie et accompagnement étant réalisés dans les parcours harmoniques choisis pour les carrures X et Y.

3.3. Résultats

L'automate DK compose, pour peu qu'on lui fournisse des fichiers de définition de style adéquats, des morceaux tout à fait capables de rivaliser avec ceux produits par les compositeurs automatiques du commerce. L'utilisation de figures en petit nombre, et de formes bien choisies (comprenant un nombre vraisemblable de répétitions ou de variations de carrures ou de figures) réussit bel et bien à donner une personnalité à chaque pièce, et nombre d'entre elles ne déshonoreraient pas certains artistes de variété. L'absence de percussions ne permet pas encore de concurrencer les rockers, mais ce manque devrait être comblé rapidement. Le temps de calcul pour composer une pièce est de l'ordre de quelques dixièmes de seconde ; la mémoire nécessaire est de quelques kilo-octets, ce qui rend DK tout à fait utilisable pour réaliser en direct la musique de jeux vidéo. DK produit en outre des MIDIfiles, ainsi que des fichiers dans un format propre (mais lisible et éditable comme du texte) lui permettant de reprendre et de modifier une pièce précédemment composée.

Certaines modifications d'une pièce déjà composée ont été réalisées sans difficultés, vue la technique de composition : changer l'harmonie, par exemple, consiste à choisir de nouveaux parcours pour les carrures X et Y, et à réaliser une mélodie et un accompagnement dans ces nouvelles harmonies, sans changer les figures rythmico-mélodiques de base ni l'orchestration. Ceci fonctionne très bien, et les différentes versions d'une pièce obtenues en changeant de cette manière harmonies, accompagnement et orchestration sont facilement reconnaissables. De la même manière, l'utilisateur peut réclamer à DK de changer les lignes guidant la mélodie sans altérer le reste de la pièce - la culture occidentale tonale, fondée sur la reconnaissance des hauteurs, fait qu'évidemment la parenté est plus difficile à établir dans ce cas-là.

Les changements de mode rythmique ont été réalisés ainsi : chaque formule rythmique de la pièce est remplacée par la formule la plus proche contenue dans la table des rythmes du nouveau mode, la proximité étant évaluée de la manière suivante : ( Deux formules identiques sont au plus près (par exemple, trois croches en ternaire et un triolet en binaire) ; de même pour deux formules dont l'une est citée dans la liste des variations de l'autre ; ( La distance entre deux formules augmente avec la différence de leurs nombres de notes ; elle diminue lorsque les instants où les notes sont attaquées se correspondent. Sur demande de changer le mode rythmique d'un morceau, DK approxime chaque formule rythmique et choisit un autre accompagnement, puis recalcule la pièce en utilisant la même forme, les mêmes harmonies, les mêmes courbes mélodiques et les mêmes orchestrations. Le résultat est en général très reconnaissable, dès que le style permet des approximations rythmiques raisonnables quant au nombre de notes de chaque formule.

Une fois programmés les changements de mode rythmique, il n'a pas été difficile de proposer un changement complet de style pour une pièce déjà calculée. Les rythmes sont adaptés, les courbes conservées, et les autres éléments conservés s'ils sont présents dans le nouveau style et recalculés sinon. Cette possibilité de changer l'"humeur" d'une pièce, sans empêcher sa reconnaissance, est assez spectaculaire et donne des perspectives supplémentaires pour les jeux vidéo : l'interactivité entre musique et événements du jeu devient vraiment significative.

Cliquez ici pour télécharger l'exécutable pour Windows. Ecrivez-moi pour obtenir plus de documentation.

4. Le compromis étendue/diversité

Le compromis étendue/diversité, qui avait déjà pointé son nez dans Kantor, apparut une première fois dans la construction de DK lorsqu'il s'agit de choisir une probabilité pour les ornements mélodiques, et notamment pour les appoggiatures. Il se révéla fondamental lorsque je le rencontrai à nouveau en écrivant des fichiers de styles.

L'idée d'utiliser des tables dans lesquelles l'automate pioche aléatoirement pour composer paraît, au premier abord, présenter l'inconvénient de ne pas proposer assez d'étendue : le nombre de pièces possibles n'est finalement que le produit des nombres d'éléments contenus dans les différentes tables (pour les lignes mélodiques, mettons que l'on a tabulé les formes simples, montée, descente, V et ^). Il paraît donc sensé de vouloir étendre ces tables le plus qu'on peut, par exemple, en fusionnant plusieurs fichiers de styles constitués séparément. Pour les probabilités d'ornements mélodiques, cette envie d'étendue se manifeste de la manière suivante : plutôt que de choisir une probabilité parmi {jamais, toujours, dans la moitié des cas}, tirons au hasard un réel entre 0 et 100%. Lors de la fabrication de Kantor, l'idée était : pour obtenir plus de morceaux, recensons plus d'accords et plus d'enchaînements entre ces accords.

Malheureusement, ce procédé "plus d'éléments pour plus d'ensembles" a ses effets pervers. La logique quantique, qui sert à décrire les interactions entre les fonctions d'onde de particules élémentaires, donne une bonne analyse de la situation. Il faut, à ce stade, rappeler ce qu'est la logique quantique.

En logique classique, le calcul des combinaisons de valeurs "vrai" et "faux" est analogue à un calcul concernant des parties d'un ensemble, qui se représente sur un schéma appelé "diagramme de Venn" (fig. 1).

En logique quantique, le calcul des propositions se fait, non plus sur des parties d'un ensemble, mais sur des sous-espaces d'un espace de Hilbert (fig. 2).

L'opération entre espaces vectoriels qui correspond à l'opérateur logique "ou" est dans ce cas la somme de Hilbert (somme vectorielle). Dans l'exemple de la figure 2, la proposition "A ou B" serait représentée, non pas par l'union des deux plans A et B, mais par l'espace vectoriel engendré par cette union, en l'occurrence l'espace de dimension 3 qui les contient. L'opération réalisée sur les probabilités d'ornements mélodiques est bien de cette nature : à "0, 50 ou 100%" on a substitué "0, 50, 100% ou une combinaison linéaire des trois".

L'opérateur "ou" quantique fait apparaître, lors du calcul, une quantité de vecteurs qui n'étaient pas contenus dans l'union des propositions de départ. Par exemple, pour un graphiste sur ordinateur (utilisant donc la synthèse additive des couleurs), la proposition "cette teinte peut être représentée avec du rouge ou du vert (ou inclusif)" est vraie non seulement pour le rouge et le vert donnés par les deux propositions dont elle est le ou, "cette teinte peut être représentée avec du rouge (resp. du vert)", mais aussi pour toutes les teintes d'orangé et de jaune.

Cette apparition d'objets imprévus paraît bien arranger l'étendue de nos automates musicaux. Malheureusement, son effet pervers est le suivant : dans le cas général, les espaces A et B ont chacun une dimension inférieure à leur somme A+B ; ou encore, la probabilité de tomber dans A ou dans B si l'on pioche dans A+B est nulle. En conséquence de quoi, le gain d'étendue se paie d'une perte de diversité. Une couleur dont les deux composantes rouge et verte sont tirées au hasard est (presque) toujours orange ou jaune, et (presque) jamais rouge ou verte. Si l'on réunit deux fichiers de style, DK ne produit (presque) plus de pièces appartenant à l'un ou l'autre style - à la place, il produit des pièces qui sont dans un mélange des deux styles. Possédant des accords de 7me et des accords parfaits, Kantor utilisait les uns et les autres à tort et à travers et pouvait enchaîner une cadence parfaite sans 7me de dominante, pré-baroque, à un accord de 7me et quinte diminuée, romantique.

Finalement, la méthode de spécification des possibles par tabulation offre l'avantage de pouvoir choisir où l'on veut placer le résultat dans le compromis étendue/diversité : peu de données dans chaque table donnent, si l'on choisit bien ces données, des pièces d'un style affirmé, mais en relativement petit nombre (sur-restriction). Beaucoup de données dans chaque table produisent un grand nombre de pièces, pour la plupart sans personnalité (les styles sont noyés dans leur réunion). Quant à l'automate DK, qu'on se rassure : deux ou trois éléments par table suffisent, grāce aux "petites perturbations" introduites sur les lignes mélodiques et grāce à la possibilité de réclamer dans chaque forme des variations des figures de base, à produire une grande quantité de pièces différentes.

5. Conclusion

Des contacts ont été pris qui mèneront à terme, je l'espère, à une utilisation industrielle de l'automate DK, pour l'amélioration de la musique des jeux vidéo. Mais parallèlement à cela, il ouvre un certain nombre de pistes pour des recherches futures :

Références

[Baroni 1988] M. Baroni, R. Dalmonte, C. Jacoboni, Relations entre musique et poésie dans les airs de Giovanni Legrenzi, in "La musique et les sciences cognitives", P. Mardaga, éditeur, 1988.
[Brown 1994] F. Brown, R. Mouton, L'automate musical en temps réel Kantor, premières Journées d'Informatique Musicale, Bordeaux, Avril 1994.
[Courtot 1995] F. Courtot, Vers un éditeur de figures, secondes Journées d'Informatique Musicale, Paris, Avril 1995.
[Delmas 1994] Y. Delmas-Rigoutsos, Introduction à la logique quantique, Séminaire Mathématiques et Philosophie, Ecole Normale Supérieure, Paris, 1994.
[Ebcioglu 1992] K. Ebcioglu, An Expert System for Harmonizing Chorales in the Style of Bach, in Understanding Music with A.I., AAAI Press / MIT Press, 1992.
[Falk] J. Falk, Traité de composition, éd. Leduc.
[Favory 1995] J. Favory, Les Unités Sémiotiques Temporelles, secondes Journées d'Informatique Musicale, Paris, Avril 1995.
[Hodeir] A. Hodeir, Les formes de la musique, Que sais-je ? n°478.
[Michels] U. Michels, Guide illustré de la musique, éd. Fayard.
[Mouton 1995] R. Mouton, Outils intelligents pour les musicologues, thèse de doctorat, Université du Maine, Le Mans, Octobre 1995.
[Rosen] C. Rosen, Le style classique, collection Idées Gallimard.