Afficher les textes sur fond blanc

Bonsoir à tous,

Dans la version 2.13 existe une nouvelle possibilité, celles d'imprimer un
objet en supprimant ce qui se trouve derrière lui, donc en l'imprimant sur
fond blanc.

Sur la page http://lilypond.org/doc/v2.13//Documentation/changes/index on
trouve l'exemple suivant qui permet d'afficher le TimeSignature par dessus
une liaison de prolongation :

\time 3/4
\override Staff.StaffSymbol #'layer = #4
\once \override Tie #'layer = #2
b'2.~
\once \override Staff.TimeSignature #'whiteout = ##t
\once \override Staff.TimeSignature #'layer = #3
\time 5/4
b4

http://lilypond-french-users.1298960.n2.nabble.com/file/n5249180/lily-a812d7d2.png

Je voudrais utiliser cette possibilité pour imprimer les \markup (et
éventuellement les nuances dynamiques) par dessus les barres de mesure dans
une partition multi-portées.

Je pense au code suivant :

\override Staff.BarLine #'layer = #2
\override TextScript #'layer = #3

Ça ne marche pas malgré plusieurs essais.

Alors, deux questions :
- Ce code est-il correct ?
- Et surtout, où le placer ?
En tête de chaque \staff ?
En tête du \score ? Surement pas, car un message d'erreur apparaît à la
compilation.
En tête de chaque \Voice ? là pas d'erreur de compilation, mais ça ne donne
rien.
Devant chaque \markup concerné ? là aussi, pas de message à la compilation,
mais ça ne fonctionne pas.

Merci d'avance de vos conseils,

Jean-François

···

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Afficher-les-textes-sur-fond-blanc-tp5249180p5249180.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

Seventies wrote:

- Et surtout, où le placer ?

voilà comment je le ferais:

\layout {
  \context {
    \Score
    \override BarLine #'layer = #-4
  }
  \context {
    \Staff
    \override BarLine #'layer = #-4
    \override TimeSignature #'layer = #-2
    \override TimeSignature #'whiteout = ##t
  }
  \context {
    \Voice
    \override Tie #'whiteout = ##t
    \override Tie #'layer = #-3
    \override TextScript #'whiteout = ##t
    \override TextScript #'layer = #4
  }
}
\context StaffGroup = "1" {
  <<
    \context Staff = "1" {
      \relative c' {
        \time 3/4
        b'2.~
        \time 5/4
        b4 b b b b
      }
    }
    \context Staff = "2" {
      \relative c' {
        c d e ^\markup "very long text" f g f e d
      }
    }
  >>
}

···

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Afficher-les-textes-sur-fond-blanc-tp5249180p5250764.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

== En réponse au message du 03-07-2010, 12:50:43 ==

Seventies wrote:

- Et surtout, où le placer ?

voilà comment je le ferais:

\layout {
\context {
   \Score
   \override BarLine #'layer = #-4
}
\context {
   \Staff
   \override BarLine #'layer = #-4
   \override TimeSignature #'layer = #-2
   \override TimeSignature #'whiteout = ##t
}
\context {
   \Voice
   \override Tie #'whiteout = ##t
   \override Tie #'layer = #-3
   \override TextScript #'whiteout = ##t
   \override TextScript #'layer = #4
}
}
\context StaffGroup = "1" {
<<
   \context Staff = "1" {
     \relative c' {
       \time 3/4
       b'2.~
       \time 5/4
       b4 b b b b
     }
   }
   \context Staff = "2" {
     \relative c' {
       c d e ^\markup "very long text" f g f e d
     }
   }
>>
}

--

Ça marche parfaitement, grand merci.

Reste à l'appliquer à mon code, et là, ce sera moins facile :wink:

Amicalement,

Jean-François

== En réponse au message du 03-07-2010, 12:50:43 ==

voilà comment je le ferais:

\layout {
\context {
   \Score
.........
       c d e ^\markup "very long text" f g f e d
     }
   }
>>
}

--

Voilà, c'est intégré dans le code, et ça marche parfaitement.

J'ai placé les lignes suivantes :
      \override TextScript #'whiteout = ##t
      \override TextScript #'layer = #4
      \override DynamicText #'whiteout = ##t
      \override DynamicText #'layer = #4

et les \markup de même que les nuances créent un blanc dans les barres de mesures, exacrement comme souhaité.
Par la même occasion, j'ai un peu mieux compris la structure des layout et de LilyPond en général.
Toutefois, ça ne marche pas avec les nuances "cresc.".

J'ajoute donc ces lignes :
      \override DynamicTextSpanner #'whiteout = ##t
      \override DynamicTextSpanner #'layer = #4

et ça fonctionne pour les "cresc." et autres "dim.", mais malheureusement aussi pour les lignes de prolongation, ce qui est beaucoup moins esthétique.

Est-il possible de 'découpler' les textes "cresc." des lignes de prolongation ?

Merci de vos conseils,

Amicalement,

Jean-François

Seventies wrote:

J'ajoute donc ces lignes :
      \override DynamicTextSpanner #'whiteout = ##t
      \override DynamicTextSpanner #'layer = #4

et ça fonctionne pour les "cresc." et autres "dim.", mais malheureusement
aussi pour les lignes de prolongation, ce qui est beaucoup moins
esthétique.

je ne trouve ça pas si laid - mais peut-être que ton exemple est différent?!

Est-il possible de 'découpler' les textes "cresc." des lignes de
prolongation ?

je crains que non.

···

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Afficher-les-textes-sur-fond-blanc-tp5249180p5251947.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

== En réponse au message du 03-07-2010, 22:53:10 ==

Seventies wrote:

J'ajoute donc ces lignes :
      \override DynamicTextSpanner #'whiteout = ##t
      \override DynamicTextSpanner #'layer = #4

et ça fonctionne pour les "cresc." et autres "dim.", mais malheureusement
aussi pour les lignes de prolongation, ce qui est beaucoup moins
esthétique.

je ne trouve ça pas si laid - mais peut-être que ton exemple est différent?!

Est-il possible de 'découpler' les textes "cresc." des lignes de
prolongation ?

je crains que non.

--

Je m'en doutais, les textes 'cresc.' et les lignes de prolongation dépendant du même graveur.
Mais j'ai trouvé une solution intéressante (vraiment, je viens de commencer à comprendre le coeur de LilyPond) :
Utilisant des macros pour activer/désactiver les lignes de prolongation, il a suffit d'ajouter "\override DynamicTextSpanner #'whiteout = ##t" à la commande qui arrête les lignes de prolongation, et "\override DynamicTextSpanner #'whiteout = ##f" à celle qui les réactive.

Ainsi, les simples textes "cresc.", "dim.", et autres deviennent plus lisibles, interrompant les barres de mesure, tandis que ces mêmes nuances prolongées par des 'spanners' s'impriment normalement, ce qui reste très lisible.

Petit soucis : une série impressionnante de messages :
"Avertissement : La sortie contient l'infini ou une valeur non numérique.
Substitution par 0.0"

Mais aucune conséquence sur le fichier de sortie.

Bonne fin de nuit à tous,

Jean-François