Oups, "spéciale". Bravo encore Nicolas. Pierre
Le 4 mars 2015 21:27, Pierre Perol-Schneider < [email protected]> a écrit : > Désolé Daniel, je t'ai un peu oublié. > Donc voilà : > > \version "2.16.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 } > } > > Avec mention spécial à Nicolas qui a eu l'idée géniale d'utiliser le > trémolo (j'avoue humblement ne pas y avoir du tout pensé). > > Cordialement, > Pierre > > > Le 4 mars 2015 10:36, Daniel Cartron <[email protected]> a écrit : > > 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 >> [email protected] >> https://lists.gnu.org/mailman/listinfo/lilypond-user >> > >
_______________________________________________ lilypond-user mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-user
