Centrer les nuances sur le centre des notes

Bonjour à tous,

je découvre depuis peu LiyPond et progresse grâce notamment à votre mailing
list et bon nombre de réponses aux questions que je me pose.

Parmi celles-ci figure l'alignement horizontal des indications de nuances et
de pédale sur une partition de piano. J'ai bien trouvé le snippet qui crée
un contexte appelé "Dynamics". Cependant, quand j'utilise celui-ci, les
indications de nuance se trouvent centrées verticalement par rapport au bord
gauche de la note associée alors qu'en temps normal LilyPond centre les
nuances par rapport au centre de la note associée.

J'utilise la dernière version stable de LilyPond soit 2.12.3

L'un d'entre vous aurait-il la raison de cette différence et éventuellement
le moyen de rétablir la position comme sur une portée 'normale' ?

Merci pour votre aide.

···

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Centrer-les-nuances-sur-le-centre-des-notes-tp6001943p6001943.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

Il faut ajouter

\override DynamicText #'X-offset = #0.0

à la definition du contexte "Dynamics".

Cordialement,
Mike

···

On Feb 7, 2011, at 4:39 PM, Damien wrote:

Bonjour à tous,

je découvre depuis peu LiyPond et progresse grâce notamment à votre mailing
list et bon nombre de réponses aux questions que je me pose.

Parmi celles-ci figure l'alignement horizontal des indications de nuances et
de pédale sur une partition de piano. J'ai bien trouvé le snippet qui crée
un contexte appelé "Dynamics". Cependant, quand j'utilise celui-ci, les
indications de nuance se trouvent centrées verticalement par rapport au bord
gauche de la note associée alors qu'en temps normal LilyPond centre les
nuances par rapport au centre de la note associée.

J'utilise la dernière version stable de LilyPond soit 2.12.3

L'un d'entre vous aurait-il la raison de cette différence et éventuellement
le moyen de rétablir la position comme sur une portée 'normale' ?

Merci pour votre aide.

Bonsoir Mike,

j'ai essayé votre proposition, malheureusement elle ne fonctionne pas. En
ajoutant \override DynamicText #'X-offset = #0.0, on obtient l'équivalent
d'un ajustement gauche sur la hampe de note.

Je vous joins un extrait de mon code qui permet de voir (2ème mesure) qu'en
contexte Staff LilyPond centre sur le milieu de la note et non sur la hampe.

% Created on Sun Nov 07 16:52:42 CET 2010
\version "2.12.3"

%Définition de ligne de basse Do v1
LigneBasseDoUn = {
  \relative c {
  << {r16 c8 c c c16} \\ {c,2} >>
  }
}

%-------------------------------------------------------------------------------

%Définition de la main droite
RightHand = {
  \time 2/4
  \tempo 4=36
  \key ees \major
  \clef treble
  \relative c' {

%Mesure 001
  << { r16 g bes ees f8 ees } \\ { s16 g,~ <g bes>4. } >>

%Mesure 002
  << { r16 g \ppp bes ees f8 ees } \\ { s16 g,~ <g bes>4. } >>

  \bar "|."
  }
}

%-------------------------------------------------------------------------------

%Définition de la main gauche
LeftHand = {
  \time 2/4
  \tempo 4=36
  \key ees \major
  \clef bass

%Mesures 001 à 002
  \repeat unfold 2 \LigneBasseDoUn
  
}

%-------------------------------------------------------------------------------

%Définition des nuances

Nuances = {
  \time 2/4
  \tempo 4=36

%Mesure 001
  s16 s \ppp s4.

}

%-------------------------------------------------------------------------------

%Définition de la partition

\paper {

}

\score {
  \new PianoStaff <<
    \new Staff << \RightHand >>
    \new Dynamics << \Nuances >>
    \new Staff << \LeftHand >>
  >>

  \layout {

%Définition du contexte Dynamics
    \context {
      \type "Engraver_group"
      \name Dynamics
      \alias Voice
      \consists "Output_property_engraver"
      \consists "Piano_pedal_engraver"
      \consists "Script_engraver"
      \consists "New_dynamic_engraver"
      \consists "Dynamic_align_engraver"
      \consists "Text_engraver"
      \consists "Skip_event_swallow_translator"
      \consists "Axis_group_engraver"

      pedalSustainStrings = #'("Ped." "*Ped." "*")
      pedalUnaCordaStrings = #'("una corda" "" "tre corde")
      \override DynamicLineSpanner #'Y-offset = #0
      \override TextScript #'font-size = #2
      \override TextScript #'font-shape = #'italic
      \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1)

  \override DynamicText #'X-offset = #0.0

    }
%Modification PianoStaff pour accepter Dynamics
    \context {
      \PianoStaff
      \accepts Dynamics
      }
    }
}

···

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Centrer-les-nuances-sur-le-centre-des-notes-tp6001943p6005754.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

Je vois maintenant...ça va être plus difficile que je ne pensais...

Il faut rentrer dans la mentalité de LilyPond. Lily cherche à centrer un élément en dessous d'un autre élément. Elle prend la largeur de l'élément ancre, divise ça par 2, et aligne le 2e élément en utilisant ce chiffre comme repère. Avec une ligne de "s" (raccourci pour "skip") dans laquelle les éléments n'auront forcément pas de largeur, elle fait 0/2 = 0 et le centre devient, en effet, le bord gauche dont tu parles.

Ça va s'avérer difficile à automatiser parce qu'il y aura des cas où plusieurs notes existe dans une seule colonne verticale, comme << { a1 } \\ { a1 } \\ { a1 } \\ { a1 } \\ {a1 } { a1 } >> . Il faut donc chercher l'élément parent sur l'axe Y (je crois que ça s'appelle "NoteColumn") auquel toutes ces notes appartiennent. S'il y a une façon de prendre la largeur de cet élément, tu peux ensuite la diviser par 2 pour arriver au bon positionnement.

~Mike

···

On Feb 8, 2011, at 5:29 PM, Damien wrote:

Bonsoir Mike,

j'ai essayé votre proposition, malheureusement elle ne fonctionne pas. En
ajoutant \override DynamicText #'X-offset = #0.0, on obtient l'équivalent
d'un ajustement gauche sur la hampe de note.

Je vous joins un extrait de mon code qui permet de voir (2ème mesure) qu'en
contexte Staff LilyPond centre sur le milieu de la note et non sur la hampe.

% Created on Sun Nov 07 16:52:42 CET 2010
\version "2.12.3"

%Définition de ligne de basse Do v1
LigneBasseDoUn = {
  \relative c {
  << {r16 c8 c c c16} \\ {c,2} >>
  }
}

%-------------------------------------------------------------------------------

%Définition de la main droite
RightHand = {
  \time 2/4
  \tempo 4=36
  \key ees \major
  \clef treble
  \relative c' {

%Mesure 001
  << { r16 g bes ees f8 ees } \\ { s16 g,~ <g bes>4. } >>

%Mesure 002
  << { r16 g \ppp bes ees f8 ees } \\ { s16 g,~ <g bes>4. } >>

  \bar "|."
  }
}

%-------------------------------------------------------------------------------

%Définition de la main gauche
LeftHand = {
  \time 2/4
  \tempo 4=36
  \key ees \major
  \clef bass

%Mesures 001 à 002
  \repeat unfold 2 \LigneBasseDoUn
  
}

%-------------------------------------------------------------------------------

%Définition des nuances

Nuances = {
  \time 2/4
  \tempo 4=36

%Mesure 001
  s16 s \ppp s4.

}

%-------------------------------------------------------------------------------

%Définition de la partition

\paper {

}

\score {
  \new PianoStaff <<
    \new Staff << \RightHand >>
    \new Dynamics << \Nuances >>
    \new Staff << \LeftHand >>
  >>

  \layout {

%Définition du contexte Dynamics
    \context {
      \type "Engraver_group"
      \name Dynamics
      \alias Voice
      \consists "Output_property_engraver"
      \consists "Piano_pedal_engraver"
      \consists "Script_engraver"
      \consists "New_dynamic_engraver"
      \consists "Dynamic_align_engraver"
      \consists "Text_engraver"
      \consists "Skip_event_swallow_translator"
      \consists "Axis_group_engraver"

      pedalSustainStrings = #'("Ped." "*Ped." "*")
      pedalUnaCordaStrings = #'("una corda" "" "tre corde")
      \override DynamicLineSpanner #'Y-offset = #0
      \override TextScript #'font-size = #2
      \override TextScript #'font-shape = #'italic
      \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1)

  \override DynamicText #'X-offset = #0.0

    }
%Modification PianoStaff pour accepter Dynamics
    \context {
      \PianoStaff
      \accepts Dynamics
     }
   }
}

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Centrer-les-nuances-sur-le-centre-des-notes-tp6001943p6005754.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

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

Pfiou, il m'a fallu du temps pour le voir !
Ce n'est pas flagrant (j'ai dû scruter mon écran pour voir ce petit
décalage vers la gauche).

J'ai trouvé ce que je pense être l'exposé du même problème dans un
message posté par Reinhold il y a plus d'un an :
http://lists.gnu.org/archive/html/bug-lilypond/2009-12/msg00268.html

Apparemment ce serait peut-être le bug #631
http://code.google.com/p/lilypond/issues/detail?id=631
mais j'ai demandé confirmation aux développeurs et ai aussi demandé si
la solution utilisée pour le bug #1194 ne pouvait pas être appliquée
dans ce cas également.

Cordialement,
Xavier

···

2011/2/8 Damien <****@****>:

Bonsoir Mike,

j'ai essayé votre proposition, malheureusement elle ne fonctionne pas. En
ajoutant \override DynamicText #'X-offset = #0.0, on obtient l'équivalent
d'un ajustement gauche sur la hampe de note.

Je vous joins un extrait de mon code qui permet de voir (2ème mesure) qu'en
contexte Staff LilyPond centre sur le milieu de la note et non sur la hampe.

[...]

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

Bonsoir Xavier,

merci pour votre message, vous avez réussi à trouver une voie de réponse. Je
crains effectivement fort que la problématique du contexte Dynamics soit la
même que celle du contexte Voice avec accentuation sur un soupir...

Je suis en l'état de mes connaissances Lilypondiennes (pas sûr que cette
appellation soit validée par la communauté...) bien incapable de résoudre ce
problème. Je compte donc sur les développeurs...

Sans compter que j'ai également (toujours en utilisant le contexte Dynamics)
des problèmes de collisions de crescendo avec les barres de mesure...

Bien cordialement.

Damien

···

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Centrer-les-nuances-sur-le-centre-des-notes-tp6001943p6009409.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.