Bonjour !
Je ne comprends pas très bien. Tu voudrais que ta fonction s'adapte
automatiquement à la tonalité et devine ainsi quand la deuxième note
doit être un ton ou un demi-ton en-dessus de la première ?
Christophe
Christophe Pochon
http://www.christophe-pochon.com
Le 13 juillet 2016 à 00:18, Simon Froger <address@hidden
<mailto:address@hidden>> a écrit :
Bonjour.
Je suis en train de bricoler une fonction scheme pour automatiser
l'écriture d'un mordant explicite : le principe consiste à
extraire le pitch de la note sur laquelle s'applique la fonction,
de créer une petite note avec ce même pitch, suivie d'une autre
petite note 1 ton plus haut.
Problème : ça marche quand les deux notes sont séparées d'un ton,
mais lorsqu'elles sont séparées d'un demi-ton, ça met des
altérations non désirées... Il faudrait donc transposer non pas
d'un ton, mais d'un degré dans l'échelle du morceau. Comment faire ?
Mon exemple :
\version "2.18.2"
\language "english"
mord = #(define-music-function (parser location myNote)
(ly:music?)
(define myGnote
(make-music 'NoteEvent
'duration (ly:make-duration 5 0)
'pitch (ly:music-property myNote 'pitch)
)
)
(define myOtherGnote
(make-music 'NoteEvent
'duration (ly:make-duration 5 0)
'pitch (ly:pitch-transpose
(ly:music-property myNote 'pitch)
(ly:make-pitch 0 1 0))
)
)
#{
\acciaccatura {
#myGnote
#myOtherGnote
}
#myNote
#}
)
{
\key c \minor
\mord c'4 \mord d' ef'
}
_______________________________________________
liste de diffusion lilypond-user-fr
address@hidden <mailto:address@hidden>
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr