Subject: Utilisation d'une voix invisible

From: Seventies <[email-masked]>
Date: Wed, 23 Dec 2009 03:13:43 -0800 (PST)

Bonjour à tous.

Suite à un topic précédent, je cherchais à utiliser une voix invisible pour
insérer des sauts de lignes et éviter ainsi le bug de Lilypond qui parfois
impose un break au milieu d'une ligne.

Mais voilà, cette ligne invisible est visible sur le premier système.

Voici le code utilisé (vesion 2.13.7) :

	\score {
		<<
			\new StaffGroup
			<<
				\staffSaMavoid
				\staffSaMaFlote
				\staffSaMaOboe
				\staffSaMaKlarinette
				\staffSaMaFagott
				\new GrandStaff
				<<
					\staffSaMaHornD
					\staffSaMaHornE
				\staffSaMaTrumpete
				\staffSaMaPauken
			\new StaffGroup
			<<
				\new GrandStaff
				<<
					\staffSaMaViolineI
					\staffSaMaViolineII
				\staffSaMaViola
				\staffSaMaVioloncello
				\staffSaMaKontrabass

Avec pour la voix 'invisible, le code suivant :

staffSaMavoid = \new Voice {

	s1 * 125 \break
}

J'ai essayé plusieurs positions pour cette ligne invisible, y compris juste
après le score { sans résultat. Toujours, il y a une portée vierge sur le
premier système.

Autre question, corollaire de celle-ci : comment gérer la commande \partial
avec une ligne vide ?

Merci de votre aide,

Jean-François
-- 
View this message in context: http://n2.nabble.com/Utilisation-d-une-voix-invisible-tp4208160p4208160.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Xavier Scheuer <[email-masked]>
Date: Wed, 23 Dec 2009 12:56:01 +0100

Le Wed, 23 Dec 2009 03:13:43 -0800 (PST),
Seventies <[email-masked]> a écrit :

> Bonjour à tous.
> 
> Suite à un topic précédent, je cherchais à utiliser une voix
> invisible pour insérer des sauts de lignes et éviter ainsi le bug de
> Lilypond qui parfois impose un break au milieu d'une ligne.
> 

Bonjour,

Tu dois mettre cette voix invisible à l'intérieur d'une portée
existante, sinon LilyPond créera lui-même une portée implicite pour ta
voix invisible.

Ainsi, tu dois soit mettre \voiceSaMavoid ( = ton précédent
\staffSaMavoid) dans ta portée \staffSaMaFlote par exemple.
Mais ce n'est sûrement pas pratique si tu veux réutiliser
staffSaMaFlote sans les sauts de lignes...

Moi j'utilise des variables pour les voix, pas pour les portées, donc
je n'ai pas ce problème.

  \new Staff = "violin" {
    <<
      \violinBreaks  % contenant les sauts de lignes
      \violin  % voix violin, contenant les notes
  }

Tu utilises les templates de jEdit/LilyPondTool, non ?
Si oui tu as donc tes voix définies par des variables, genre
voiceSaMaFlote ?
Dans ce cas tu peux définir un staffSaMaFlotevoid qui ressemblerait à :

  staffSaMaFlotevoid = \new Staff {
    <<
      \voiceSaMavoid
      \voiceSaMaFlote
  }

Et utiliser \staffSaMaFlotevoid à la place de \staffSaMaFlote dans ton
Score.

> J'ai essayé plusieurs positions pour cette ligne invisible, y compris
> juste après le score { sans résultat. Toujours, il y a une portée
> vierge sur le premier système.
> 
> Autre question, corollaire de celle-ci : comment gérer la commande
> \partial avec une ligne vide ?

\partial s4  s1*125 \break ?  ;-)

-- 
Xavier Scheuer <[email-masked]>

---

From: Xavier Scheuer <[email-masked]>
Date: Wed, 23 Dec 2009 13:03:04 +0100

Ou bien peut-être qu'en définissant

  staffSaMavoid = \context Staff = "Flote" {
    \new Voice {
      s1 * 125 \break
    }
  }

si staffSaMaFlote est défini comme une porté nommée "Flote"
  staffSaMaFlote = \new Staff = "Flote" ...

Enfin je ne suis pas sûr que ça fonctionne, à essayer.

Xavier

---

From: "j-f.lucarelli" <[email-masked]>
Date: Fri, 25 Dec 2009 18:13:59 +0100

>Et utiliser \staffSaMaFlotevoid à la place de \staffSaMaFlote dans ton
Ok, merci, j'ai trouvé mon erreur : je confondais Voice et Staff (pas évident pour un débutant).
La solution ci-dessus marche parfaitement.

En revanche, j'ai toujours les coupures des systèmes en plein milieu de page. Il faut trouver en quelle position placer le \break pour assurer la continuité des systèmes.

Et comme la compilation dure plus de 35 minutes, ça ne va pas se faire de suite ;-)

---

From: Xavier Scheuer <[email-masked]>
Date: Fri, 25 Dec 2009 23:55:10 +0100

Le Fri, 25 Dec 2009 18:13:59 +0100,
"j-f.lucarelli" <[email-masked]> a écrit :

> Ok, merci, j'ai trouvé mon erreur : je confondais Voice et Staff (pas
> évident pour un débutant). La solution ci-dessus marche parfaitement.

Oui, c'est pour ça que dans ma proposition j'avais renommé ton
staffSaMavoid en voiceSaMavoid.

> En revanche, j'ai toujours les coupures des systèmes en plein milieu
> de page. Il faut trouver en quelle position placer le \break pour
> assurer la continuité des systèmes.

Oui, c'est bizarre ton problème.
Mais comme cela ne semble apparaître que dans les (tes? ;-p) grosses
partitions, il ne sera à mon avis pas facile d'en déterminer la cause,
ni d'éventuellement trouver un exemple minimal pour espérer voir
corriger ce "bug".

> Et comme la compilation dure plus de 35 minutes, ça ne va pas se

On te l'a peut-être déjà proposé mais pourquoi ne pas essayer

  \paper {
    #(define page-breaking ly:minimal-breaking)
  }

http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Minimal-page-breaking