Dans le cadre du développement de mon éditeur musical sous forme de rythmes euclidiens, je dois résoudre pas mal de challenges algorithmiques et mathématiques. Au cours de mes recherches, je suis tombé fortuitement sur la composition de musique aléatoire et naïvement je pensais celle-ci de création récente.
J’ai eu l’agréable surprise de comprendre qu’elle est plus ancienne qu’on ne le pense.
Sans compter les ‘boeufs’ que les musiciens ont certainement faits depuis la nuit des temps en tapant sur des peaux de bêtes tendues ou jouant de la flute de roseau, certains compositeurs plus récents ont pondu de petits jeux permettant de créer de la musique aléatoirement.
Ah oui ! vous ne connaissez pas l’expression ‘faire un boeuf’ ? C’est vrai qu’aujourd’hui on dit plutôt une ‘jam session’.
Bien sûr, il fallait une base musicale à cela et si on prétend pouvoir faire jouer ou plutôt composer de la musique à quelqu’un ne connaissant pas une note il faut lui donner un os à mâcher.
En fait, pas à mâcher mais pour en faire 2 dés à 6 faces qu’on lancera plusieurs fois pour piocher dans une partition les mesures qu’on voudra entendre. l’OuMuPo de l’époque (OUvroir de MUsique POtentielle par rapprochement avec l’OuLiPo — OUvroir de LIttérature POtentielle — mouvement créé par Raymond Queneau et François Le Lyonnais en 1960).
Là, nous sommes au XVIIIe siècle et parmi ces musicologues on trouve notre cher Wolfgang Amadeus Mozart. S’il a pu comprendre la musique et composer dès 6 ans il devait être intelligent et des idées farfelues devaient lui passer souvent par la tête. On connait tous par le film Amadeus qu’il a souvent joué dans les salons nobles et mondains de l’époque et peut-être que ce jeu lui est venu pour faire participer ses auditeurs en leur proposant une approche amusante de la musique. Musique à danser bien sûr puisque cet amusement nous donne au final des alternatives innombrables de menuets tous distincts par le choix aléatoire des mesures.
Le principe est simple, on compose grâce aux deux dés les deux parties d’un morceau. Chaque partie contient 8 mesures qu’on notera A à H qu’on pourra jouer alternativement pendant un temps infini — du moins une partie de la soirée. Si on veut un autre morceau on refait un tirage et on recommence. J’ai failli écrire “on se refait une ligne et on recommence” mais ce qui est vrai dans une jam session actuelle n’est pas vrai du temps de Mozart où l’alcool avait la préférence de ce dernier.
Des tableaux sont réalisés avec ces possibilités et il ne suffit qu’à prendre la mesure correspondante au résultat du lancer de dés.
Je suppose puisque ces tableaux existent qu’ils ont été créés dans le but de ne pas laisser le joueur dans une liberté totale et de faire en sorte que chaque ligne de la partition sonne correctement.
Maintenant comment puis-je intégrer ce principe à mon propre travail ? Je ne le sais pas encore. Mais je peux peut-être réaliser un petit programme en javascript dont l’algorithmique sera de justement s’exercer avec le principe de Mozart. Je ne vais pas vous mentir après quelques recherches sur internet, j’ai trouvé un allemand ayant déjà fait le travail pour moi sauf que… son code ne marche pas. Si le lancer de dés et la création de la ligne mélodique se fait bien, impossible d’entendre le moindre son et impossible de savoir s’il a même déjà fait fonctionner celui-ci.
Je dois donc tout refaire peut-être que chatGPT peut m’aider.
Les étapes :
- créer un tableau à deux dimensions de 11 par 16 ou 12 par 16. plutôt de 12 par 16 car on va obtenir pour le lancer de dés des valeurs de 2 à 12. On utilisera la ligne 1 pour stocker nos résultat de lancer.
- Exemple 1 : Je lance mes dés j’obtiens 4; j’ai donc comme sélection comme première mesure la mesure 69, A4 sur le tableau de la partie 1. Je mets directement cette sélection dans la première case de mon tableau, tab[0][0], soit directement mon résultat de lancer, soit le numéro de la mesure. Je choisis d’y mettre le résultat de lancer de dés. Je fais ensuite cela pour les autres mesures.
- maintenant je vais créer un autre tableau qui va simplement contenir les noms de mes fichiers sons et le nom des fichiers images des mesures utilisées.
- Exemple 2 : mon tableau de l’étape 1 contient en [0][0] le chiffre 4, 4 correspond à la mesure 69. Je mets donc dans mon tableau 2 le nom du son sous la forme M69.mp3 avec M pour ‘mesure’, 69 pour son numéro et mp3 comme type de fichier. À faire évoluer suivant vos propres désidératas. On fait pareillement pour l’image de la mesure qui nous permettra (qu’on soit ou non musicien) de visualiser l’aspect sur une portée musicale de ce que l’on entend). Vous aurez remarqué qu’on a mis le son directement en mp3. Il sera donc déjà typé par son instrument, son volume, la couleur de l’instrument, le tempo, bref pas mal de chose qui empêche l’universalité de jeu. On pourra faire plus tard un modèle avec un objet son qui nous indiquera indépendamment ces éléments et nous permettra ensuite d’y associer des fichiers pour chaque instrument de façon midi GM par exemple.
- Une fois qu’on aura rempli ce tableau on chargera nos sons indépendamment ou on pourra aussi les concaténer pour n’en faire qu’un seul fichier à jouer ensuite.
- La dernière partie étant de les faire jouer et de s’extasier sur la beauté de la musique, des mathématiques et de l’algorithmique.
Je ne sais pas si je vais mettre à disposition ce programme mais je m’emploie à le réaliser courant de semaine prochaine (avec ou sans l’aide de chatGPT d’ailleurs — ce dernier ayant tendance à me faire perdre plus de temps qu’autre chose).
J’ai déjà une première version de créée accessible à l’adresse suivante : Jeu de dés musical
Pour vous les programmeurs, c’est un très bon exercice et je serais enchanté de voir vos différentes versions (javascript, java, C, python…lisp pour ceux qui se souviennent encore de ce langage).
Nous parlions de musique aléatoire. Actuellement, avec un ordinateur et certains programmes il est d’une simplicité déconcertante d’en faire (admirez le jeu de mots) et les maux de tête (je la double) qui peuvent en découler pour votre entourage et vous-même seront de nature à vous détourner de la chose.
Le jeu de Mozart (et là je vous donne un scoop, on n’est pas sûr que ce soit lui qui l’ai conçu vu la simplicité du processus — je demande des preuves) fait que les résultats obtenus sont après plusieurs écoutes de versions différentes sensiblement monotones. La simplicité du matériau de base, la limitation des choix à chaque lancer, la relative ressemblance de certaines finales (24, 30, 81, 123), (5, 33, 91, 100, 107) font que ce programme ne retient pas longtemps l’intérêt.
À la même époque, et même quelques années auparavant, l’abbé Stadler, contemporain et ainé de Mozart dont il est l’ami et sera la personne qui réglera sa succession, a utilisé un système identique (il semblerait d’ailleurs que les tableaux soient effectivement les mêmes par contre pas les mesures) mais avec une deuxième partie apportant un plus en terme de choix et de possibilités en ajoutant des trios au menuets de base. Je n’ai pas fait de plus amples recherches sur le matériau musical de Maximilian Stadler dont je n’ai malheureusement pour l’instant que les tableaux et quelques lignes musicales. Je pense d’ailleurs commencer par la programmation de la version “Mozart” de ce jeu et passer ensuite dès que j’aurai trouvé l’information pour l’améliorer à la “Stadler” (fait, voir plus haut).
Il est d’ailleurs possible que le jeu trouvé dans les écrits de Mozart ne soit qu’une copie non intégrale de la version de Stadler ou alors que le simple jeu de Mozart n’ait été amélioré par Stadler.
Je vous parlais tout à l’heure de l’Oulipo et de Raymond Queneau. Ce dernier a écrit un livre qui s’appelle Cent mille milliards de poèmes et permet d’obtenir une infinité de possibilités à la lecture des poèmes. On a donc 10 puissance 14 solutions dans ce livre. Avec le jeu de l’abbé Stadler on obtient un nombre de solutions on ne peut plus nombreuses puisqu’on dépasse 10 puissance 29 solutions avec moins de 300 motifs musicaux. Qui fait mieux ?
Cette manière de composer n’était pourtant pas unique puisqu’elle se retrouvaient dans les mécanismes d’autres musiques anciennes (Ars Antiqua, Ars Nova, chant grégorien) et certains principes de la musique répétitive du 20e siècle montrent l’universalité dans l’espace et le temps de cette façon de composer.
références
l’ouvroir de musique potentielle (OuMuPo) sur wikipedia : https://fr.wikipedia.org/wiki/Ouvroir_de_musique_potentielle
l’ouvroir de littérature potentielle (OuLiPo) sur wikipedia : https://fr.wikipedia.org/wiki/Oulipo
Wolfgang Amadeus Mozart sur wikipedia : https://fr.wikipedia.org/wiki/Wolfgang_Amadeus_Mozart
Maximilian Stadler sur wikipedia : https://fr.wikipedia.org/wiki/Maximilian_Stadler