lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Altérations dièse ou bémol au lieu de bécarre avec easyHeadsOn


From: Ya Gloops
Subject: Re: Altérations dièse ou bémol au lieu de bécarre avec easyHeadsOn
Date: Mon, 20 Mar 2023 14:13:58 +0000 (UTC)

C'est grandiose Jean !!!!
 
Pour que ce soit parfait, si je pouvais me permettre, ce serait d'enlever les 
bécarres "inutiles".
C'est-à-dire les ♮3 ♮6 et ♮7 de la première mesure.
Et, c'est là que ça va être compliqué, garder le bécarre légitime du ♮7 de la 
deuxième mesure…
Jean, tu as tout à fait le droit aussi de me dire, tu m'embêtes avec tes 
altérations ;-), car c'est déjà énorme !

\relative c'' {
  \easyHeadsOn
  \key a \major
  a b cis d e fis gis a  g gis a2
}











Le lundi 20 mars 2023 à 12:11:48 UTC+1, Jean Abou Samra <jean@abou-samra.fr> a 
écrit : 





Pour le code, quelque chose comme ça devrait le faire :
\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))))))

#(define (Relative_alterations_engraver context)
   (let ((note-events '()))
     (make-engraver
      (listeners
       ((note-event engraver event)
        (set! note-events (cons event note-events))))
      ((pre-process-music engraver)
       (let ((tonic (ly:context-property context 'tonic)))
         (for-each
          (lambda (ev)
            (let* ((pitch (ly:event-property ev 'pitch))
                   (octave (ly:pitch-octave pitch))
                   (notename (ly:pitch-notename pitch))
                   (rel-pitch (ly:pitch-diff pitch tonic))
                   (rel-alt (ly:pitch-alteration rel-pitch)))
              (ly:event-set-property!
               ev 'pitch
               (ly:make-pitch octave notename rel-alt))))
          note-events)
         (set! note-events '()))))))

\layout {
  ragged-right = ##t
  \context {
    \Voice
    \consists \Ez_numbers_engraver
    \consists \Relative_alterations_engraver
  }
}

#(set-global-staff-size 26)

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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]