Pb avec une fonction scheme

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

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
}
}

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 :slight_smile:

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