Subject: Problème d'orientation de queue en multi voix

From: "christophe_cgy.godefroy" <[email-masked]>
Date: Sun, 25 Nov 2007 10:39:29 +0100

Bonjour,

je fais appel à votre savoir, mais la résultat de mon .ly est très
étrange! Si vous regardez le .pdf générer vous verrez que les queues de
mes 2 voix se mélangent alors que j'ai stipulé la directive \StemUp
du coup

    1. pourquoi est ce que la directive \stemUp ne remplie pas son office ?
    2. pourquoi j'ai une clef de sol dans ma main gauche ainsi que la
marque de mesure 2 fois !

 J'en perd la boule ( /le latin c'est déjà fait /)

 je vous remercie de votre aide

Christophe

PS : voici le texte : ( sous XP)

\version "2.11.34"
\include "italiano.ly"
TimeKey = { \key fa \minor \time 2/4 }
droite = \relative do'' {
    \tempo 4=80
    << {\stemUp {\appoggiatura solb'-5 fa8-4 fa16-3 (solb-4) fa8-.
fa-.}  } \\ {\stemDown lab,8 lab la la } >>    |%7
    }

gauche =  \relative do {
    reb,-. <reb' fa>-._\markup {\italic {sempre staccato} } do, <do'mib
fa>    |%7
     \bar "|."
}

\score {
    <<
    \new PianoStaff <<
              \override Score.MetronomeMark #'extra-offset = #' (-5.2 .
+1.8)
               \override Score.SeparationItem #'padding = #0
            \set PianoStaff.instrumentName = \markup{ \fontsize #2
{"Piano"} \hspace #1.0 }
            \new Staff=upper {\clef treble \TimeKey \droite}
            \new Staff=lower  {\clef bass \TimeKey \gauche}
    \layout { }
    
     }

---

From: John Mandereau <[email-masked]>
Date: Sun, 25 Nov 2007 12:10:29 +0100

Le dimanche 25 novembre 2007 à 10:39 +0100, christophe_cgy.godefroy a
> marque de mesure 2 fois !

Les 2 problèmes ont la même cause, à savoir l'appoggiature.

Pour le problème 1, il faut déclarer explicitement les voix, la
construction est expliquée en français (la traduction n'est pas à jour,
des images manquent, on a du boulot...) à
http://lilypond.org/doc/v2.11/Documentation/user/lilypond/Explicitly-instantiating-voices
ou en anglais à
http://lilypond.org/doc/v2.11/Documentation/user/lilypond-learning/Explicitly-instantiating-voices

Je reconnais que la doc ne précise pas qu'il faut mettre \voiceOne
_après_ l'appoggiature.  Nous devrions peut-être y ajouter et expliquer
cet exemple.

Le problème 2 et sa solution sont expliqués dans la section bogues à
http://lilypond.org/doc/v2.11/Documentation/user/lilypond/Grace-notes

Voici la correction de ton code complet ci-dessous.  Quelques remarques
sur les autres changements que j'ai fait :
- inutile de préciser le tempo dans le bloc midi si tu le précises déjà
au début de la partition avec \tempo,
- il me semble plus clair de commencer un bloc \relative par la première
note (à l'altération près)
- j'ai explicité la durée de l'appoggiature noire (ne serait-ce pas
plutôt une croche ?), attention, il faut mettre la même durée pour la
note d'ornement invisible au début de la basse,
- l'indication de tempo éloigne exagérément l'appoggiature de la note
principale, l'espacement est meilleur en mettant la commande \tempo
après l'appoggiature.
- prend l'habitude de séparer toutes les notes (ici "do'mib") et les
accolades par des espaces ou sauts de ligne, comme ça tu n'auras plus à
te rappeler quand ces séparations sont nécessaires.

D'autres remarques sur \relative :
- \relative n'est pas très utile pour des notes dans la clef de fa, car
ça n'économise pas beaucoup de frappes de "'" ou de "," ;
- attention, le regroupement de plusieurs voix dans un bloc \relative
est une peau de banane, car l'indication d'octave de la première note de
la 2e voix dépend de l'octave de la dernière note de la première voix,
ce qui oblige à souvent bricoler et corriger cette indication d'octave
lorsqu'on change la première voix.  C'est le même problème lorsqu'on met
des expressions séquentielles dans un bloc \relative.  Deux solutions à
ce problème :
  * mettre une vérification d'octave à chaque début de séquence (pas
très élégant car provoque des avertissements "inutiles"),
  * utiliser \relative pour chaque séquence élémentaire "{}" d'un bloc
séquentiel "{}" ou simultané "<< >>", par exemple
<< \relative do'' { do4 do } \\ \relative mi' { mi2 } >>
ou
<< \new Voice \relative do'' { \voiceOne do4 do }
   \new Voice \relative mi' { \voiceTwo mi2 } >>

Pensez-vous utile de rajouter cette explication dans la documentation
(dans le manuel d'apprentissage) ?

\version "2.11.34"
\include "italiano.ly"
TimeKey = { \key fa \minor \time 2/4 }
droite = \relative sol'' {
	<< \new Voice { \appoggiatura solb4-5 \voiceOne \tempo 4=80 fa8-4 fa16-3 (solb-4) fa8-. fa-. }
           \new Voice { \voiceTwo lab,8 lab la la } >> |
	}

gauche =  \relative do, {
	\grace s4 reb-. <reb' fa>-._\markup {\italic {sempre staccato} } do, <do' mib fa> |
 	\bar "|."
}

\score {
	
	\new PianoStaff <<
	  		\override Score.MetronomeMark #'extra-offset = #' (-5.2 . +1.8)
	   		\override Score.SeparationItem #'padding = #0
			\set PianoStaff.instrumentName = \markup{ \fontsize #2 {"Piano"} \hspace #1.0 }
			\new Staff=upper {\clef treble \TimeKey \droite}
			\new Staff=lower  {\clef bass \TimeKey \gauche}
    \layout { }
	\midi { }
     }

-- 
John Mandereau <[email-masked]>

---

From: Daniel Cartron <[email-masked]>
Date: Sun, 25 Nov 2007 14:20:29 +0100

> (dans le manuel d'apprentissage) ?

oui !!! des 2 mains...

-- 
Cordialement, Daniel Cartron
« L'homme est imparfait mais ce n'est pas étonnant si l'on songe à l'époque où 
il fut créé. »
Alphonse Allais

---

From: "christophe_cgy.godefroy" <[email-masked]>
Date: Sun, 25 Nov 2007 14:38:57 +0100

Merci John  pour ces explications. Il va me falloir plusieurs heures
pour digérer tout cela,
mais oui je pense que documenter cela dans le manuel avec un exemple
serait une très bonne idée

Christophe