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

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

Re: Colorer un bout de partition


From: Jean Abou Samra
Subject: Re: Colorer un bout de partition
Date: Thu, 22 Dec 2022 14:11:52 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0

Le 22/12/2022 à 13:44, Bernard Meylan a écrit :

Bonjour Jean!

Le 22.12.22 à 13:29, Jean Abou Samra a écrit :


Il y a des snippets pour cela dans la LSR :

https://lsr.di.unimi.it/LSR/Item?id=443
https://lsr.di.unimi.it/LSR/Item?id=985

J'ai essayé le premier (le second ne correspond pas à ce que j'aimerais) et avec ma version (2.24) contrairement à ce qui est écrit (all-grob-descriptions) et à l'exemple du snippet:

les barres de mesures, les lignes de la portée, l'armure, la métrique et la clé

ne sont pas colorées.




C'est sûrement lié au fait que vous ne mettez pas la commande au
début de la partition. \applyContext s'applique au contexte de plus
bas niveau en cours. Au début, les Staff et Voice ne sont pas encore
créés, mais ensuite, si, donc le \applyContext ne s'applique qu'au
niveau Voice. Pour changer cela, il faut mettre juste devant :
\context Staff.

Pour colorier la portée, il faut aussi créer un nouvel objet de
portée avec \stopStaff \startStaff, sinon on a un seul objet
qui ne peut pas avoir plusieurs couleurs.

\version "2.24.0"

#(define (override-color-for-all-grobs color)
  (lambda (context)
    (for-each
     (lambda (desc)
       (let ((grob-name (car desc)))
         (ly:context-pushpop-property context grob-name 'color color)))
     all-grob-descriptions)))

\relative c' {
  c'1
  \context Staff \applyContext #(override-color-for-all-grobs (x11-color 'blue))
  \stopStaff \startStaff
  c4\pp\< d e f
  \break
  \grace { g16[( a g fis]) } g1\ff\!
  \context Staff \applyContext #(override-color-for-all-grobs "black")
  \stopStaff \startStaff
  c'1
}



Cordialement,
Jean

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

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