[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Fonction scheme pour mordant explicite
From: |
Simon Froger |
Subject: |
Fonction scheme pour mordant explicite |
Date: |
Wed, 13 Jul 2016 00:18:19 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 |
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'
}
- Fonction scheme pour mordant explicite,
Simon Froger <=