{"id":937,"date":"2024-08-05T09:25:02","date_gmt":"2024-08-05T08:25:02","guid":{"rendered":"https:\/\/ghyslain-clement.fr\/?p=937"},"modified":"2024-08-05T10:13:07","modified_gmt":"2024-08-05T09:13:07","slug":"et-si-on-realisait-un-jeu-de-des-musical","status":"publish","type":"post","link":"https:\/\/ghyslain-clement.fr\/?p=937","title":{"rendered":"Et si on r\u00e9alisait un jeu de d\u00e9s musical"},"content":{"rendered":"<p>Dans le cadre du d\u00e9veloppement de mon \u00e9diteur musical sous forme de rythmes euclidiens, je dois r\u00e9soudre pas mal de challenges algorithmiques et math\u00e9matiques.\u00a0Au cours de mes recherches, je suis tomb\u00e9 fortuitement sur la composition de musique al\u00e9atoire et na\u00efvement je pensais celle-ci de cr\u00e9ation r\u00e9cente.<\/p>\n<p>J\u2019ai eu l\u2019agr\u00e9able surprise de comprendre qu\u2019elle est plus ancienne qu\u2019on ne le pense.<!--more--><\/p>\n<p>Sans compter les &lsquo;boeufs&rsquo; que les musiciens ont certainement faits depuis la nuit des temps en tapant sur des peaux de b\u00eates tendues ou jouant de la flute de roseau, certains compositeurs plus r\u00e9cents ont pondu de petits jeux permettant de cr\u00e9er de la musique al\u00e9atoirement.<\/p>\n<p>Ah oui ! vous ne connaissez pas l\u2019expression &lsquo;faire un boeuf&rsquo; ? C\u2019est vrai qu\u2019aujourd\u2019hui on dit plut\u00f4t une &lsquo;jam session&rsquo;.<\/p>\n<p>Bien s\u00fbr, il fallait une base musicale \u00e0 cela et si on pr\u00e9tend pouvoir faire jouer ou plut\u00f4t composer de la musique \u00e0 quelqu\u2019un ne connaissant pas une note il faut lui donner un os \u00e0 m\u00e2cher.<\/p>\n<p>En fait, pas \u00e0 m\u00e2cher mais pour en faire 2 d\u00e9s \u00e0 6 faces qu\u2019on lancera plusieurs fois pour piocher dans une partition les mesures qu\u2019on voudra entendre. l\u2019OuMuPo de l\u2019\u00e9poque (OUvroir de MUsique POtentielle par rapprochement avec l\u2019OuLiPo \u2014 OUvroir de LItt\u00e9rature POtentielle \u2014 mouvement cr\u00e9\u00e9 par Raymond Queneau et Fran\u00e7ois Le Lyonnais en 1960).<\/p>\n<p>L\u00e0, nous sommes au XVIIIe si\u00e8cle et parmi ces musicologues on trouve notre cher Wolfgang Amadeus Mozart. S\u2019il a pu comprendre la musique et composer d\u00e8s 6 ans il devait \u00eatre intelligent et des id\u00e9es farfelues devaient lui passer souvent par la t\u00eate. On connait tous par le film Amadeus qu\u2019il a souvent jou\u00e9 dans les salons nobles et mondains de l\u2019\u00e9poque et peut-\u00eatre que ce jeu lui est venu pour faire participer ses auditeurs en leur proposant une approche amusante de la musique. Musique \u00e0 danser bien s\u00fbr puisque cet amusement nous donne au final des alternatives innombrables de menuets tous distincts par le choix al\u00e9atoire des mesures.<\/p>\n<p>Le principe est simple, on compose gr\u00e2ce aux deux d\u00e9s les deux parties d\u2019un morceau. Chaque partie contient 8 mesures qu\u2019on notera A \u00e0 H qu\u2019on pourra jouer alternativement pendant un temps infini \u2014 du moins une partie de la soir\u00e9e. Si on veut un autre morceau on refait un tirage et on recommence. J\u2019ai failli \u00e9crire \u00ab\u00a0on se refait une ligne et on recommence\u00a0\u00bb mais ce qui est vrai dans une jam session actuelle n\u2019est pas vrai du temps de Mozart o\u00f9 l\u2019alcool avait la pr\u00e9f\u00e9rence de ce dernier.<\/p>\n<p>Des tableaux sont r\u00e9alis\u00e9s avec ces possibilit\u00e9s et il ne suffit qu\u2019\u00e0 prendre la mesure correspondante au r\u00e9sultat du lancer de d\u00e9s.<\/p>\n<p><a href=\"https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/M.Stadler-menuer-part_1.png\" rel=\"lightbox[937]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-943\" alt=\"M.Stadler-menuer-part_1\" src=\"https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/M.Stadler-menuer-part_1.png\" width=\"646\" height=\"482\" srcset=\"https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/M.Stadler-menuer-part_1.png 646w, https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/M.Stadler-menuer-part_1-300x223.png 300w, https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/M.Stadler-menuer-part_1-624x465.png 624w\" sizes=\"auto, (max-width: 646px) 100vw, 646px\" \/><\/a><\/p>\n<p>Je suppose puisque ces tableaux existent qu\u2019ils ont \u00e9t\u00e9 cr\u00e9\u00e9s dans le but de ne pas laisser le joueur dans une libert\u00e9 totale et de faire en sorte que chaque ligne de la partition sonne correctement.<\/p>\n<p>Maintenant comment puis-je int\u00e9grer ce principe \u00e0 mon propre travail ? Je ne le sais pas encore. Mais je peux peut-\u00eatre r\u00e9aliser un petit programme en javascript dont l\u2019algorithmique sera de justement s\u2019exercer avec le principe de Mozart. Je ne vais pas vous mentir apr\u00e8s quelques recherches sur internet, j\u2019ai trouv\u00e9 un allemand ayant d\u00e9j\u00e0 fait le travail pour moi sauf que&#8230; son code ne marche pas. Si le lancer de d\u00e9s et la cr\u00e9ation de la ligne m\u00e9lodique se fait bien, impossible d\u2019entendre le moindre son et impossible de savoir s\u2019il a m\u00eame d\u00e9j\u00e0 fait fonctionner celui-ci.<\/p>\n<p><a href=\"https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/M.Stadler-menuer-part_2.png\" rel=\"lightbox[937]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-945\" alt=\"M.Stadler-menuer-part_2\" src=\"https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/M.Stadler-menuer-part_2.png\" width=\"670\" height=\"405\" srcset=\"https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/M.Stadler-menuer-part_2.png 670w, https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/M.Stadler-menuer-part_2-300x181.png 300w, https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/M.Stadler-menuer-part_2-624x377.png 624w\" sizes=\"auto, (max-width: 670px) 100vw, 670px\" \/><\/a>Je dois donc tout refaire peut-\u00eatre que chatGPT peut m\u2019aider.<\/p>\n<p>Les \u00e9tapes :<\/p>\n<ol>\n<li><span style=\"font-style: normal; font-variant-caps: normal;\">\u00a0<\/span><span style=\"font-style: normal; font-variant-caps: normal;\">cr\u00e9er un tableau \u00e0 deux dimensions de 11 par 16 ou 12 par 16. plut\u00f4t de 12 par 16 car on va obtenir pour le lancer de d\u00e9s des valeurs de 2 \u00e0 12. On utilisera la ligne 1 pour stocker nos r\u00e9sultat de lancer.<\/span>\n<ul>\n<li><span style=\"font-style: normal;\">Exemple 1 : Je lance mes d\u00e9s j\u2019obtiens 4; j\u2019ai donc comme s\u00e9lection comme premi\u00e8re mesure la mesure 69, A4 sur le tableau de la partie 1. Je mets directement cette s\u00e9lection dans la premi\u00e8re case de mon tableau, tab[0][0], soit directement mon r\u00e9sultat de lancer, soit le num\u00e9ro de la mesure. Je choisis d\u2019y mettre le r\u00e9sultat de lancer de d\u00e9s. Je fais ensuite cela pour les autres mesures.<\/span><\/li>\n<\/ul>\n<\/li>\n<li>maintenant je vais cr\u00e9er un autre tableau qui va simplement contenir les noms de mes fichiers sons et le nom des fichiers images des mesures utilis\u00e9es.\n<ul>\n<li>Exemple 2 : mon tableau de l\u2019\u00e9tape 1 contient en [0][0] le chiffre 4, 4 correspond \u00e0 la mesure 69. Je mets donc dans mon tableau 2 le nom du son sous la forme M69.mp3 avec M pour &lsquo;mesure&rsquo;, 69 pour son num\u00e9ro et mp3 comme type de fichier. \u00c0 faire \u00e9voluer suivant vos propres d\u00e9sid\u00e9ratas. On fait pareillement pour l\u2019image de la mesure qui nous permettra (qu\u2019on soit ou non musicien) de visualiser l\u2019aspect sur une port\u00e9e musicale de ce que l\u2019on entend). Vous aurez remarqu\u00e9 qu\u2019on a mis le son directement en mp3. Il sera donc d\u00e9j\u00e0 typ\u00e9 par son instrument, son volume, la couleur de l\u2019instrument, le tempo, bref pas mal de chose qui emp\u00eache l\u2019universalit\u00e9 de jeu. On pourra faire plus tard un mod\u00e8le avec un objet son qui nous indiquera ind\u00e9pendamment ces \u00e9l\u00e9ments et nous permettra ensuite d\u2019y associer des fichiers pour chaque instrument de fa\u00e7on midi GM par exemple.<\/li>\n<\/ul>\n<\/li>\n<li>Une fois qu\u2019on aura rempli ce tableau on chargera nos sons ind\u00e9pendamment ou on pourra aussi les concat\u00e9ner pour n\u2019en faire qu\u2019un seul fichier \u00e0 jouer ensuite.<\/li>\n<li>La derni\u00e8re partie \u00e9tant de les faire jouer et de s\u2019extasier sur la beaut\u00e9 de la musique, des math\u00e9matiques et de l\u2019algorithmique.<\/li>\n<\/ol>\n<p>Je ne sais pas si je vais mettre \u00e0 disposition ce programme mais je m\u2019emploie \u00e0 le r\u00e9aliser courant de semaine prochaine (avec ou sans l\u2019aide de chatGPT d\u2019ailleurs \u2014 ce dernier ayant tendance \u00e0 me faire perdre plus de temps qu\u2019autre chose).<\/p>\n<p>J&rsquo;ai d\u00e9j\u00e0 une premi\u00e8re version de cr\u00e9\u00e9e accessible \u00e0 l&rsquo;adresse suivante : <a title=\"Jeu de d\u00e9s musical\" href=\"https:\/\/tsao-tsao.com\/divers\/travaux_20240803\/jeu_de_des_musical\/jeu_de_des_musical_V0.03.html\" target=\"_blank\">Jeu de d\u00e9s musical<\/a><\/p>\n<p><a href=\"https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/jeu_de_des_muscial_1.png\" rel=\"lightbox[937]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-947\" alt=\"jeu_de_des_muscial_1\" src=\"https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/jeu_de_des_muscial_1.png\" width=\"985\" height=\"367\" srcset=\"https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/jeu_de_des_muscial_1.png 985w, https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/jeu_de_des_muscial_1-300x111.png 300w, https:\/\/ghyslain-clement.fr\/wordpress_fold\/wp-content\/uploads\/2024\/08\/jeu_de_des_muscial_1-624x232.png 624w\" sizes=\"auto, (max-width: 985px) 100vw, 985px\" \/><\/a><\/p>\n<p>Pour vous les programmeurs, c\u2019est un tr\u00e8s bon exercice et je serais enchant\u00e9 de voir vos diff\u00e9rentes versions (javascript, java, C, python\u2026lisp pour ceux qui se souviennent encore de ce langage).<\/p>\n<p>Nous parlions de musique al\u00e9atoire. Actuellement, avec un ordinateur et certains programmes il est d\u2019une simplicit\u00e9 d\u00e9concertante d\u2019en faire (admirez le jeu de mots) et les maux de t\u00eate (je la double) qui peuvent en d\u00e9couler pour votre entourage et vous-m\u00eame seront de nature \u00e0 vous d\u00e9tourner de la chose.<\/p>\n<p>Le jeu de Mozart (et l\u00e0 je vous donne un scoop, on n\u2019est pas s\u00fbr que ce soit lui qui l\u2019ai con\u00e7u vu la simplicit\u00e9 du processus \u2014 je demande des preuves) fait que les r\u00e9sultats obtenus sont apr\u00e8s plusieurs \u00e9coutes de versions diff\u00e9rentes sensiblement monotones. La simplicit\u00e9 du mat\u00e9riau de base, la limitation des choix \u00e0 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\u2019int\u00e9r\u00eat.<\/p>\n<p>\u00c0 la m\u00eame \u00e9poque, et m\u00eame quelques ann\u00e9es auparavant, l\u2019abb\u00e9 Stadler, contemporain et ain\u00e9 de Mozart dont il est l\u2019ami et sera la personne qui r\u00e9glera sa succession, a utilis\u00e9 un syst\u00e8me identique (il semblerait d&rsquo;ailleurs que les tableaux soient effectivement les m\u00eames par contre pas les mesures) mais avec une deuxi\u00e8me partie apportant un plus en terme de choix et de possibilit\u00e9s en ajoutant des trios au menuets de base. Je n\u2019ai pas fait de plus amples recherches sur le mat\u00e9riau musical de Maximilian Stadler dont je n\u2019ai malheureusement pour l\u2019instant que les tableaux et quelques lignes musicales. Je pense d\u2019ailleurs commencer par la programmation de la version \u00ab\u00a0Mozart\u00a0\u00bb de ce jeu et passer ensuite d\u00e8s que j\u2019aurai trouv\u00e9 l\u2019information pour l\u2019am\u00e9liorer \u00e0 la \u00ab\u00a0Stadler\u00a0\u00bb (fait, voir plus haut).<\/p>\n<p>Il est d\u2019ailleurs possible que le jeu trouv\u00e9 dans les \u00e9crits de Mozart ne soit qu\u2019une copie non int\u00e9grale de la version de Stadler ou alors que le simple jeu de Mozart n\u2019ait \u00e9t\u00e9 am\u00e9lior\u00e9 par Stadler.<\/p>\n<p>Je vous parlais tout \u00e0 l\u2019heure de l\u2019Oulipo et de Raymond Queneau. Ce dernier a \u00e9crit un livre qui s\u2019appelle <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Cent_mille_milliards_de_po%C3%A8mes\">Cent mille milliards de po\u00e8mes<\/a> et permet d\u2019obtenir une infinit\u00e9 de possibilit\u00e9s \u00e0 la lecture des po\u00e8mes. On a donc 10 puissance 14 solutions dans ce livre. Avec le jeu de l\u2019abb\u00e9 Stadler on obtient un nombre de solutions on ne peut plus nombreuses puisqu\u2019on d\u00e9passe 10 puissance 29 solutions avec moins de 300 motifs musicaux. Qui fait mieux ?<\/p>\n<p>Cette mani\u00e8re de composer n\u2019\u00e9tait pourtant pas unique puisqu\u2019elle se retrouvaient dans les m\u00e9canismes d\u2019autres musiques anciennes (Ars Antiqua, Ars Nova, chant gr\u00e9gorien) et certains principes de la musique r\u00e9p\u00e9titive du 20e si\u00e8cle montrent l\u2019universalit\u00e9 dans l\u2019espace et le temps de cette fa\u00e7on de composer.<\/p>\n<p>r\u00e9f\u00e9rences<\/p>\n<p id=\"firstHeading\">l&rsquo;ouvroir de musique potentielle (OuMuPo) sur wikipedia :\u00a0<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Ouvroir_de_musique_potentielle\">https:\/\/fr.wikipedia.org\/wiki\/Ouvroir_de_musique_potentielle<\/a><\/p>\n<p>l&rsquo;ouvroir de litt\u00e9rature potentielle (OuLiPo) sur wikipedia : <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Oulipo\">https:\/\/fr.wikipedia.org\/wiki\/Oulipo<\/a><\/p>\n<p>Wolfgang Amadeus Mozart\u00a0sur wikipedia :\u00a0<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Wolfgang_Amadeus_Mozart\">https:\/\/fr.wikipedia.org\/wiki\/Wolfgang_Amadeus_Mozart<\/a><\/p>\n<p>Maximilian Stadler sur wikipedia : <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Maximilian_Stadler\">https:\/\/fr.wikipedia.org\/wiki\/Maximilian_Stadler<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans le cadre du d\u00e9veloppement de mon \u00e9diteur musical sous forme de rythmes euclidiens, je dois r\u00e9soudre pas mal de challenges algorithmiques et math\u00e9matiques.\u00a0Au cours de mes recherches, je suis tomb\u00e9 fortuitement sur la composition de musique al\u00e9atoire et na\u00efvement je pensais celle-ci de cr\u00e9ation r\u00e9cente. J\u2019ai eu l\u2019agr\u00e9able surprise de comprendre qu\u2019elle est plus [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,29,28,38],"tags":[],"class_list":["post-937","post","type-post","status-publish","format-standard","hentry","category-developpement","category-javascript","category-langages","category-musique"],"_links":{"self":[{"href":"https:\/\/ghyslain-clement.fr\/index.php?rest_route=\/wp\/v2\/posts\/937","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ghyslain-clement.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ghyslain-clement.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ghyslain-clement.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ghyslain-clement.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=937"}],"version-history":[{"count":12,"href":"https:\/\/ghyslain-clement.fr\/index.php?rest_route=\/wp\/v2\/posts\/937\/revisions"}],"predecessor-version":[{"id":944,"href":"https:\/\/ghyslain-clement.fr\/index.php?rest_route=\/wp\/v2\/posts\/937\/revisions\/944"}],"wp:attachment":[{"href":"https:\/\/ghyslain-clement.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=937"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ghyslain-clement.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=937"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ghyslain-clement.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=937"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}