Citation d'une autre voix : cas particulier

Bonsoir à l'équipe,

Pour insérer une citation, les fonctions disponibles dans LilyPond sont
assez puissante. Mais un cas particulier - pas si particulier, car il
revient assez souvent - résiste à une solution satisfaisante.

L'exemple suivant montre ce petit défaut :

<http://lilypond-french-users.1298960.n2.nabble.com/file/n7582298/BrahmsPCONC2_quote.png&gt;

Dans cet exemple, une séquence de 23 mesures vides précède la citation, mais
la levée de cette citation empiète sur le silence multi-mesures. Il est en
effet beaucoup plus élégant de noter un silence de 23 mesures qu'un silence
de 22 mesures suivi d'une mesure comprenant la levée. C'est beaucoup plus
naturel pour l'exécutant.

La méthode pour obtenir cet artifice correspond au code suivant :

\version "2.18.2"

quoteScoreViolinoI = \relative c''' {
  R2. * 21
  b2.
  e,4-. r cis'-.
  d2.->
  c2-> b4-.
}

\addQuote scoreViolinoI \quoteScoreViolinoI

\new Staff {
  \relative c''
  {
    \time 3/4
    \clef bass
    \compressFullBarRests
    <<{
      \once \override MultiMeasureRest.extra-offset = #'( -2.5 . 0)
      \once \override MultiMeasureRestNumber.extra-offset = #'( -2.5 . 0)
      R2. * 23
      }
      {
        s4 * 68
        \cueDuringWithClef #"scoreViolinoI" #UP "treble" {
          s4 ^\markup { \fontsize #-2 "Viol.I"} R2. * 2
        }
    }>>
  }
}

avec pour résultat :

<http://lilypond-french-users.1298960.n2.nabble.com/file/n7582298/BrahmsPCONC2_quoteB.png&gt;

Et voilà le problème : la levée de la citation empiète, parfois oui, parfois
non, sur le silence multi-mesures.
Les 2 \override permettent d'améliorer la présentation, mais dans certains
cas, impossible, la place est manquante.

Il suffirait pourtant d'une instruction qui raccourcirait le silence
multi-mesure, l'inverse du minimum-length, qui permettrait de compresser ce
silence de quelques pour-cent.
Ou, autre solution, une instruction qui imposerait une longueur minimale
pour la mesure.

J'ai cherché sans succès une instruction qui réaliserait l'une de ces deux
solutions : raccourcir le silence multi-mesures, ou imposer une longueur
minimale pour la mesure.

Il y a bien une solution : insérer des notes invisibles. Mais ce n'est pas
très élégant.

Quelqu'un aurait-il une idée ?

Merci d'avance de votre aide,

Jean-François

···

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Citation-d-une-autre-voix-cas-particulier-tp7582298.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

Bonjour Jean-François,

À titre perso je l'écrirais ainsi :

\version "2.18.2"

{
\clef bass
\time 3/4
\compressFullBarRests
<<
{ R2.*25 }
\new CueVoice \relative c''' {
s2.*22
\override Staff.MultiMeasureRest.staff-position = #-4
\override Staff.Clef.font-size = #-2
\clef G
s2 cis4-.^\markup "Fl.Ob.Viol.I"
d2.->
c2-> b4-.
\clef F
}

a,2.
\revert Staff.Clef.font-size
\revert Staff.MultiMeasureRest.staff-position
}

Maintenant, si tu tiens absolument à intégrer la première note de la citation dans les 23 1ères mes. tu peux aussi écrire :

\version "2.18.2"

{
\clef bass
\time 3/4
\compressFullBarRests
<<
{ R2.*25 }
\new CueVoice \relative c''' {
s2.*23
\override Staff.MultiMeasureRest.staff-position = #-4
\override Staff.Clef.font-size = #-2
\once\override Staff.Clef.stencil = #(lambda (grob)
ly:clef::print (grob-interpret-markup grob
#{
\markup\raise #1
\score {
{ cis'''4^. }
\layout {
\context {
\Staff
\clef G
\omit TimeSignature
\omit StaffSymbol
fontSize = #-3.7
}
}
}
#}))
\clef G
d2.->-\tweak extra-offset #'(-3.5 . 0)^\markup "Fl.Ob.Viol.I"
c2-> b4-.
\clef F
}

a,2.
\revert Staff.Clef.font-size
\revert Staff.MultiMeasureRest.staff-position
}

Cordialement,

Pierre

···

Le 26 février 2015 23:22, Seventies <****@****> a écrit :

Bonsoir à l'équipe,

Pour insérer une citation, les fonctions disponibles dans LilyPond sont
assez puissante. Mais un cas particulier - pas si particulier, car il
revient assez souvent - résiste à une solution satisfaisante.

L'exemple suivant montre ce petit défaut :

<http://lilypond-french-users.1298960.n2.nabble.com/file/n7582298/BrahmsPCONC2_quote.png>

Dans cet exemple, une séquence de 23 mesures vides précède la citation, mais
la levée de cette citation empiète sur le silence multi-mesures. Il est en
effet beaucoup plus élégant de noter un silence de 23 mesures qu'un silence
de 22 mesures suivi d'une mesure comprenant la levée. C'est beaucoup plus
naturel pour l'exécutant.

La méthode pour obtenir cet artifice correspond au code suivant :

\version "2.18.2"

quoteScoreViolinoI = \relative c''' {
R2. * 21
b2.
e,4-. r cis'-.
d2.->
c2-> b4-.
}

\addQuote scoreViolinoI \quoteScoreViolinoI

\new Staff {
\relative c''
{
\time 3/4
\clef bass
\compressFullBarRests
<<{
\once \override MultiMeasureRest.extra-offset = #'( -2.5 . 0)
\once \override MultiMeasureRestNumber.extra-offset = #'( -2.5 . 0)
R2. * 23
}
{
s4 * 68
\cueDuringWithClef #"scoreViolinoI" #UP "treble" {
s4 ^\markup { \fontsize #-2 "Viol.I"} R2. * 2
}
}>>
}
}

avec pour résultat :

<http://lilypond-french-users.1298960.n2.nabble.com/file/n7582298/BrahmsPCONC2_quoteB.png>

Et voilà le problème : la levée de la citation empiète, parfois oui, parfois
non, sur le silence multi-mesures.
Les 2 \override permettent d'améliorer la présentation, mais dans certains
cas, impossible, la place est manquante.

Il suffirait pourtant d'une instruction qui raccourcirait le silence
multi-mesure, l'inverse du minimum-length, qui permettrait de compresser ce
silence de quelques pour-cent.
Ou, autre solution, une instruction qui imposerait une longueur minimale
pour la mesure.

J'ai cherché sans succès une instruction qui réaliserait l'une de ces deux
solutions : raccourcir le silence multi-mesures, ou imposer une longueur
minimale pour la mesure.

Il y a bien une solution : insérer des notes invisibles. Mais ce n'est pas
très élégant.

Quelqu'un aurait-il une idée ?

Merci d'avance de votre aide,

Jean-François

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Citation-d-une-autre-voix-cas-particulier-tp7582298.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.


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

Ok, merci Pierre pour cette abondante recherche.

La première solution est la plus simple, mais la levée située dans le
silence multi-mesure apparaît des dizaines de fois dans les parties
orchestrales séparées trouvées sur IMSLP. Et à l'usage, c'est plus "naturel"
pour l'instrumentiste. Il compte habituellement les premiers temps des
mesures, et oublie de manière aussi naturelle de compter la levée.

Pour la seconde solution, je vais regarder attentivement le code.
L'inconvénient (mineur) est que je ne peux utiliser directement la voix
citée, il faut reconstruire la citation.

J'ai trouvé une autre solution, beaucoup moins élégante, qui consiste à
placer un texte invisible sur le silence multi-mesures avec l'option
\textLengthOn mais c'est encore du bricolage, et il faut allonger assez
considérablement le silence pour que ça fonctionne.

J'ajouterai encore que, souvent, le simple décalage en X du silence
multi-mesures suffit, sans en modifier la longueur, donc ta solution, avec
un résultat visuel parfait, n'est à appliquer que quelques rares fois.

Je m'attaque donc à cette application cet après-midi, et un tout grand merci
pour ta recherche et ton aide.

Cordialement,

Jean-François

···

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Citation-d-une-autre-voix-cas-particulier-tp7582298p7582300.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

En relisant le schéma de ta seconde solution, je remarque que seule la levée
demande un traitement spécial, celui pour lequel tu as écrit le code - qui
me dépasse un peu, mais qui fonctionne parfaitement.

Pour les mesures suivantes les fonctions classiques de Lily reprennent
facilement la main. Et donc le boulot est plus simple que prévu.

Reste à régler le cas éventuel des liaisons ou autres extenseurs vers la
citation "régulière", mais on verra bien quand le cas se présentera.

Grand merci,

Jean-François.

···

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Citation-d-une-autre-voix-cas-particulier-tp7582298p7582302.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

J'étais justement sur le point d'envoyer un mail à ce propos sur la liste internationale pour voir si quelqu'un avait une autre solution.

Pour expliquer simplement mon code, je remplace le 'grob' de la clef par ce markup :

\markup %\raise #1 %% <= nécessaire pour mettre la clef "à niveau"
\score {
{ cis'''4^. }
\layout {
\context {
\Staff
\clef G
\omit TimeSignature
\omit StaffSymbol
fontSize = #-3.7 %% <= pour s'adapter à la taille 'cueVoice'
}
}
}

c'est une astuce pas très belle mais qui a le mérite d'avoir les dimensions idéales.

Je te tiens au courant si je trouve mieux.

Bien cordialement,

Pierre

···

Le 27 février 2015 16:58, Seventies <****@****> a écrit :

En relisant le schéma de ta seconde solution, je remarque que seule la levée
demande un traitement spécial, celui pour lequel tu as écrit le code - qui
me dépasse un peu, mais qui fonctionne parfaitement.

Pour les mesures suivantes les fonctions classiques de Lily reprennent
facilement la main. Et donc le boulot est plus simple que prévu.

Reste à régler le cas éventuel des liaisons ou autres extenseurs vers la
citation "régulière", mais on verra bien quand le cas se présentera.

Grand merci,

Jean-François.

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Citation-d-une-autre-voix-cas-particulier-tp7582298p7582302.html

Sent from the LilyPond French Users mailing list archive at Nabble.com.


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

Ok, je pense l'avoir déjà signalé en 2013 (à cette époque, je versais souvent
dans le bricolage honteux), mais ta solution tient parfaitement la route.

J'ajouterai encore, pour minimiser le problème, que ce défaut ne survient
que quand la citation se fait avec changement de clef (\cueDuringWithClef).
Avec \cueDuring, on dispose de la place suffisante pour placer le silence
(décalé vers la gauche) et la levée.

Le cas décrit hier peut donc être considéré comme très rare.

···

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Citation-d-une-autre-voix-cas-particulier-tp7582298p7582314.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.