L
J'ai remarqué que les fonctions de transposition d'arranger.ly
n'affectaient pas les pitchedTrill :
Oups, il semble là que c'est carrément la fonction Lilypond
music-map
qui soit fautive !
Elle est définie dans scm/music-functions.scm par
%%%%%%%%%%%
(define-public (music-map function music)
"..."
(let ((es (ly:music-property music 'elements))
(e (ly:music-property music 'element)))
(if (pair? es)
(set! (ly:music-property music 'elements)
(map (lambda (y) (music-map function y)) es)))
(if (ly:music? e)
(set! (ly:music-property music 'element)
(music-map function e)))
(function music)))
Il faudrait que ce soit :
%%%%%%%%%%%
(define-public (music-map function music)
"..."
(let ((es (ly:music-property music 'elements))
(e (ly:music-property music 'element))
(arts (ly:music-property music 'articulations)))
(if (pair? es)
(set! (ly:music-property music 'elements)
(map (lambda (y) (music-map function y)) es)))
(if (pair? arts)
(set! (ly:music-property music 'articulations)
(map (lambda (y) (music-map function y)) arts)))
(if (ly:music? e)
(set! (ly:music-property music 'element)
(music-map function e)))
(function music)))
La différence ici c'est le bouclage aussi sur la propriété
'articulations.
Comme les trilles sont définies dans la propriété 'articulations,
aucune fonction ne peut avoir le moindre effet sur elles.
Je ne pense pas que se soit volontaire de la part des développeurs.
C'est sûrement une erreur.
En ré-definissant au début de son fichier ly, la fonction music-map
comme écrit juste au-dessus, les fonctions octave et set-transp
marchent à nouveau sur les trilles.