Un algorithme de composition musicale Table des mati` eres 1 Pr´ esentation 2 2

Un algorithme de composition musicale Table des mati` eres 1 Pr´ esentation 2 2 Le compositeur 2 2.1 Le code PMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 Structures de donn´ ees utilis´ ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3 L’algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3 Chaˆ ınes de Markov 5 3.1 Mod´ elisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 Nombre moyen de mesures g´ en´ er´ ees par le compositeur . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.3 ´ Etude d’un exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4 R´ esultats 6 5 Am´ eliorations possibles 6 6 Applications pratiques 6 7 Bibliographie et sites Internet 7 1 1 Pr´ esentation L’id´ ee de ce TIPE m’est venue d’un algorithme de g´ en´ eration de texte ` a partir d’une base de livres. Le concept est le suivant : ` a partir d’un mot m de cette base, l’algorithme affiche un mot m′ au hasard suivant m dans l’un 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 qu’elle figure dans l’un des livres. J’ai voulu appliquer cet algorithme ` a une base de partitions de musique, o` u les “mots” seraient les mesures des partitions, c’est-` 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 d’obtenir des informations sur cette partition “limite”. 2 Le compositeur 2.1 Le code PMX Le PMX (Preprocessor for MusiXTeX) est un langage permettant d’´ editer des partitions. Il s’agit ici de parti- tions 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 l’int´ 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 fichier .pmx pour obtenir un fichier .pdf comportant la partition, ainsi qu’un fichier .mid, permettant de l’´ ecouter. 2 2.2 Structures de donn´ ees utilis´ ees f1.pmx f2.pmx . . . init mesures.c based.txt baseg.txt compo.c f.pmx Base de partitions Liste brute de mesures Partition g´ en´ er´ ee Sch´ ema principal 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 d’une liste de fichiers .pmx, r´ ecup´ erer toutes les mesures de la partie de la main droite (en conservant leur ordre) et les ins´ erer dans un fichier based.txt (de mˆ eme pour celles de la main gauche, dans baseg.txt). ` A partir de cette liste brute de mesures, un deuxi` 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. D’o` u l’int´ erˆ et de mettre les mesures de la main gauche et de la main droite dans deux bases distinctes. Pour que la composition soit effectu´ 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 ♯ 0 Code PMX de la mesure ♮ 2 ♭ 1 ♮ n . . . 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 d’une partition, pour laquelle on choisit d’attribuer, comme ”premi` ere note de la mesure qui la suit”, une note appel´ ee ”note stop”. Cette note mettra fin ` a l’algorithme, d’o` u son nom. 3 2.3 L’algorithme ` A partir d’une note noteInitiale re¸ cue en param` etre, on applique l’algorithme suivant : Initialisation note ←noteInitiale Recherche d’une mesure au hasard commen¸ cant par note Affichage du code PMX correspondant note ←premi` ere note de la mesure suivante dans la partition originale Tant qu’on n’est pas sur la note stop Sch´ ema du fonctionnement de l’algorithme Sur un exemple, cela donne : ♯ 0 Premi` ere note Premi` ere note de la mesure suivante ♯ 0 ♭ 1 ♯ 0 ♭ 1 ♮ 2 . . . ♮ n Note stop Code PMX de la mesure 4 3 Chaˆ ınes de Markov 3.1 Mod´ elisation Le syst` eme permettant de composer des partitions peut ˆ etre repr´ esent´ e par une chaˆ ıne de Markov d’ordre 1, ` a temps discret, d´ efinie sur l’espace d’´ etats fini des premi` eres notes des mesures, et homog` ene dans le temps. L’unique ´ etat d’absorption 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 d’une mesure commen¸ cant par la note ni ` a une autre commen¸ cant par la note nj. C’est la matrice de transition. On peut en r´ eordonner la base, pour obtenir une matrice de transition dite de forme canonique. M = n1 n2 n3 n4 n5 n1 n2 n3 n4 n5 0.1 0.2 0.3 0.4 0 0 0 1 0 0 0 0 0 1 0 . . . . . . → I 0 R Q Matrice de transition, sous forme canonique ` a droite Soit N la matrice fondamentale associ´ ee, donn´ ee par la relation : N = lim n→∞ n X k=0 Qk = (I −Q)−1 On peut montrer que : N = n1 n2 n4 n5 n1 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 l’on 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 l’algorithme, si la note initiale est ni. 5 3.3 ´ Etude d’un exemple L’annexe 1 est une matrice de transition obtenue ` a partir d’une 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. 4 R´ esultats L’annexe uploads/S4/ un-algorithme-de-composition-musicale.pdf

  • 28
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Dec 09, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 0.4685MB