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

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

Re: Ajout de paroles à une partition


From: Valentin Villenave
Subject: Re: Ajout de paroles à une partition
Date: Sun, 24 Jul 2022 19:12:59 +0200

On 7/24/22, Gerard <survoje@free.fr> wrote:
> C'est la première fois que je propose du code (d'après ce que m'a fourni
> la liste !).

Bon, puisqu’on me qualifie de sorcier, je me sens poussé à ajouter mon
grain de sel...

Déjà bravo Gérard pour ce code, j’ai quelques suggestions à ajouter :
- pour que le soulignement soit également de la couleur souhaitée, il
suffit de mettre le #:with-color avant le #:underline
- pas la peine d’indiquer une direction directement dans la fonction à
mon avis, cela permet de changer toutes les directions une fois pour
toutes avec \override TextScript.direction = #DOWN ou ce qu’on veut.
- il y a moyen de se passer des guillemets après \tire et \pousse en
lui demandant d’attendre un nombre, plutôt qu’un markup :

tire =
#(define-music-function (parser location button) (integer?)
   (make-music 'TextScriptEvent
               'text (markup #:with-color darkgreen
                             #:underline (number->string button)
                             )))

- et d’ailleurs on peut utiliser l’objet Fingering plutôt que
TextScript, mais ça devient très vite assez tordu :
https://lists.gnu.org/archive/html/lilypond-user/2010-03/msg00418.html

> Ça marche mais le souligné n'est pas en couleur et ce n'est pas aligné !

Voici ce que je ferais, de façon à ne pas avoir à indiquer \tire et
\pousse mais uniquement utiliser ^ et _ dans la saisie :

%%%%

\version"2.20.0"

musique =
{
  c'^1
  d'_2
  e'_3
  f'^3
  g'_4
}

\layout {
  \context {
    \Voice
    \remove New_fingering_engraver
    \remove Fingering_engraver
  }
  \context {
    \Lyrics
    \consists Note_heads_engraver
    \consists Pitch_squash_engraver
    squashedPosition = #0
    \override NoteHead.stencil = ##f
    \override Fingering.stencil =
    #(lambda (grob)
       (let* ((ev (event-cause grob))
              (txt (fingering::calc-text grob))
              (dir (ly:event-property ev 'direction)))
         (ly:grob-set-property! grob 'direction 0)
         (grob-interpret-markup
          grob
          (case dir
            ((1) (markup #:with-color darkgreen #:underline txt))
            ((-1) (markup #:with-color darkred txt))
            ('() txt)))))
    \consists New_fingering_engraver
    \consists Fingering_engraver
  }
}

<<
  \new Staff \musique
  \new Lyrics \musique
>>

%%%%

-- V.



reply via email to

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