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

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

Re: Question sur le layout et l'objet score


From: Valentin Villenave
Subject: Re: Question sur le layout et l'objet score
Date: Tue, 21 May 2019 17:02:20 +0200

On 5/21/19, Bernard Barbier <address@hidden> wrote:
> Quelqu'un pourrait-il m'expliquer la relation entre :
>
> \set Score./propriété/
>
> /et/
>
> \layout {
>    \context {
>      \Score
>        \override /propriété
> /  }
> }

Bonjour,
à un détail près, c’est exactement équivalent ! La seule différence
est que le bloc \layout s’appliquera partout, alors que le \set (ou
\override au milieu d’une expression musicale) s’appliquera uniquement
à partir du moment où on l’ajoute.

http://lilypond.org/doc/latest/Documentation/notation/set-versus-override.fr.html

Le détail, c’est que pour
\override Contexte.propriété = valeur
il faut remettre \override dans le bloc \layout, comme ceci :

\layout {
  \context {
    \Contexte
    \override propriété = valeur
  }
}

… alors que pour \set, il faut uniquement mettre le nom de la propriété :

\layout {
  \context {
    \Contexte
    propriété = valeur
  }
}

(dans tout ce qui précède, vous pouvez remplacer Contexte par Score
dans votre cas).

> Je m'explique : je suis dans la doc
> (http://lilypond.org/doc/v2.19/Documentation/notation/bars#rehearsal-marks),
> en bas et je lis sur la modification de l'aspect des indications de
> repère :
>
> \set Score.markFormatter = #format-mark-circle-alphabet
>
> Ma 1ère question (mais peut-être que j'ai rien compris) :
>
> Est-ce que je peux inclure ce modificateur dans le bloc layout :
>
> \layout {
>    \context {
>      \Score
>        \override /markformatter//
> /  }
> }

C’est presque exactement ça, sauf qu’il faut utiliser seulement
\layout {
  \context {
    \Score
    markFormatter = #format-mark-circle-alphabet
  }
}

> Ma 2e question : dans quel coin de la doc je pourrais trouver un truc du
> style :
>
> \set Score.markFormatter = #with-color=red

Ah, c’est un peu différent, la solution la plus simple (de loin) serait :

\override Score.RehearsalMark.color = #red

ou (comme je l’expliquais)

\layout {
  \context {
    \Score
    \override RehearsalMark.color = #red
  }
}

> Et que j'ai écrit une fonction... qui ressemble quand même à de l'eau
> tiède, et que je suis en train de réinventer le fil à couper le beurre !

Jolie fonction, ça pourrait quasiment marcher mais il y a plus simple là aussi :

% Pompé sans vergogne du fichier scm/translation-functions.scm

#(define-public (format-mark-red mark context)
   (make-with-color-markup red
    (make-bold-markup (make-markalphabet-markup (1- mark)))))

\layout {
  \context {
    \Score
    markFormatter = #format-mark-red
  }
}

… ou bien, comme nous disions,

\new Staff {
  \set Score.markFormatter = #format-mark-red
  \mark \default
  c'2 c'4 c' c'1
}

Cordialement,
V.



reply via email to

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