Vous êtes sur la page 1sur 9

Un algorithme de composition musicale

Table des mati` eres


1 Pr esentation 2 Le compositeur 2.1 Le code PMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Structures de donn ees utilis ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Lalgorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Cha nes de Markov 3.1 Mod elisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Nombre moyen de mesures g en er ees par le compositeur . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Etude dun exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 R esultats 5 Am eliorations possibles 6 Applications pratiques 7 Bibliographie et sites Internet 2 2 2 3 4 5 5 5 6 6 6 6 7

Pr esentation

Lid ee de ce TIPE mest venue dun algorithme de g en eration de texte ` a partir dune base de livres. Le concept est le suivant : ` a partir dun mot m de cette base, lalgorithme ache un mot m au hasard suivant m dans lun des livres, puis fait de m eme en partant de m . De proche en proche, une phrase est ecrite. Ainsi construite, il y a peu de risques quelle gure dans lun des livres. Jai voulu appliquer cet algorithme ` a une base de partitions de musique, o` u les mots seraient les mesures des partitions, cest-` a-dire des ensembles de notes de musique. Le processus se stabilise sous certaines conditions, fournissant alors une partition nouvelle. Apr` es avoir d etaill e le fonctionnement de ce compositeur, on tentera dobtenir des informations sur cette partition limite.

2
2.1

Le compositeur
Le code PMX

Le PMX (Preprocessor for MusiXTeX) est un langage permettant d editer des partitions. Il sagit ici de partitions de piano, compos ees de plusieurs syst` emes de deux lignes : une pour la main droite (celle du haut) et une pour la main gauche. Ces lignes sont elles-m emes constitu ees de mesures. Par exemple, pour cette partition :

Le code PMX correspondant est le suivant : 2 1 4 4 4 4 0 0 1 1 29 0.085 Piano bt ./ It120ipipi Tt Au clair de la lune c03 | g0+ | c2- g | c0 | d | f- | d+ | g- / c44 c c d | e44 r d r | c44 e d d | c44 r r r | d44 d d d | a43 r a r | d44 c b a | g43 r r r / Ici lint er et se porte sur les deux derni` eres lignes, les autres ne servant qu` a donner des indications de style. Chaque mot repr esente une note, chaque barre verticale une s eparation entre deux mesures. Dans le code, la ligne du bas correspond ` a la main droite. On peut compiler un chier .pmx pour obtenir un chier .pdf comportant la partition, ainsi quun chier .mid, permettant de l ecouter.

2.2

Structures de donn ees utilis ees

f1.pmx

based.txt init mesures.c f2.pmx . . . compo.c f.pmx

baseg.txt

Base de partitions

Liste brute de mesures Sch ema principal

Partition g en er ee

On repr esente ici les mesures par des barres de couleur. Un premier programme cod e en C nomm e init mesures.c va, ` a partir dune liste de chiers .pmx, r ecup erer toutes les mesures de la partie de la main droite (en conservant leur ordre) et les ins erer dans un chier based.txt (de m eme pour celles de la main gauche, dans baseg.txt). ` partir de cette liste brute de mesures, un deuxi` A eme programme, compo.c, va cr eer une nouvelle partition. Au fur et ` a mesure de la composition, on veillera ` a ce que pour chaque mesure de la main droite, la main gauche qui lui est associ ee dans la nouvelle partition soit la m eme que dans la partition initiale. Do` u lint er et de mettre les mesures de la main gauche et de la main droite dans deux bases distinctes. Pour que la composition soit eectu ee, il faut cr eer au pr ealable des classes de mesures, qui pour une note donn ee nous permettent de savoir toutes les mesures commen cant par celle-ci. Note

Code PMX de la mesure

...

2 Classes de mesures Et pour chaque mesure, il faut avoir acc` es ` a la premi` ere note de la mesure qui la suit dans la partition initiale ; sauf pour la derni` ere mesure dune partition, pour laquelle on choisit dattribuer, comme premi` ere note de la mesure qui la suit, une note appel ee note stop. Cette note mettra n ` a lalgorithme, do` u son nom. 3

2.3

Lalgorithme

` partir dune note noteInitiale re A cue en param` etre, on applique lalgorithme suivant :

Initialisation note noteInitiale

Recherche dune mesure au hasard commen cant par note Tant quon nest pas sur la note stop Achage du code PMX correspondant

note premi` ere note de la mesure suivante dans la partition originale Sch ema du fonctionnement de lalgorithme Sur un exemple, cela donne : Code PMX de la mesure Premi` ere note

0 Premi` ere note de la mesure suivante

...

n Note stop

3
3.1

Cha nes de Markov


Mod elisation

Le syst` eme permettant de composer des partitions peut etre repr esent e par une cha ne de Markov dordre 1, ` a temps discret, d enie sur lespace d etats ni des premi` eres notes des mesures, et homog` ene dans le temps. Lunique etat dabsorption de cette cha ne est la note stop.

3.2

Nombre moyen de mesures g en er ees par le compositeur

Soit M = [mi,j ] la matrice telle que mi,j est egal ` a la probabilit e de passer dune mesure commen cant par la note ni ` a une autre commen cant par la note nj . Cest la matrice de transition. On peut en r eordonner la base, pour obtenir une matrice de transition dite de forme canonique. n1 n1 n2 0.1 n2 0.2 n3 0.3 . . . 0 0 1 . . . 0 0 0 1 0 0 0 n4 0.4 n5 0 I 0

M=

n3 n4 n5

R Q

Matrice de transition, sous forme canonique a ` droite Soit N la matrice fondamentale associ ee, donn ee par la relation :
n

N = lim On peut montrer que : n1 n1

Qk = (I Q)1
k=0

n2

n4

n5

N=

n2 n4 n5

ni,j

Nombre moyen de mesures g en er ees commen cant par nj , si on part de la note ni .

Matrice fondamentale Par cons equent, si lon appelle O la somme des colonnes de la matrice N , alors pour tout i, l el ement oi,1 est le nombre moyen de mesures g en er ees par lalgorithme, si la note initiale est ni . 5

3.3

Etude dun exemple

Lannexe 1 est une matrice de transition obtenue ` a partir dune base de deux partitions de musique. Cette matrice est en r ealit e de grande taille, etant donn e que, par exemple, on distingue les notes blanches des notes noires. Mais pour plus de clart e, ici on ne repr esentera que les noms des notes. On peut voir que si la note initiale est un la, le nombre moyen de mesures g en er ees est de 18.

R esultats

Lannexe 2 est un exemple de partition g en er ee par lalgorithme. La base de partitions etait constitu ee de deux partitions, quon a repr esent ees en bleu et rose. Lorsque deux mesures cons ecutives font partie de la m eme zone de couleur, cela signie quelles se suivaient d ej` a dans la partition initiale. Si elles font parties de zones disjointes de m eme couleur, cest quelles proviennent de la m eme partition initiale, mais quelles n etaient pas dans cet ordre-l` a dans celle-ci. Enn, si on passe dune zone de couleur ` a une autre, cest quon nest plus dans la m eme partition.

Am eliorations possibles

Pour g en erer une phrase, on peut partir dun ensemble de deux mots m1 et m2 , en choisir au hasard un troisi` eme m3 qui les suit dans la base de livres (suppos ee susamment grande pour quil y ait plusieurs occurrences de ces deux mots), puis r eit erer le processus sur les mots m2 et m3 , etc. Par analogie, on peut partir dun ensemble de deux notes n1 et n2 , qui seront les premi` eres notes de deux mesures, puis choisir une troisi` eme mesure au hasard parmi celles qui suivent une mesure commen cant par n1 et une mesure commen cant par n2 , et ainsi de suite. Ce serait alors une cha ne de Markov dordre 2. La partition g en er ee sera alors plus jolie ` a ecouter, mais si la base de partitions nest pas tr` es grande, on risque de se retrouver avec une m elodie qui gure d ej` a dans lune des partitions initiales. Pour obtenir une musique qui para t totalement nouvelle, on pourrait, au lieu de cr eer la partition mesure par mesure, l ecrire note par note. Mais dans ce cas, il faudrait d enir des r` egles plus pr ecises de composition, sinon la musique ne serait pas agr eable ` a ecouter. Il faudrait aussi sassurer que la partition ainsi construite soit correcte syntaxiquement (cest-` a-dire que les r` egles de solf` ege de base soient respect ees), sinon le chier PMX ne pourra etre compil e.

Applications pratiques

Si on choisit de remplacer la note stop par une note au hasard, on peut composer de la musique ind eniment (en eet, la note stop est la seule condition darr et du programme), ce qui serait int eressant pour cr eer une musique dambiance dans un lieu public, un lm ou un jeu vid eo. Par ailleurs, on pourrait d enir un crit` ere de ressemblance entre deux partitions ` a partir de leurs matrices de transition. En eet, si deux partitions de m eme tonalit e se ressemblent, leurs matrices de transition sont similaires. En exploitant davantage cet el ement statistique quest cette matrice, on pourrait peut- etre d epister un eventuel plagiat.

Bibliographie et sites Internet

Edition musicale avec PMX Luigi Cataldi, traduction par Olivier Vogel. PSTricks Users Guide Timothy Van Zandt. http://apprendre-en-ligne.net/graphes/markov/limite.html Introduction aux cha nes de Markov par Didier M uller. http://wwwesto.ump.ma/mounir/anits/proc%20stock/markov.pdf Cours sur les cha nes de Markov.

Annexe 1 - Etude dun exemple


s

1 13

1 6

mi
3 13

1 do

4 13

fa
1 2 2 3 1 3

la 1
1 2 1 13 1 2

1 3

sol

r e Diagramme

s s do r e 1 1 13 0 0 1 6 0 0

do 0 4 13 0 1 1 2 1 3 0

r e 0 1 13 0 0 0 0 1

mi 0 3 13 0 0 0 0 0

fa 0 4 13 0 0 0 2 3 0

sol 0 0 1 2 0 1 3 0 0

la 0 0 1 2 0 0 0 0 do r e mi fa sol la 14,000 17,142 15,000 12,714 14,142 18,142

M=
mi fa sol la

Matrice de transition, somme des colonnes de la matrice N

Annexe 2 - Exemple de partition