J'ai du denaturer une fonction écrite par jean; Qui me permetait de coloriser les notes altérées je ne vois pas ce qui manque .
voici la fonction:
\version "2.24.4"
\layout {
\context {
\Voice
\override NoteHead.color =
#(lambda (grob)
(let* ((event (event-cause grob))
(pitch (ly:event-property event 'pitch))
(alteration (ly:pitch-alteration pitch))
(key-alterations (ly:context-property (ly:grob-context grob) 'keyAlterations))
(staff-key-signature (ly:context-property (ly:grob-context grob) 'keySignature)))
(if (and (not (zero? alteration))
(or (and (list? key-alterations) (member alteration key-alterations))
(and (not (list? key-alterations))
(or (and (eq? staff-key-signature 'sharp) (> alteration 0))
(and (eq? staff-key-signature 'flat) (< alteration 0))))))
(assq-ref (ly:grob-property grob 'details) 'altered-color)
(ly:grob-default grob 'color))))
}
}
Par avance merci de vous pencher sur mon problème . Je ne pense pas que jean puisse me dépaner dans son pays lointains.
Bonne journée a tous
christianleBars:
\layout
{ \context
{ \Voice
\override NoteHead.color = #(lambda (grob)
(let* ( (event (event-cause grob))
(pitch (ly:event-property event 'pitch))
(alteration (ly:pitch-alteration pitch))
(key-alterations (ly:context-property (ly:grob-context grob) 'keyAlterations)) (staff-key-signature (ly:context-property (ly:grob-context grob) 'keySignature))
)
(if (and (not (zero? alteration))
(or
(and (list? key-alterations) (member alteration key-alterations))
(and (not (list? key-alterations))
(or (and (eq? staff-key-signature 'sharp) (> alteration 0))
(and (eq? staff-key-signature 'flat) (< alteration 0)
)
)
)
)
(assq-ref (ly:grob-property grob 'details) 'altered-color)
(ly:grob-default grob 'color)
)
)
}
Salut Christian !
Est-ce que ça conviendrait ?
\header {
title = "Accidental color"
composer = ""
tagline = \markup {
Engraved at
\simple #(strftime "%Y-%m-%d" (localtime (current-time)))
with \with-url #"http://lilypond.org/"
\line { LilyPond \simple #(lilypond-version) (http://lilypond.org/) }
}
}
\relative {
\key g \major
\override Accidental.color = "red"
\override NoteHead.color =
#(lambda (grob)
(if (ly:grob-object grob 'accidental-grob #f)
"red"
"black"))
c'16 d e fis g fis e cis e2
}
Bonjour Yagloops
Merci pour ta réponse.
hélas ce n'est pas ce que je veux désolé.
je voulais que les notes de l'amure altérées soit de couleur rouge et pas les autres.
La fonction à faire est :
si les notes appartienne a l'armure
faire coloriser la note en rouge
sinon ne rien faire
Cordialement
Christian
J'ai retrouvé ça dans l'historique des mails...
alteredColor = \override NoteHead.details.altered-color = \etc
\layout {
\context {
\Voice
\override NoteHead.color =
#(lambda (grob)
(and (not (zero? (ly:pitch-alteration (ly:event-property (event-cause grob) 'pitch))))
(assq-ref (ly:grob-property grob 'details) 'altered-color)))
\alteredColor #magenta
}
}
jeanas
Octobre 5, 2026, 8:58
5
Christian, tu es bien sûr que c'est une fonction écrite par moi ? Tu n'aurais pas confondu avec une fonction écrite par une IA ? Parce qu'il n'existe pas et n'a jamais existé de fonction ly:grob-context et la manière dont cette fonction essaie de l'utiliser n'aurait pas de sens même si elle existait.
Internet existe même en Hongrie
Bonjour Jean.
Excuse moi je suis en train de m'ememeler les pinceaux. Effectivement c'est une fonction ecrite par une IA (le Chat) ce n'est pas celle que tu m'avais faite.
Je cherche donc cette fonction dans mes anciennes partitions.
Je te souhaite une bonne journée.
Cordialement
Christian