Un peu de couleur...

Bonjour,

j'ai vu comment coloriser certains objets (têtes de notes, hampes, barres de mesures...) mais serait-il possible de coloriser l’intérieur de la portée, entre les lignes, pour une mesure en particulier ?

j'ai quelques élèves débutants en jazz et je tente de leur indiquer comment préparer leur grille d'impro. Voilà un exemple de ce que j'aimerai obtenir. Pour l'instant j'importe le pdf dans gimp pour coloriser.

···
-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
[https://myrealbook.vintherine.org/](https://myrealbook.vintherine.org/) - [http://photos.vintherine.org/](http://photos.vintherine.org/)

En voilà une question qu'elle est intéressante !

Voici une solution possible :

\version "2.22.1"

#(define (define-grob! grob-name grob-entry)
(set! all-grob-descriptions
(cons ((@@ (lily) completize-grob-entry)
(cons grob-name grob-entry))
all-grob-descriptions)))

#(define (staff-colorizer::text grob)
(let* ((staff-symbol (ly:grob-object grob 'staff-symbol))
(left (ly:spanner-bound grob LEFT))
(right (ly:spanner-bound grob RIGHT))
(refp (ly:grob-common-refpoint
grob
(ly:grob-common-refpoint left right X)
X))
(spacing-pair (ly:grob-property grob 'spacing-pair))
(coord-adjust (ly:grob-relative-coordinate grob refp X))
(x-span (cons (+ (ly:grob-relative-coordinate left refp X)
(interval-end (ly:paper-column::break-align-width left (car spacing-pair)))
(- (ly:grob-relative-coordinate left
(ly:grob-parent left X)
X))
(- coord-adjust))
(+ (ly:grob-relative-coordinate right refp X)
(interval-start (ly:paper-column::break-align-width right (cdr spacing-pair)))
(- (ly:grob-relative-coordinate right
(ly:grob-parent right X)
X))
(- coord-adjust))))
(y-span (ly:grob-extent staff-symbol staff-symbol Y)))
(make-filled-box-markup x-span y-span 0)))

#(define-grob!
'StaffColorizer
`((stencil . ,ly:text-interface::print)
(layer . -1)
(text . ,staff-colorizer::text)
(spacing-pair . (staff-bar . staff-bar))
(meta . ((class . Spanner)
(interfaces . (text-interface))))))

#(set-object-property! 'staffColor 'translation-type? color?)

#(define (Staff_colorizer_engraver context)
(let ((current-color #f)
(spanner #f))
(make-engraver
((process-music engraver)
(let ((color (ly:context-property context 'staffColor)))
(if (not (equal? color current-color))
(let ((column (ly:context-property context 'currentCommandColumn)))
(set! current-color color)
(if spanner
(ly:spanner-set-bound! spanner RIGHT column))
(set! spanner (ly:engraver-make-grob engraver 'StaffColorizer '()))
(ly:grob-set-property! spanner 'color current-color)
(ly:spanner-set-bound! spanner LEFT column)))))
((finalize engraver)
(if spanner
(let ((column (ly:context-property context 'currentCommandColumn)))
(ly:spanner-set-bound! spanner RIGHT column)))))))

\layout {
\context {
\Global
\grobdescriptions #all-grob-descriptions
}
\context {
\Staff
\consists #Staff_colorizer_engraver
}
}

staffColor = \set Staff.staffColor = \etc

{
\staffColor red
c'1
\staffColor green
c'2 4 \staffColor cornflowerblue 4
}

Cordialement,
Jean

···

Le 12/12/2021 à 13:54, Vincent Gay a écrit :

Bonjour,

j'ai vu comment coloriser certains objets (têtes de notes, hampes, barres de mesures...) mais serait-il possible de coloriser l’intérieur de la portée, entre les lignes, pour une mesure en particulier ?

j'ai quelques élèves débutants en jazz et je tente de leur indiquer comment préparer leur grille d'impro. Voilà un exemple de ce que j'aimerai obtenir. Pour l'instant j'importe le pdf dans gimp pour coloriser.

Wouah... Du coup même plus besoin de ma petite portée percus dessous.

···

Le 12/12/2021 à 14:48, Jean Abou Samra a écrit :

En voilà une question qu'elle est intéressante !

Voici une solution possible :

-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
[https://myrealbook.vintherine.org/](https://myrealbook.vintherine.org/) - [http://photos.vintherine.org/](http://photos.vintherine.org/)

Wouah... Du coup même plus besoin de ma petite portée percus dessous. Merci infiniment

···

Le 12/12/2021 à 14:48, Jean Abou Samra a écrit :

En voilà une question qu'elle est intéressante !

Voici une solution possible :

-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
[https://myrealbook.vintherine.org/](https://myrealbook.vintherine.org/) - [http://photos.vintherine.org/](http://photos.vintherine.org/)

bonjour Vincent. Super ta partoche!!

Puis -je en avoir un exemplaire, moi aussi a des fin didactique.

Par avance merci.

Christian

Bonjour tout le monde,
C'est en effet une super bonne idée, ces couleurs. Merci à Vincent et à Jean !!
N

···

Le 12/12/2021 à 14:48, Jean Abou Samra a écrit :

En voilà une question qu'elle est intéressante !

Voici une solution possible :

-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
[https://myrealbook.vintherine.org/](https://myrealbook.vintherine.org/) - [http://photos.vintherine.org/](http://photos.vintherine.org/)

Code ci-dessous. Quelques commentaires : 1) J'ai copié / collé le code fourni par Jean ( sans l'exemple de fin) dans un fichier que j'ai appelé staffColor.ly et que j'appelle par un \include. : si on appelle le fichier sans autre modifications toutes les portées sont coloriées en noir. Commencez donc votre code par \staffColor white. (Jean, serait-il possible que le blanc soit la couleur par défaut si non définie ?) 2) Comme je sais que Christian utilise Lilyjazz j'ai laissé jazzchords.ily et lilyjazz.ily dans les \include mais ce n'est pas indispensable et ceux qui n'ont pas Lilyjazz peuvent commenter les 2 lignes sans problème 3) la fonction showStartBar (intégrée dans le code) permet de démarrer par une barre de mesure, ici une barre de reprise. Cela permet aussi de laisser la clef et l'indication de mesure en blanc. J'ai essayé de commencer par un silence invisible (\partial 32 s32) ce qui rendrait cette fonction inutile et permettrait t'intégrer l'armure initiale à l'intérieur de la première mesure mais cela me génère un espace beaucoup trop grand avant la première barre de mesure. J'essaierai de résoudre ça ultérieurement. 4) Lilypond reconnaît les nom de couleurs selon la norme X11. Il y a une liste dans la doc mais sans nuancier. Une petite recherche dans le web permet de trouver un tableau plus facilement utilisable, par exemple ici : Bonne semaine. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

···

Le 12/12/2021 à 18:44, Christian LE BARS a écrit :

bonjour Vincent. Super ta partoche!!

Puis -je en avoir un exemplaire, moi aussi a des fin didactique.

Attention

http://www.css-faciles.com/couleurs-css.php

\version "2.22.1"
#(set-global-staff-size 18)
\include "jazzchords.ily"
\include "lilyjazz.ily"
\include "staffColor.ly"

\paper {
indent = 0\mm
ragged-last-bottom = ##t
ragged-bottom = ##f
ragged-last = ##f
markup-system-spacing = #'((basic-distance . 23)
(minimum-distance . 8)
(padding . 1))
score-system-spacing = #'((basic-distance . 23)
(minimum-distance . 20)
(padding . 5))
}

title = #"Les passantes"
composer = #"Georges Brassens"
meter = #"(Ballad)"

realBookTitle = \markup {
\score {
{
\override TextScript.extra-offset = #'(0 . -4.5)
\staffColor white
s4
s^\markup {
\fill-line {
\fontsize #1 \lower #1 \rotate #7 \concat { " " #meter }
\fontsize #4
\override #'(offset . 9)
\override #'(thickness . 6)
\underline \larger \larger #title
\fontsize #1 \lower #1 \concat { #composer " " }
}
}
s
}
\layout {
\omit Staff.Clef
\omit Staff.TimeSignature
\omit Staff.KeySignature
ragged-right = ##f
}
}
}

voltaAdLib = \markup { 1. 2. 3… \italic \text "ad lib." }
voltaOnCue = \markup \small \text "Last X"

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Start with a Barline
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

showStartBar = {
\once \override Score.BreakAlignment.break-align-orders =
#(make-vector 3 '(instrument-name
left-edge
ambitus
breathing-sign
clef
key-signature
time-signature
staff-bar
custos))
\once \override Staff.TimeSignature.space-alist =
#'((first-note . (fixed-space . 2.0))
(right-edge . (extra-space . 0.5))
;; free up some space between time signature
;; and repeat bar line
(staff-bar . (extra-space . 1)))
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\header {
pdftitle = #title
pdfauthor = #composer
title = \realBookTitle
tagline = ##f
}

\layout {
\context {
\Score
\omit BarNumber
startRepeatType = #"[|:"
endRepeatType = #":|]"
doubleRepeatType = #":|][|:"
\override Clef #'break-visibility = #'#(#f #f #f)
\override KeySignature #'break-visibility = #'#(#f #t #t)
\override SystemStartBar #'collapse-height = #1
}
\context {
\Staff
printPartCombineTexts = ##f
\consists "Merge_rests_engraver"
}
\context {
\ChordNames
\override ParenthesesItem.font-size = #2
}
\context { \Score markFormatter = #format-mark-box-alphabet }
}

accords = \chordmode {
\set chordChanges = ##t
f1:7+ e:7 a:7 d:7 d:m7 g:7 c:7+ e:7
f1:7+ e:7 a:7 d:7 a:m7 g:7 a:m7 g2:m7 c:7 a1:m
}

theNotes = \relative c''' {
\clef "treble" \key f \major \time 4/4
\staffColor white
\showStartBar \bar "[|:"
\set Staff.explicitKeySignatureVisibility = ##'#(#f #t #t)
\override Staff.KeyCancellation.break-visibility = #all-invisible

\repeat volta 2
{
<<
{ \staffColor aqua a1
\key a \major \staffColor pink gis
\key d \major \staffColor orange g!
\key g \major \staffColor yellow fis \break
\key c \major \staffColor Chartreuse f! f e
\key a \major \staffColor pink d \break
\key f \major \staffColor aqua e
\key a \major \staffColor pink d
\key d \major \staffColor orange cis
\key g \major \staffColor yellow c! \break
\key c \major \staffColor Chartreuse c b c }
\
{ e d cis c
c b b gis
a gis g! fis
g f c
}

}
\alternative {
{
\overrideProperty Score.VoltaBracket.text \voltaAdLib
<< { \key f \major \staffColor aqua bes' } \ { f2 e } >> }
{
\overrideProperty Score.VoltaBracket.text \voltaOnCue
<< { \key c \major \staffColor Chartreuse c'1 } \ { e,1 } >> \bar ".." }
}
}

\book {
\paper {
#(set-paper-size "a4")
page-count = #1
}
\bookpart {
\score {
<<
\new ChordNames { \accords }
\new Staff \theNotes

} } }

-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
[https://myrealbook.vintherine.org/](https://myrealbook.vintherine.org/) - [http://photos.vintherine.org/](http://photos.vintherine.org/)

J'ai essayé de commencer par un silence invisible (\partial 32 s32) ce qui rendrait cette fonction inutile et permettrait t'intégrer l'armure initiale à l'intérieur de la première mesure mais cela me génère un espace beaucoup trop grand avant la première barre de mesure. J'essaierai de résoudre ça ultérieurement.

J'ai résolu le problème par
\layout {
\context {
\Score
proportionalNotationDuration = #(ly:make-moment 1/10)
} }
et un \partial 256

voici le code corrigé

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.22.1"
#(set-global-staff-size 18)
\include "jazzchords.ily"
\include "lilyjazz.ily"
\include "staffColor.ly"

\paper {
indent = 0\mm
ragged-last-bottom = ##t
ragged-bottom = ##f
ragged-last = ##f
markup-system-spacing = #'((basic-distance . 23)
(minimum-distance . 8)
(padding . 1))
score-system-spacing = #'((basic-distance . 23)
(minimum-distance . 20)
(padding . 5))
}

title = #"Les passantes"
composer = #"Georges Brassens"
meter = #"(Ballad)"

realBookTitle = \markup {
\score {
{
\override TextScript.extra-offset = #'(0 . -4.5)
\staffColor white
s4
s^\markup {
\fill-line {
\fontsize #1 \lower #1 \rotate #7 \concat { " " #meter }
\fontsize #4
\override #'(offset . 9)
\override #'(thickness . 6)
\underline \larger \larger #title
\fontsize #1 \lower #1 \concat { #composer " " }
}
}
s
}
\layout {
\omit Staff.Clef
\omit Staff.TimeSignature
\omit Staff.KeySignature
ragged-right = ##f
}
}
}

voltaAdLib = \markup { 1. 2. 3… \italic \text "ad lib." }
voltaOnCue = \markup \small \text "Last X"

\header {
pdftitle = #title
pdfauthor = #composer
title = \realBookTitle
tagline = ##f
}

\layout {
\context {
\Score
proportionalNotationDuration = #(ly:make-moment 1/10)
\omit BarNumber
startRepeatType = #"[|:"
endRepeatType = #":|]"
doubleRepeatType = #":|][|:"
\override Clef #'break-visibility = #'#(#f #f #f)
\override KeySignature #'break-visibility = #'#(#f #t #t)
\override SystemStartBar #'collapse-height = #1
}
\context {
\Staff
printPartCombineTexts = ##f
\consists "Merge_rests_engraver"
}
\context {
\ChordNames
\override ParenthesesItem.font-size = #2
}
\context { \Score markFormatter = #format-mark-box-alphabet }
}

accords = \chordmode {
\set chordChanges = ##t
s256
f1:7+ e:7 a:7 d:7 d:m7 g:7 c:7+ e:7
f1:7+ e:7 a:7 d:7 a:m7 g:7 a:m7 g2:m7 c:7 a1:m
}

theNotes = \relative c''' {
\clef "treble" \time 4/4
\staffColor white
\partial 256 s256
%\showStartBar \bar "[|:"
\set Staff.explicitKeySignatureVisibility = ##'#(#f #t #t)
\override Staff.KeyCancellation.break-visibility = #all-invisible

\repeat volta 2
{
<<
{ \key f \major \staffColor aqua a1
\key a \major \staffColor pink gis
\key d \major \staffColor orange g!
\key g \major \staffColor yellow fis \break
\key c \major \staffColor Chartreuse f! f e
\key a \major \staffColor pink d \break
\key f \major \staffColor aqua e
\key a \major \staffColor pink d
\key d \major \staffColor orange cis
\key g \major \staffColor yellow c! \break
\key c \major \staffColor Chartreuse c b c }
\\
{ e d cis c
c b b gis
a gis g! fis
g f c
}
>>
}
\alternative {
{
\overrideProperty Score.VoltaBracket.text \voltaAdLib
<< { \key f \major \staffColor aqua bes' } \\ { f2 e } >> }
{
\overrideProperty Score.VoltaBracket.text \voltaOnCue
<< { \key c \major \staffColor Chartreuse c'1 } \\ { e,1 } >> \bar ".." }
}
}

\book {
\paper {
#(set-paper-size "a4")
page-count = #1
}
\bookpart {
\score {
<<
\new ChordNames { \accords }
\new Staff \theNotes
>>
} } }

···

Le 13/12/2021 à 11:21, Vincent Gay a écrit :

--
Vincent Gay
Envoyé depuis mon saxo-phone :slight_smile:
https://myrealbook.vintherine.org/ - http://photos.vintherine.org/

Effectivement, je ne m'en étais pas rendu compte.
Voici une version corrigée et simplifiée :

\version "2.22.1"

#(define (define-grob! grob-name grob-entry)
(set! all-grob-descriptions
(cons ((@@ (lily) completize-grob-entry)
(cons grob-name grob-entry))
all-grob-descriptions)))

#(define (staff-colorizer::print grob)
(let* ((staff-symbol (ly:grob-object grob 'staff-symbol))
(left (ly:spanner-bound grob LEFT))
(right (ly:spanner-bound grob RIGHT))
(refp (ly:grob-system grob))
(spacing-pair (ly:grob-property grob 'spacing-pair))
(coord-adjust (ly:grob-relative-coordinate grob refp X))
(x-span (cons (- (interval-end (ly:paper-column::break-align-width
left
(car spacing-pair)))
coord-adjust)
(- (interval-start (ly:paper-column::break-align-width
right
(cdr spacing-pair)))
coord-adjust)))
(y-span (ly:grob-extent staff-symbol staff-symbol Y)))
(make-filled-box-stencil x-span y-span)))

#(define-grob!
'StaffColorizer
`((stencil . ,staff-colorizer::print)
(layer . -1)
(spacing-pair . (staff-bar . staff-bar))
(meta . ((class . Spanner)
(interfaces . (text-interface))))))

#(set-object-property! 'staffColor 'translation-type? color?)

#(define (Staff_colorizer_engraver context)
(let ((current-color #f)
(spanner #f))
(make-engraver
((process-music engraver)
(let ((color (ly:context-property context 'staffColor #f)))
(if (and color
(not (equal? color current-color)))
(let ((column (ly:context-property context 'currentCommandColumn)))
(set! current-color color)
(if spanner
(ly:spanner-set-bound! spanner RIGHT column))
(set! spanner (ly:engraver-make-grob engraver 'StaffColorizer '()))
(ly:grob-set-property! spanner 'color current-color)
(ly:spanner-set-bound! spanner LEFT column)))))
((finalize engraver)
(if spanner
(let ((column (ly:context-property context 'currentCommandColumn)))
(ly:spanner-set-bound! spanner RIGHT column)))))))

\layout {
\context {
\Global
\grobdescriptions #all-grob-descriptions
}
\context {
\Staff
\consists #Staff_colorizer_engraver
}
}

staffColor = \set Staff.staffColor = \etc

{
\staffColor red
c'1
\staffColor green
c'2 4 \staffColor cornflowerblue 4
}

Cordialement,
Jean

···

Le 13/12/2021 à 11:21, Vincent Gay a écrit :

Le 12/12/2021 à 18:44, Christian LE BARS a écrit :

bonjour Vincent. Super ta partoche!!

Puis -je en avoir un exemplaire, moi aussi a des fin didactique.

Code ci-dessous. Quelques commentaires :

1) J'ai copié / collé le code fourni par Jean ( sans l'exemple de fin) dans un fichier que j'ai appelé staffColor.ly et que j'appelle par un \include. *Attention* : si on appelle le fichier sans autre modifications toutes les portées sont coloriées en noir. Commencez donc votre code par \staffColor white. (Jean, serait-il possible que le blanc soit la couleur par défaut si non définie ?)

C'est juste parfait. Merci Jean.

···

Le 13/12/2021 à 14:13, Jean Abou Samra a écrit :

Effectivement, je ne m'en étais pas rendu compte.
Voici une version corrigée et simplifiée :

--
Vincent Gay
Envoyé depuis mon saxo-phone :slight_smile:
https://myrealbook.vintherine.org/ - http://photos.vintherine.org/

bonjour a tous.

Juste pour dire qu'avec la version 2.20.0

ben pas de couleur🙁

La version 2.20.0 est la version actuelle du dépôt Ubuntu.

Il va falloir attendre

Le 13/12/2021 à 16:31, Christian LE BARS a écrit :

bonjour a tous.

Juste pour dire qu'avec la version 2.20.0

ben pas de couleur🙁

La version 2.20.0 est la version actuelle du dépôt Ubuntu.

Il va falloir attendre

Bonjour,

C'est normal, les noms de couleurs CSS ne sont apparus
qu'en 2.22. Avant, il n'y avait que le RGB avec
rgb-color, et les noms X11 avec x11-color. En
2.20, il faudrait remplacer, par exemple,

\staffColor aqua

par

\staffColor #(rgb-color 127/255 255/255 0/255)

avec les valeurs (127, 255, 0) à prendre sur un
site dans le goût de
HTML Color Picker.
De plus, il faudrait ajouter une ligne dans la
définition de define-grob! pour que cette fonction
ressemble à :

#(define (define-grob! grob-name grob-entry)
(set-object-property! grob-name 'translation-type? ly:grob-properties?) ;; à rajouter
...)

Mais bon, pas besoin d'attendre en réalité. Vous pouvez
soit mettre à jour Ubuntu vers Hirsute Hippo (la dernière
version), soit, si vous préférez rester en LTS,
installer LilyPond à partir du paquetage
universel officiel fourni sur

http://lilypond.org/unix.fr.html

Cordialement,
Jean

Bonjour a tous.

Je viens der changer la version d'Ubuntu.

Je peux maintenant mettre de la couleur dans mes partitions,

cependant j'aimerai mettre des couleurs plus claires.

qu'elle sont les noms des couleurs?

Par avance merci

Bonjour,

Voir le manuel de notation
NR 1.7.1 [Annotations éditoriales] Dans la portée > Coloration d’objets
https://lilypond.org/doc/v2.23/Documentation/notation/inside-the-staff.fr.html#coloring-objects

et Annexe A.7 Liste des couleurs
https://lilypond.org/doc/v2.23/Documentation/notation/list-of-colors.fr.html

Cordialement,
Xavier

···

On Wed, 16 Mar 2022 at 10:17, Christian LE BARS <****@****> wrote:

Bonjour a tous.

Je viens der changer la version d'Ubuntu.

Je peux maintenant mettre de la couleur dans mes partitions,

cependant j'aimerai mettre des couleurs plus claires.

qu'elle sont les noms des couleurs?

Par avance merci

--

Xavier Scheuer <****@****>

Merci Xavier