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

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

Re: Point d'orgue sur un nom d'accord


From: Ya Gloops
Subject: Re: Point d'orgue sur un nom d'accord
Date: Mon, 6 Jun 2022 19:37:41 +0000 (UTC)

Le New ChordNames n'est il pas sensé être aussi en \chordmode pour entrer des 
accords "c1:maj par exemple" ?
Auquel cas le script " c1^"abc" ne fonctionne plus...

\layout {
  \context {
    \ChordNames
    \consists Script_engraver
    \consists Text_engraver
    \consists
      #(lambda (context)
         (let ((chord-name #f)
               (scripts '()))
           (make-engraver
            (acknowledgers
             ((chord-name-interface engraver grob source-engraver) ;; détecte 
les ChordName
              (set! chord-name grob))
             ((script-interface engraver grob source-engraver) ;; détecte les 
Script
              (set! scripts (cons grob scripts))))
            ((stop-translation-timestep engraver)
             (if chord-name
                 (for-each
                   (lambda (s)
                     ;; Le ChordName devient parent du Script...
                     (ly:grob-set-parent! s X chord-name)
                     (ly:grob-set-parent! s Y chord-name)
                     ;; ... et c'est contre lui que le Script se positionne.    
                 
                     (ly:pointer-group-interface::add-grob s 
'side-support-elements chord-name))
                   scripts))
             (set! chord-name #f)
             (set! scripts '())))))
    %% Réglage de la distance entre le nom d'accord et le script
    \override Script.padding = 0.5
  }
}


\new ChordNames \chordmode  {c1^"abc"  c1:maj\fermata }

Gilles






Le lundi 6 juin 2022, 20:09:34 UTC+2, Jean Abou Samra <jean@abou-samra.fr> a 
écrit : 





Le 06/06/2022 à 19:51, Vincent Gay a écrit :
> Le 06/06/2022 à 14:37, Jean Abou Samra a écrit :
>> Hier en voiture, en rentrant de la fondue Lily, tu demandais s'il
>> était possible d'afficher de vraies pauses dans les ChordNames
>> plutôt que « N.C. ». Je ne m'en suis pas rendu compte sur le
>> moment, mais en fait il suffit tout simplement d'ajouter les graveurs
>> qui vont bien. 
>
> Yep, ben justement je me demandais quel(s) graveur il faut pour 
> pouvoir rajouter un point d'orgue sur un nom d'accord.
>
> Merci d'avance



Le Script_engraver, plus un graveur personnalisé écrit en Scheme :-)


\version "2.22.2"

\layout {
  \context {
    \ChordNames
    \consists Script_engraver
    \consists Text_engraver
    \consists
      #(lambda (context)
         (let ((chord-name #f)
               (scripts '()))
           (make-engraver
            (acknowledgers
             ((chord-name-interface engraver grob source-engraver) ;; 
détecte les ChordName
              (set! chord-name grob))
             ((script-interface engraver grob source-engraver) ;; 
détecte les Script
              (set! scripts (cons grob scripts))))
            ((stop-translation-timestep engraver)
             (if chord-name
                 (for-each
                   (lambda (s)
                     ;; Le ChordName devient parent du Script...
                     (ly:grob-set-parent! s X chord-name)
                     (ly:grob-set-parent! s Y chord-name)
                     ;; ... et c'est contre lui que le Script se 
positionne.
                     (ly:pointer-group-interface::add-grob s 
'side-support-elements chord-name))
                   scripts))
             (set! chord-name #f)
             (set! scripts '())))))
    %% Réglage de la distance entre le nom d'accord et le script
    \override Script.padding = 1.2
  }
}

\new ChordNames { c1^"abc" c1\fermata }



Ça te paraît être quelque chose de souhaitable par défaut ?
Je peux l'ajouter comme feature request sur
https://gitlab.com/lilypond/lilypond/-/issues

Cordialement,

Jean





reply via email to

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