Mise en couleur à des fins pédagogique…

Bonjour chers Lilypondiens,

J’ose à peine poster sur cette liste tant mon code est moche, mais je n’arrive pas à trouver de solution. Je dois faire un fragment qui est la réponse à un problème posé aux élèves.
Le code (un peu trop long pour être posté, et assez difficile à “minimiser”) est ici : http://lilybin.com/ixnhda/4

J’ai deux problèmes (par ordre d’importance) :

  1. je dois faire en sorte que la dernière note (la plus grave, en “gris") de chaque accord soit dans la portée en clef de fa (et si je peux éviter de tout refaire en voix séparées, je serais bien content…)

  2. la mise en couleurs des notes ne s’applique… qu’aux têtes de notes (et j’ai besoin qu’au moins les altérations soient colorées aussi)… Accessoirement, c’est très moche comme façon de faire. J’ai vainement essayé de mettre le \tweak dans une variable, mais ça ne fonctionne pas :frowning:

Merci de vos lumières, ô Grands Sachems de la Mare-aux-Nénuphars*.

tabo.

* comment ça “la flatterie ça ne marche pas” ?

Bonjour Jean-Christophe,

Une solution possible :

%%%
\version "2.18.2"

carrure = {
\key des \major
\numericTimeSignature
\time 4/4
}

accords = {
\chordmode {
f4.:7.9+ ees8:m7.9 s2|
des4:6.9 c2.:7.9+ |
f4.:7.9+ ees8:m7.9 s4. d8:7.9+
s4 ces:7
}
}

md = \transpose c c' {
\voiceOne
\carrure
aes4. f8~ f2 |
ees4 ees2. |
aes4. f8~ f4 f8 f~ |
f4 ees2
}

mg = {
\carrure
\clef "bass"
<<
\new Voice {
\voiceOne
\override Stem.cross-staff = ##t
\override Stem.length = #16
\override Stem.layer = #-1
\override NoteHead.color = #(rgb-color 0.141 0.619 0.337)
\override Stem.color = #(rgb-color 0.141 0.619 0.337)
\override Dots.color = #(rgb-color 0.141 0.619 0.337)
\override Accidental.color = #(rgb-color 0.141 0.619 0.337)
\override Tie.color = #(rgb-color 0.141 0.619 0.337)
\override Flag.stencil = ##f
\stemUp
\tieNeutral
<ees c'>4. <ges des'>8~ q2 4 2. |
<a ees'>4. <ges des'>8~ q4 s8 <f c'>~ |
q4 2
}
\new Voice
\relative c {
\voiceTwo
f,8 ges f ees( ees2) |
des4 c2. |
f8 ges f ees( ees4.) d8( |
d4) ces'2
}

}

\score {
<<
\new ChordNames { \accords }
\new PianoStaff
<<
\new Staff = "upper" \md
\new Staff = "lower" \mg

\layout {
\hide Staff.TimeSignature
ragged-right = ##f
}
}
%%

Cordialement,
Pierre

···

Le jeu. 24 janv. 2019 à 08:21, Jean-Christophe Taboada <****@****> a écrit :

Bonjour chers Lilypondiens,

J’ose à peine poster sur cette liste tant mon code est moche, mais je n’arrive pas à trouver de solution. Je dois faire un fragment qui est la réponse à un problème posé aux élèves.
Le code (un peu trop long pour être posté, et assez difficile à “minimiser”) est ici : http://lilybin.com/ixnhda/4

J’ai deux problèmes (par ordre d’importance) :

  1. je dois faire en sorte que la dernière note (la plus grave, en “gris") de chaque accord soit dans la portée en clef de fa (et si je peux éviter de tout refaire en voix séparées, je serais bien content…)

  2. la mise en couleurs des notes ne s’applique… qu’aux têtes de notes (et j’ai besoin qu’au moins les altérations soient colorées aussi)… Accessoirement, c’est très moche comme façon de faire. J’ai vainement essayé de mettre le \tweak dans une variable, mais ça ne fonctionne pas :frowning:

Merci de vos lumières, ô Grands Sachems de la Mare-aux-Nénuphars*.

tabo.

* comment ça “la flatterie ça ne marche pas” ?


liste de diffusion lilypond-user-fr
lilypond-user-fr@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr

Le code (un peu trop long pour être posté, et assez difficile à “minimiser”)
est ici : http://lilybin.com/ixnhda/4 <lilybin.com;

Bof, cent lignes de code, ce n’est pas un problème sur la liste… (ci-dessous).

1. je dois faire en sorte que la dernière note (la plus grave, en “gris") de
chaque accord soit dans la portée en clef de fa (et si je peux éviter de
tout refaire en voix séparées, je serais bien content…)

Ah bin ça évidemment, c’est

Mais effectivement, cela nécessite de virer la note inférieure de
chaque accord et de la remettre dans la portée du bas.

2. la mise en couleurs des notes ne s’applique… qu’aux têtes de notes (et
j’ai besoin qu’au moins les altérations soient colorées aussi)…
Accessoirement, c’est très moche comme façon de faire. J’ai vainement essayé
de mettre le \tweak dans une variable, mais ça ne fonctionne pas :frowning:

Ça _peut_ fonctionner à condition d’utiliser la toute dernière version
de LilyPond, et d’ajouter \etc ensuite pour que \tweak ait bien le bon
nombre d’arguments. L’avantage est qu’on peut ainsi facilement ajouter
des tweaks pour d’autres objets (altérations, points etc.). Ci-dessous
un code compatible avec 2.18, mais il sera facile de substituer
\enVert à \tweak color.

Merci de vos lumières, ô Grands Sachems de la Mare-aux-Nénuphars*.

Pas mal comme nom de secte…

%%%%%%%%%%%%%%%%%%%
%[[ExTranThe-q3f1-corr]]
\version "2.18.2"

\paper {
  indent=0\mm
  line-width=160\mm
  oddFooterMarkup=##f
  oddHeaderMarkup=##f
  bookTitleMarkup=##f
  scoreTitleMarkup=##f
}
carrure = {
  \key des \major
  \numericTimeSignature
  \time 4/4
}

accords = {
  \chordmode {
    f4.:7.9+ es8:m7.9 s2|
    des4:6.9 c2.:7.9+ |
    f4.:7.9+ es8:m7.9 s4. d8:7.9+
    s4 ces:7
  }
}

vert=#(rgb-color 0.141 0.619 0.337)

% 2.19 minimum
enVert =
\tweak NoteHead.color \vert
\tweak Dots.color \vert
\tweak Accidental.color \vert
\tweak AccidentalCautionary.color \vert
\etc

md = {
  \carrure
  \relative c' \crossStaff {
    < % \enVert
    \enVert c
    aes'>4. <
    \enVert des
    >8~ q2 |
    <
    \enVert bes
    es?>4 q2. |
    <
    \enVert es
    aes?>4. <
    \enVert des
    >8~ q4 f8 <
    \enVert c
    >~ | q4 <
    \enVert bes
    es?>2.
  }
}
mg = {
  \carrure
  \clef "bass"
  <<
    \crossStaff {
      \override NoteHead.color = \vert
      \override Dots.color = \vert
      \override Accidental.color = \vert
      es4. ges8~ ges2
      f4 e2.
      a4. ges8~ ges4 s8 f~
      f4 es2.
    } \\
    \relative c {
      f,8 ges f es_( es2) |
      des4 c2. |
      f8 ges f es_( es4.) d8_( |
      d4) ces'2
    }
  >>
}

\score {
  <<
    \new ChordNames { \accords }
    \new PianoStaff
    <<
      \new Staff = "upper" \md
      \new Staff = "lower" \mg
    >>
  >>
  \layout {
    \hide Staff.TimeSignature
    ragged-right = ##f
    \context {
      \PianoStaff
      \consists #Span_stem_engraver
    }
  }
}
%%%%%%%%%%%%%

V.

···

On 1/24/19, Jean-Christophe Taboada <****@****> wrote:

Merci beaucoup à Pierre et Valentin pour leurs réponses et codes. Je tâche de bien comprendre tout ça ce soir, et vous en fait un retour le cas échéant (la demande initiale qu’on m’a fait ayant évolué un petit peu, je vais sans doute poster ici le résultat final et ferai une réponse plus circonstanciée).

Dans l’intervalle, mes remerciements admiratifs au duo PPS/VV

t.

PS: je n’ose corriger l’hénaurme fôte de grammaire dans le titre du post initial, pour ne pas perturber le fil de discussion. Avec mes piteuses les plus plates.