Bonjour, j'utilise la fonction easyHeadsOn, mais je ne trouve pas très logique d'obtenir, dans l'exemple de sol majeur suivant,
un bécarre 7 au lieu d'un bémol 7, et dans la tonalité de f majeur, d'obtenir un bécarre 4 au lieu d'un dièse 4...
Est-il possible d'écrire une fonction qui ajusterait pour chaque tonalité ?
Merci pour votre aide!
\version "2.24.1"
#(define Ez_numbers_engraver
(make-engraver
(acknowledgers
((note-head-interface engraver grob source-engraver)
(let* ((context (ly:translator-context engraver))
(tonic-pitch (ly:context-property context 'tonic))
(tonic-name (ly:pitch-notename tonic-pitch))
(grob-pitch
(ly:event-property (event-cause grob) 'pitch))
(grob-name (ly:pitch-notename grob-pitch))
(delta (modulo (- grob-name tonic-name) 7))
(note-names
(make-vector 7 (number->string (1+ delta)))))
(ly:grob-set-property! grob 'note-names note-names))))))
#(set-global-staff-size 26)
\layout {
ragged-right = ##t
\context {
\Voice
\consists \Ez_numbers_engraver
}
}
% Faire automatiquement un bémol au lieu d'un bécarre
\relative c'' {
\easyHeadsOn
\key g \major
g f
}
% Faire automatiquement un dièse au lieu d'un bécarre
\relative c' {
\easyHeadsOn
\key f \major
f b
}