Le mercredi 4 mars 2015 10:23:00, vous avez écrit : > Je me suis un peu penché sur le sujet il y a deux jours et je n'ai rien > trouvé de magique. > Désolé,
Merci qd mm d'avoir pris le tps de chercher. J'ai eu une autre réponse en privé de Nicolas, mais je remet sur la liste. ************************ \version « 2.18.2 » degroupement = #(define-music-function (parser location dur mus) (number? ly:music?) (music-map (lambda (x) (let ( (dd (ly:music-property x 'duration)) (pp (ly:music-property x 'pitch')) ) (set! (ly:music-property x 'duration) (ly:make-duration (log2 dur) 0 1)) #{ \unfoldRepeats { \repeat tremolo #(/ dur 2) $x } #} ) ) mus ) ) \relative c' { \degroupement 8 {c2 d4 e4} } ************************ Il subsiste deux problèmes : 1) A l’endroit \unfoldRepeats { \repeat tremolo #(/ dur 2) $x } il faudrait remplacer le 2 par la durée de la note dans l’expression musicale. Pour \degroupement 8 {c2 d4 e4} c’est 2 puis 4 et encore 4. Dans mon exemple cette durée est dans la variable dd. Malheureusement c’est une varibale de type « duration » et je ne sais pas comment la convertir en « number » pour pouvoir faire la division. Dans l’autre sens conversion "number" -> « duration » j’ai fait (ly:make-duration (log2 dur) 0 1) 2) Plus grave : le résultat n’est pas tout-à-fait le résultat escompté… puisque l’ensemble de l’expression musicale est lui-même répété un certain nombre de fois. Ma solution pour la durée : - extraire les deux premiers chiffres de duration (avec un car ou cdr ou je ne sais plus bien quelle syntaxe) - appelons le premier l et le second d ; - exemples : - une blanche (2) aura une "duration" égaale à (1 0 1), on calcule 2^1=2 et c'est la durée ; - une ronde (1) aura une "duration" égaale à (0 0 1), on calcule 2^0=1 ; - une noire (4) : (2 0 1) ->2^2=4. On divise 8 par la durée et on a le nb de notes à écrire. Et si j'ai des notes pointées (le nb de points est ce que j'ai nommé d) on multiplie nbnotes par (2-1/(2^nbpoints)). Ceci dit j'ai un message d'erreur sur \unfoldRepeats { \repeat tremolo #(/ dur 2) $x }, est-ce dû à ma version 2.16.2 ? -- Cordialement, Daniel Cartron « Les absents ont toujours tort de revenir. » Jules Renard _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user