Bonjour,
Je cherche à réaliser avec Lilypond des morceaux de musique suivant
les règles de « jeux de dés musicaux », par exemple celui-ci :
https://imslp.org/wiki/Musikalisches_Würfelspiel,_K.516f_(Mozart,_Wolfgang_Amadeus)
https://imslp.eu/files/imglnks/euimg/e/ed/IMSLP985911-PMLP47543-Mozart_Musikalisches_Würfelspiel_KV_516f.pdf
J'ai déjà créé les 176 mesures (en 352 variables, main droite et
main gauche), et aussi leur correspondance (en 352 autres variables)
selon le numéro de mesure et le tirage de dés de 2 à 12.
Par exemple, si on tire un 2 pour la toute première mesure, je trouve
dans la première colonne et la deuxième ligne le numéro 96, et donc
j'ai dans mes fichiers :
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
"r96" = \relative do'' { mi8 do sol }
"l96" = \relative do { do4 r8 }
"A2r" = "r96"
"A2l" = "l96"
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
J'ai aussi défini des valeurs par défaut en supposant que le tirage
de dés donne 7 à chaque fois, puis des variables à utiliser dans mon
\score pour faire la partition complète :
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ar = "A7r" Al = "A7l"
Br = "B7r" Bl = "B7l"
Cr = "C7r" Cl = "C7l"
Dr = "D7r" Dl = "D7l"
Er = "E7r" El = "E7l"
Fr = "F7r" Fl = "F7l"
Gr = "G7r" Gl = "G7l"
Hr = "H7r" Hl = "H7l"
ar = "a7r" al = "a7l"
br = "b7r" bl = "b7l"
cr = "c7r" cl = "c7l"
dr = "d7r" dl = "d7l"
er = "e7r" el = "e7l"
fr = "f7r" fl = "f7l"
gr = "g7r" gl = "g7l"
hr = "h7r" hl = "h7l"
rightI = { \Ar \Br \Cr \Dr \Er \Fr \Gr \Hr }
rightII = { \ar \br \cr \dr \er \fr \gr \hr }
leftI = { \Al \Bl \Cl \Dl \El \Fl \Gl \Hl }
leftII = { \al \bl \cl \dl \el \fl \gl \hl }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Il ne me reste plus qu'à remplacer tous ces « 7 » par des nombres
aléatoires entre 2 et 12. Je sais comment générer un nombre aléatoire
en Scheme, je sais même former une chaîne en concaténant une lettre
(A à H en majuscule ou minuscule) avec ce nombre puis la lettre "r"
ou "l", mais je n'arrive pas à transformer ces chaînes en noms de
variables.
Par exemple, si pour la lettre F le tirage donne 11, je voudrais
pouvoir générer quelque chose comme :
(define Fr F11r)
(define Fl F11l)
ou en syntaxe lilypond :
Fr = "F11r"
Fl = "F11l"
Est-ce que quelqu'un pourrait m'aider ?
Cordialement,
Olivier Miakinen