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

Reply via email to