Subject: Couleur des portées d'un instrument dans une partition à plusieurs

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Tue, 26 Oct 2010 19:56:45 +0200

Bonjour,

dans un message précédent je posais la question suivante :

 > comment mettre l 'arrière plan d'une portée
 > en couleur ?

oui il faut faire une boite

http://lsr.dsi.unimi.it/LSR/Item?id=699

Merci à Martial qui m'a répondu mais sa réponse ne concerne pas 
seulement UNE portée mais tout l'arrière plan d'une partition.

Je voudrais que seulement la portée d'un instrument soit en couleur. 
(Et, si possible, choisir la couleur ! (mais là, j'en demande peut être 
trop !)

Merci d'avance
-- 
JJG
(En raison du degré important de mon "oublitude", je demande à mes 
correspondants
de me prévenir à l'approche d'un rendez-vous prochain)

---

From: Valentin Villenave <[email-masked]>
Date: Tue, 26 Oct 2010 23:35:05 +0200

2010/10/26 Jean-Jacques Gerbaud <[email-masked]>:
> Merci à Martial qui m'a répondu mais sa réponse ne concerne pas seulement
> UNE portée mais tout l'arrière plan d'une partition.
>
> Je voudrais que seulement la portée d'un instrument soit en couleur. (Et, si
> possible, choisir la couleur ! (mais là, j'en demande peut être trop !)

Quelque chose comme ça ?

\new Staff \with {
  \override StaffSymbol #'stencil = #(lambda (grob)
     (let* ((staff (ly:staff-symbol::print grob))
            (X-ext (ly:stencil-extent staff X))
            (Y-ext (ly:stencil-extent staff Y)))
          (ly:stencil-add
            (ly:make-stencil (list 'color (rgb-color 1 0.8 0.6)
                (ly:stencil-expr (ly:round-filled-box X-ext Y-ext 0))
                X-ext Y-ext))
            staff)))
}
{ a'1 }

Cordialement,
V. Villenave.

---

From: Martial <[email-masked]>
Date: Tue, 26 Oct 2010 23:46:41 +0200

ou bien comme ça

\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)

\new Staff
\relative c' {
	\override Staff.StaffSymbol #'color = #green
  	 c8[ c] e[ e] g[ g] e4
}

C'est dans la doc au même endroit que précedement
http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Inside-the-staff#Coloring-objects

-- 
Martial

---

From: Valentin Villenave <[email-masked]>
Date: Wed, 27 Oct 2010 01:21:12 +0200

2010/10/27 Jean-Jacques Gerbaud <[email-masked]>:
> Et pour changer de couleur ?

Bon, cette fois je mets ça sur le LSR:
http://lsr.dsi.unimi.it/LSR/Item?id=726

> Mais il faut avouer que c'est vachement difficile à trouver dans la
> documentation et qu''il faut bien connaître la grammaire de Lilypond pour
> trouver, mais je vous fais confiance à tous les deux :-) Bravo encore.

Ça n'est pas difficile à trouver, c'est juste que pour parvenir à
rédiger ce type de fonctions il faut un peu de pratique...

> Merci encore pour les solutions que vous proposez aux utilisateurs de
> Lilypond. Et je dois dire que plus j'utilise ce logiciel plus je suis épaté
> par ses possibilités non seulement techniques mais esthétiques. Et je ne
> manque pas d'en faire la propagande.

Travers que je ne peux que vous inviter à cultiver, dans la mesure où
c'est là notre seul moyen de publicité.

> Et si on écarte le présent sujet (plus complexe ?), c'est quelquefois d'une
> facilité déconcertante : pour rajouter les paroles, un petit
> \add lyrics
> suivi du texte, bien séparé avec une syllabe pour les notes (qu'on peut
> adapter) et voilà les paroles bien alignées sous les notes correspondantes !

Absolument. Au demeurant, c'est \addlyrics, sans espace :-)

Cordialement,
V. Villenave.

---

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Wed, 27 Oct 2010 00:38:55 +0200

>                 (ly:stencil-expr (ly:round-filled-box X-ext Y-ext 0))

C'est exactement ça ! Merci Valentin (Et désolé pour Martial...

Mais il faut avouer que c'est vachement difficile à trouver dans la 
documentation et qu''il faut bien connaître la grammaire de Lilypond 
pour trouver, mais je vous fais confiance à tous les deux :-) Bravo encore.

Mais j'avais trouvé une solution qui me satisfaisait, faute de mieux :

J'ai rajouté ça dans ma partition, pour la partie qui me concerne :
	\override Staff.StaffSymbol #'color = #(x11-color 'red)
         \override NoteHead #'color = #red
         \override Stem #'color = #red
         \override Beam #'color = #red

Merci encore pour les solutions que vous proposez aux utilisateurs de 
Lilypond. Et je dois dire que plus j'utilise ce logiciel plus je suis 
épaté par ses possibilités non seulement techniques mais esthétiques. Et 
je ne manque pas d'en faire la propagande.

Et si on écarte le présent sujet (plus complexe ?), c'est quelquefois 
d'une facilité déconcertante : pour rajouter les paroles, un petit
\add lyrics
suivi du texte, bien séparé avec une syllabe pour les notes (qu'on peut 
adapter) et voilà les paroles bien alignées sous les notes correspondantes !

Bravo à tous ceux qui participent à ce projet. (et à vous aussi, bien sûr)

---

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Thu, 28 Oct 2010 10:49:45 +0200

>                 (ly:stencil-expr (ly:round-filled-box X-ext Y-ext 0))

Voici la partition à laquelle je voudrais appliquer la propriété 
ci-dessus (portée du milieu)

\score {
<<

         {
          \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)	
          \override Score.BarNumber  #'break-visibility 
=#end-of-line-invisible
          \override Score.RehearsalMark  #'padding = #2.5
          \resetBarnum
         }

         \context Staff = "track 1" <<
             \set Staff.instrumentName = \markup { \column { "Fl.Alto + 
htb" } }
             \set Staff.midiInstrument = "Oboe"
             \set Score.skipBars = ##t
             \set Staff.printKeyCancellation = ##f
             \new Voice \global
             \new Voice \globalTempo
\relative c''

             \context Voice = "voice 1" {
             	\override Staff.VerticalAxisGroup #'minimum-Y-extent = 
#'(-6 . 6)
                 \override Voice.TextScript #'padding = #2.0
                 \override MultiMeasureRest #'expand-limit = 1
                 \once \override Staff.TimeSignature #'style = #'() 
\time 2/2
                 \clef "treble"
                 \key g \major
                 \time 2/2
                 \repeat volta 2 {
	\mark \markup { \fontsize #2 "Ritournelle" }              	
         r2 r4 r8 d8
         \bar "|:" d1
         e4 e d4. c8
         b2. b4
         c4 d e d
         c4 b a2	
	 ............
	\bar "|:"
	    }
			>> % fin partition hautbois
	
	    \context Staff = "track 2" <<
{  \override StaffSymbol #'stencil = #(lambda (grob)
      (let* ((staff (ly:staff-symbol::print grob))
             (X-ext (ly:stencil-extent staff X))
             (Y-ext (ly:stencil-extent staff Y)))
           (ly:stencil-add
             (ly:make-stencil (list 'color (rgb-color 1 0.8 0.6)
                 (ly:stencil-expr (ly:round-filled-box X-ext Y-ext 0))
                 X-ext Y-ext))
             staff)))
}
             \set Staff.instrumentName = \markup { \column { "Fl.basse + 
bsn" } }
             \set Staff.midiInstrument = "bassoon"
             \set Score.skipBars = ##t
             \set Staff.printKeyCancellation = ##f
             \new Voice \global
             \new Voice \globalTempo
\relative c
             \context Voice = "voice 2"
            {
            	\override Voice.TextScript #'padding = #2.0
                 \override MultiMeasureRest #'expand-limit = 1
                 \once \override Staff.TimeSignature #'style = #'() 

                 \clef "bass"
                 \key g \major
                 \time 2/2

        R1
        r4 r8 g'8 g2
        c,4 c d4. d8
        e4. fis8 g4. g8
        a4 b c b
        a4 g d2
	...........
    	 	} % fin voice 2
  	   	 	
            	 					>> % fin Track 2

(vient ensuite le cello qu'il est inutile que j'ajoute.)

Dans l'écriture ci-dessus, tout fonctionne, les notes sont à leur place, 
  sauf que la partie 2 ne comporte pratiquement plus de barres de 
mesures ! Idem pour les barres de reprise ou de répétition.

Si je pouvais avoir un petit tuyau, astuce, aide, suggestion, ... (Et 
aussi ce que je pourrais éventuellement ajouter ou enlever)

Merci

---

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Thu, 28 Oct 2010 11:01:30 +0200

>                 (ly:stencil-expr (ly:round-filled-box X-ext Y-ext 0))

Dans mon dernier message j'ai oublié d'ajouter que le texte ci-dessus 
avait été placé en tête du fichier, juste après la version (2.13.22)

Désolé pour cet oubli :-(

---

From: Martial <[email-masked]>
Date: Thu, 28 Oct 2010 14:02:00 +0200

Il aurait été plus simple de nous envoyer le fichier en entier.

Sur ce genre de partition il vaut mieux travailler avec des identificateurs.

D'après ton fichier
ci-joint

-- 
Martial

---

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Thu, 28 Oct 2010 15:18:04 +0200

> Il aurait été plus simple de nous envoyer le fichier en entier.
oui, mais je croyais qu'on ne pouvait pas joindre des fichiers. En tout 
cas, le voici en PJ
> Sur ce genre de partition il vaut mieux travailler avec des 
oui, effectivement, ça me  semble plus simple.

J'ai rajouté la troisième voix (cello)
Il s'agit d'une ritournelle du Bourgeois Gentilhomme de Lulli, que nous 
allons monter en Mars avec acteurs et danseurs.

Comme dans mon fichier précédent, les barres de mesures ou de reprises 
n'apparaissent pas avec la colorisation. Sans la colorisation, tout est 
en place. (C'est sans doute normal mais je ne sais pas pourquoi !)
-- 
JJG
(En raison du degré important de mon "oublitude", je demande à mes 
correspondants
de me prévenir à l'approche d'un rendez-vous prochain)
\version "2.13.22"

%% Identification
voixI = \relative c'' 
\context Voice = "voice 1"{ 
	\override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 6)
                \override Voice.TextScript #'padding = #2.0
                \override MultiMeasureRest #'expand-limit = 1
                \once \override Staff.TimeSignature #'style = #'()
                \clef "treble"
                \key g \major
                \time 2/2
                \repeat volta 2 {
    \mark \markup { \fontsize #2 "Ritournelle" }                 
     
                    \repeat volta 2 { 
% 7
	g2 b4. c8
	a2 fis4. fis8
	g2 e4 a
	g4 fis e4. d8
			}
	\alternative {
			{d2. r8 d'8}
			{d,1}  \bar "|:"
		     }	
		     \repeat volta 2 {	     
		     
	a'4. g8 a4. b8
% 14
	c2 c4. d8
	b2 b4. c8
	d2 c4. b8
	a2 a4. g8
	fis4. d'8 d4. c8
	b4 b b4. a8
	g4. g8 g2
% 21	
	e4. e'8 e4. d8
	c4 c c4. b8 a4. b8 b2
	a2 r4 d
	c4. b8 a4. g8
		     }
	\alternative {
			{g1}
			{g1}  
		     }	
	 \bar "|."	

        } 
}
%%% A la compilation, j'ai un message qui me dit "qu'il y a plus d'alternatives
%% que de répétitions". Pourtant ce qui est écrit là est conforme au texte original.

voixII = \relative c 
\context Voice = "track 2" { 
	\override Voice.TextScript #'padding = #2.0
                \override MultiMeasureRest #'expand-limit = 1
                \once \override Staff.TimeSignature #'style = #'()
                \clef "bass"
                \key g \major
           R1
       r4 r8 g'8 g2
       c,4 c d4. d8
       e4. fis8 g4. g8
       a4 b c b
       a4 g d2
% 7
	e2 e4. e8
	e2 dis4. dis8 
	e2 e4 e 
	cis4 d
	a4. d8
	d1
	d1
	d4. d8 c4. b8
% 14
	a2 a4. a8 
	e'2 d4. c8
	b2 c4 c
	d2 cis4. d8
	d1
	r4 r8 g8 g4. f8\!   
	e4. e8 e4. d8
% 21
	c4. c8 c4. b8 
	(a4.) a'8 a4. g8
	fis4. fis8 g2
	d2 r4 b
	c4 c d4. g,8
	g1 
	g1            	
   
}
voixIII = \relative c 
\context Voice = "voice 3"{ 
	\override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 6)
                \override Voice.TextScript #'padding = #2.0
                \override MultiMeasureRest #'expand-limit = 1
                \once \override Staff.TimeSignature #'style = #'()
                \clef "bass"
                \key g \major
                \time 2/2
       g1
       g'1
       c,2 d
       e4. fis8 g2
       a4 b c b
       a4 g d2
% 7
	e2 e2~
	e2 dis2 e1
	cis4 d a2
	d,2 d'
	d,1
	d'2 c4. b8
% 14
	a1
        e'2 d4. c8
        b2 c
        d2 cis
        d4. e8 fis4 d
        g2 g4. f8
        e2 e4. d8
% 21
	c2 c4. b8
	a2 a'4. g8
	fis2 g
	d2 b
	c2 d
	g,4 a b g
	g1
           
  	    }             

%%------------------------------------
%%% Edition portée system 
\score {
<<
\new Staff  {\voixI }
		
\new Staff {
	%\with { %%colorisation de cette portée
	%  \override StaffSymbol #'stencil = #(lambda (grob)
	% (let* ((staff (ly:staff-symbol::print grob))
	%		(X-ext (ly:stencil-extent staff X))
	%		(Y-ext (ly:stencil-extent staff Y)))
	%		(ly:stencil-add
	%			(ly:make-stencil (list 'color (rgb-color 1 0.8 0.6)
	%			(ly:stencil-expr (ly:round-filled-box X-ext Y-ext 0))
	%		X-ext Y-ext))
	%		staff)))
	%		}  
	\voixII }
\new Staff {\voixIII}		
 \layout { }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

---

From: Valentin Villenave <[email-masked]>
Date: Thu, 28 Oct 2010 15:59:56 +0200

2010/10/28 Jean-Jacques Gerbaud <[email-masked]>:
> n'apparaissent pas avec la colorisation. Sans la colorisation, tout est en
> place. (C'est sans doute normal mais je ne sais pas pourquoi !)

La commande \with se place juste après le nom du contexte :

\new Staff \ with {blabla} { ma voix }

et non, comme dans votre fichier :

\new Staff { \with {blabla} ma voix }

Cordialement,
V. Villenave.

---

From: Martial <[email-masked]>
Date: Thu, 28 Oct 2010 16:56:37 +0200

ha zut j'ai laissé une accolade
sur le 1er  Staff
supprimer pour avoir ceci
\new Staff \voixI

-- 
Martial

---

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Thu, 28 Oct 2010 17:13:04 +0200

> supprimer pour avoir ceci
Pareil, rien n'a changé ... (voir ma copie d'écran dans mon message 
précédent)

voici la dernière partie de mon fichier .ly

%%% Edition portée system
\score {
<<
\new Staff  \voixI -------------------> 1ère portée
		
\new Staff \with { %% colorisation de cette portée
	  \override StaffSymbol #'stencil = #(lambda (grob)
	 (let* ((staff (ly:staff-symbol::print grob))
		(X-ext (ly:stencil-extent staff X))
		(Y-ext (ly:stencil-extent staff Y)))
		(ly:stencil-add
			(ly:make-stencil (list 'color (rgb-color 1 0.8 0.6)
			(ly:stencil-expr (ly:round-filled-box X-ext Y-ext 0))
			X-ext Y-ext))
			staff)))
		}
	\voixII  ---------------------> 2ème portée
	
\new Staff \voixIII  ---------------------> 3ème portée

  \layout { }
}

J'ai supprimé les accolades ouvrantes et fermantes enfermant les \voix

C'est si dur que ça pour avoir tout en ordre ?

---

From: Valentin Villenave <[email-masked]>
Date: Thu, 28 Oct 2010 17:17:10 +0200

2010/10/28 Jean-Jacques Gerbaud <[email-masked]>:
> Merci Valentin de perdre ton temps avec moi.
>
> Je dois être un peu lourd (mais oui, mais oui... :-)) mais je fais comme tu
> dis et ça ne marche toujours pas. S'il n'y a rien à faire, laisse tomber, je
> trouverai un autre moyen. C'est déjà pas si mal comme ça.

Oups, toutes mes excuses. Il y avait un bug dans mon code : le
rectangle de couleur s'imprimait sous les lignes de la portée mais
par-dessus certaines barres de mesure. J'ai ajouté une ligne pour le
forcer à se mettre sur une couche ("layer") plus basse.

Voici votre fichier avec quelques corrections d'indentation, et une
fonction rectifiée.

Cordialement,
V. Villenave.