Subject: Arrangement vertical : encore une petite amélioration

From: Seventies <[email-masked]>
Date: Tue, 1 Feb 2011 12:26:10 -0800 (PST)

Magnifique, le travail sur l'arrangement vertical dans la version 2.13.47 :
la syntaxe est maintenant bien claire et bien cohérente.
Après avoir modifié le code des fichiers, quelques essais pour retomber sur
les précédents alignements, et hop, tout roule ...

Le temps de calcul semble inférieur à celui des versions précédentes, ce qui
est encore mieux.

Pourtant, il me semble qu'il reste encore une amélioration à apporter : dans
les partitions d'orchestre utilisant le \RemoveEmptyStaffContext, si une
portée (vide) est effacée, la 'strechability' s'évapore elle aussi.

Par exemple, si il y a deux portées pour les cors, la 'strechability' du
second cor est plus importante que pour le premier, ce qui détache bien les
cors des trompettes.

Mais si la portée du second cor est absente, l'intervalle avec la trompette
revient à la valeur standard (à celle du pemier cor).

On pourrait reprendre cet exemple avec le basson, qui sépare les bois des
cuivres. S'il est absent à un moment donné, les bois deviennent équidistants
avec les cuivres.

Je ne suis plus capable de me lancer dans la programmation, mais il me
semble que

#if portée non imprimée
   reporter les propriétés du VerticalAxisGroup de cette portée sur la
précédente
#endIf

devrait suffire - avec évidemment la prise en compte de la récursivité, si
la précédente est également effacée.

C'est loin d'être un simple "YAKA", mais ce serait une cerise sur ce
magnifique gâteau ...

Qu'en pensez-vous ?

Jean-François
-- 
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Arrangement-vertical-encore-une-petite-amelioration-tp5982503p5982503.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: "[email-masked]" <[email-masked]>
Date: Tue, 1 Feb 2011 15:39:46 -0500

> C'est loin d'être un simple "YAKA", mais ce serait une cerise sur ce

Chez LilyPond, ce sont les cerises qui comptent !

La première chose à faire serait d'écrire un petit exemple (environ 10 lignes) montrant le problème et de le soumettre à la page suivante : http://code.google.com/p/lilypond/issues/list .  Il pourrait déjà y avoir des programmateurs qui travaillent là-dessus.

~Mike

---

From: Xavier Scheuer <[email-masked]>
Date: Wed, 2 Feb 2011 13:32:40 +0100

> les précédents alignements, et hop, tout roule ...

Normalement les valeurs par défaut ont été soigneusement choisies
(testées) pour donner les *meilleurs* résultats dans la plupart des cas
(pas facile de déterminer des valeurs d'espacement qui conviennent aussi
bien à des types de partitions très différentes : de la simple chanson +
accompagnement au conducteur d'un orchestre symphonique).
Toutefois si vous avez des remarques/commentaires concernant certains
réglages par défaut qui ne vont vraiment pas, n'hésitez pas à les
communiquer au développeurs.

> C'est loin d'être un simple "YAKA", mais ce serait une cerise sur ce

Je pense que tu n'as pas utilisé
  StaffGrouper #'staffgroup-staff-spacing
pour espacer tes différents groupes, si ?
Cf. doc NR 4.4.1 Espacement vertical au sein d’un système >
Espacement de portées regroupées
http://lilypond.org/doc/v2.13/Documentation/notation/flexible-vertical-spacing-within-systems#spacing-of-grouped-staves

Le  StaffGrouper  a justement été créé pour régler ces cas de figure.
Il gère l'espacement au sein de différents "groupes" (sous-groupes) mais
aussi entre ce groupe (sous-groupe) et la portée qui suit.
C'est justement ce qui nous intéresse ici.  Et *normalement* si la
dernière portée du groupe/sous-groupe est absente, l'espacement entre
ce qui reste du groupe et la portée du dessous est conservé.

Je suppose que tu as mis tes 2 portées de cors dans un  GrandStaff .
Utilise alors

  \new GrandStaff \with {
    % XS: ci-dessous les valeurs par défaut
    \override StaffGrouper #'staffgroup-staff-spacing =
      #'((basic-distance . 10.5)
	 (minimum-distance . 8)
	 (padding . 1)
         (stretchability . 9))
  } <<
    \new Staff = "corUn" { c1 c }
    \new Staff = "CorDeux" { c1 c }

en changeant les valeurs à ta convenance.

Si le problème persiste (je n'ai pas de quoi tester en ce moment) alors
il s'agit d'un bug, à signaler à  [email-masked]  avec un exemple
minimal comme expliqué par Mike.

Cordialement,
Xavier

-- 
Xavier Scheuer <[email-masked]>

---

From: "j-f.lucarelli" <[email-masked]>
Date: Wed, 2 Feb 2011 16:57:23 +0100

Xavier Scheuer,

== En réponse au message du 02-02-2011, 13:33:05 ==

>minimal comme expliqué par Mike.

Bien vu, et 10 points en moins pour griffon d'or :-/

Ça ne pourra que simplifier encore la syntaxe, puisqu'au sein d'un groupe, les valeurs deviennent alors identiques.

Grand merci,

Jean-François

========================================

---

From: "j-f.lucarelli" <[email-masked]>
Date: Wed, 2 Feb 2011 19:24:54 +0100

== En réponse au message du 02-02-2011, 17:46:54 ==

>>minimal comme expliqué par Mike.
Ok, mais dans la pratique, ça se corse ...
Voici comment la partition est organisée :
2 StaffGroup :
1 :
	Flûte
	Hautbois
	Clarinette
	Basson
	1 GranStaff avec
		Cors 1 et 2
		Cors 3 et 4
	Trompettes
	Timbales
2 :
	1 GranStaff avec
		Violons 1
		Violons 2
	Alti
	Violoncelles
	Contrebasses

Le code de base est le suivant :

\score { \keepWithTag #'globalScore
	<<
		\new StaffGroup
		<<
			\staffSaMaFlote
			\staffSaMaOboe
			\staffSaMaKlarinette
			\staffSaMaFagott
			\new GrandStaff
			<<
				\staffSaMaHornIAII
				\staffSaMaHornIIIAIV
			\staffSaMaTrompete
			\staffSaMaPauken
		\new StaffGroup
		<<
			\new GrandStaff
			<<
				\staffSaMaViolineI
				\staffSaMaViolineII
			\staffSaMaViola
			\staffSaMaVioloncello
			\staffSaMaKontrabass

Pas de problème pour metrre de la Strechability entre les deux StaffGroup, ni après les GranStaff.
Le code devient :
\score { \keepWithTag #'globalScore
	<<
		\new StaffGroup \with {
			\override VerticalAxisGroup #'staff-staff-spacing =
			#'(('basic-distance  . 1) (minimum-distance . 1) (padding . 0.4) (stretchability . 8))
		}
		<<
			\staffSaMaFlote
			\staffSaMaOboe
			\staffSaMaKlarinette
			\staffSaMaFagott
			\new GrandStaff \with {
				\override VerticalAxisGroup #'staff-staff-spacing = #'(('basic-distance  . 1) (minimum-distance . 1) (padding . 0.4) (stretchability . 8))
			}
			<<
				\staffSaMaHornIAII
				\staffSaMaHornIIIAIV
			\staffSaMaTrompete
			\staffSaMaPauken
		\new StaffGroup \with {
			\override VerticalAxisGroup #'staff-staff-spacing =  #'(('basic-distance  . 1) (minimum-distance . 1) (padding . 0.4) (stretchability . 8))
		}
		<<
			\new GrandStaff \with {
			\override VerticalAxisGroup #'staff-staff-spacing = #'(('basic-distance  . 1) (minimum-distance . 1) (padding . 0.4) (stretchability . 8))
			}
			<<
				\staffSaMaViolineI
				\staffSaMaViolineII
			\staffSaMaViola
			\staffSaMaVioloncello
			\staffSaMaKontrabass

Mais je cherche à insérer un espace après le basson, c'est à dire au milieu du premier StaffGroup.
Il faudrait donc diviser ce premier StaffGroup en deux parties, sans influencer la représentation. Sinon, j'obtiens un niveau de crochets supplémentaires qu'il faudrait supprimer.

Oui, ça doit être possible, mais comment ...

En modifiant la propriété \set StaffGroup.systemStartDelimiter = ???

Merci de votre aide,

Jean-François

>_______________________________________________
>liste de diffusion lilypond-user-fr
>[email-masked]
>http://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>

---

From: Xavier Scheuer <[email-masked]>
Date: Thu, 3 Feb 2011 13:55:39 +0100

2011/2/2 j-f.lucarelli <[email-masked]>:
> [...]
> [...]

StaffGrouper , pas  VerticalAxisGroup ...

Et c'est  #'staffgroup-staff-spacing  pour l'espacement entre la fin du
 StaffGroup  (ou équivalent) et la portée suivantes, tandis que
 #'staff-staff-spacing  gère l'espacement entre les portées _au sein du
 StaffGroup _ (ou équivalent).
Just to make sure...  ;-)

> [...]
> Il faudrait donc diviser ce premier StaffGroup en deux parties, sans
> influencer la représentation.  Sinon, j'obtiens un niveau de crochets
> supplémentaires qu'il faudrait supprimer.
>

Oui, c'est ce que je ferais.
En mettant un  StaffGroup  "invisible" de Flûte à Basson à l'intérieur
de ton grand  StaffGroup 1 .

  \new StaffGroup \with {  % XS: de Flûte à Basson
    systemStartDelimiter = #'SystemStartBar
    \override StaffGrouper #'staffgroup-staff-spacing = ...

Cordialement,
Xavier

---

From: "j-f.lucarelli" <[email-masked]>
Date: Thu, 3 Feb 2011 20:32:15 +0100

=================================
  
== En réponse au message du 03-02-2011, 13:57:04 ==

>StaffGrouper , pas  VerticalAxisGroup ...
Ça explique pourquoi ça ne fonctionnait pas toujours bien ...
>Xavier Scheuer <[email-masked]>

Je crois avoir toutes les cartes en main. Xavier, tu es le génie de Lilypond.

Je vais attendre d'avoir quelque temps libre et mettre tout ça en route.

Grand merci,

Jean-François

---

From: "j-f.lucarelli" <[email-masked]>
Date: Sun, 6 Feb 2011 22:46:12 +0100

== En réponse au message du 03-02-2011, 21:04:56 ==

>>Xavier Scheuer <[email-masked]>

Voilà, j'ai mis toutes ces directives en action, et après optimisation des valeurs, j'ai trouvé un excellent équilibre.
Sauf que ... les \staffGroup ou \granStaff imbriqués ignorent le StaffGrouper #'staffgroup-staff-spacing - il n'y aurait pas de récursivité dans les valeurs de basic-distance, minimum-distance, padding et stretchability.

Voici un "exemple minimum, il fait 370 lignes :-p mais la majorité est là pour définir des parties avec de nombreux trous, nécessaires pour tester tous les détails.
J'ai mis des valeurs fantaisistes dans les \staffGroup imbriqués pour bien montrer qu'ils n'ont pas d'effet. Les autres valeurs ont été optimisées, et si ce n'était ce détail, le résultat est impeccable.

Resterait donc à ajouter un espace après le basson, même s'il est absent pour cause de \RemoveEmptyStaffContext, et rajouter un peu d'espace après la seconde portée des cors.

Excusez-moi donc pour la longueur de ce code, mais seules les lignes 307 à 368 sont importantes.

%{
*************************************************************************
*	Test des variables verticales - ver 2.13.47			*
*************************************************************************
%}
                
\version "2.13.47"
#(set-global-staff-size 11)

\header {
	title = \markup {\fontsize #7 "Test d'espacement vertical" " "}
}

\paper {
	#(set-default-paper-size "a4")

%% Dimensions horizontales par défaut
	indent = 30\mm				% retrait à gauche du premier système (par défaut largeur de la page/14)
	short-indent = 9\mm			% retrait à gauche de tous les systèmes
	horizontal-shift = 0.0			% retrait à droite de tous les systèmes

%% Dimensions verticales

%% Marges (prévues pour Brother HL5150D)
	top-margin = 4.2\mm 			% distance entre le haut de la page et le premier titre
	bottom-margin = 4.2\mm			% distance entre le pied de page et le bas de la page

%% Distances inter-éléments - reprises du fichier par défaut de LilyPond paper-defaults-init.ly
	 markup-system-spacing = #'((basic-distance . 5) (padding . 0.5) (stretchability . 30))
						% détermine l’espacement entre un titre ou un markup de premier niveau, et le système qui le suit.
	score-markup-spacing = #'((basic-distance . 12) (padding . 0.5) (stretchability . 60))
						% détermine l’espacement entre le dernier système et le titre ou markup de haut niveau qui le suit. 
	score-system-spacing = #'((basic-distance . 14) (minimum-distance . 8) (padding . 1) (stretchability . 120))
						% détermine l’espacement entre le dernier système d’une partition et le premier système de la partition suivante, en l’absence de titrage ou markup qui les sépare.
	system-system-spacing = #'((basic-distance . 12) (minimum-distance . 8) (padding . 1) (stretchability . 60))
						% détermine l’espacement entre deux systèmes d’un même mouvement.
	markup-markup-spacing = #'((basic-distance . 1) (padding . 0.5))
						% détermine l’espacement entre deux titres ou markups de premier niveau. 
	last-bottom-spacing = #'((basic-distance . 1) (minimum-distance . 0) (padding . 1) (stretchability . 30))
						% détermine la distance entre le dernier système ou le dernier markup de haut niveau, et le bas de la surface imprimable.
	top-system-spacing = #'((basic-distance . 1) (minimum-distance . 0) (padding . 1))
						% détermine l’espace entre le haut de la surface imprimable et le milieu du premier système en l’absence de titre ou markup de premier niveau en haut de page. 
	top-markup-spacing = #'((basic-distance . 0) (minimum-distance . 0) (padding . 1))
						% détermine l’espace entre le haut de la surface imprimable et le premier titre ou markup de premier niveau en l’absence de système en haut de page. 

	ragged-bottom = ##f			% empêche la justification verticale des pages sauf la dernière si mis à ##t (défaut ##f)
	ragged-last = ##f			% empêche la justification du dernier système si mis à ##t (défaut ##f)
	ragged-last-bottom = ##f		% force la justification verticale de la dernière page si mis à ##f (défaut ##t)
	ragged-right = ##f			% empêche la justification à droite de la ligne si mis à ##t (défaut ##f)
	system-separator-markup = \slashSeparator
						% markup inséré entre les systèmes, supprimer pour les parties
}

% Description des voix, uniquement pour remplissage

voiceFlote = \new Voice {
	\set Staff.instrumentName = \markup {\fontsize #3 \line {"Flöte  " \normal-size-super \center-column {"I" "II"}}}
	\set Staff.shortInstrumentName = "Fl."
	\clef treble
	\relative c'' {
		\repeat unfold 60 {
			a8 b c d e f g a
		}
		\bar "|."
	}
}

voiceOboe = \new Voice {
	\set Staff.instrumentName = \markup {\fontsize #3 \line {"Oboe  " \normal-size-super \center-column {"I" "II"}}}
	\set Staff.shortInstrumentName = "Ob."
	\clef treble
	\relative c'' {
		\repeat unfold 20 {
			a4 b c d
		}
		R1 * 20
		\repeat unfold 20 {
			a4 b c d
		}
		\bar "|."
	}
}

voiceKlarinette = \new Voice {
	\set Staff.instrumentName = \markup {\fontsize #3 \line {"Klarinette in A  " \normal-size-super \center-column {"I" "II"}}}
	\set Staff.shortInstrumentName = \markup { \center-column { "Klar" " (A) "}}
	\key ees \major
	\clef treble
	\relative c'' {
		R1 * 10
		\transposition a
		\repeat unfold 20 {
			aes4 bes c d
		}
		R1 * 20
		\repeat unfold 10 {
			aes4 bes c d
		}
		\bar "|."
	}
}

voiceFagott = \new Voice {
	\set Staff.instrumentName = \markup {\fontsize #3 \line {"Fagott  " \normal-size-super \center-column {"I" "II"}}}
	\set Staff.shortInstrumentName = "Fag."
	\clef bass
	\relative c {
		R1 * 40
		\repeat unfold 20 {
			a1
		}
		\bar "|."
	}
}

voiceHornIAII = \new Voice {
	\set Staff.instrumentName = \markup {\fontsize #3 \line {"Horn in D   " \normal-size-super \center-column {"I" "II"}}}
	\set Staff.shortInstrumentName = \markup { \center-column { "Hr." " (D) "}}
	\clef treble
	\relative c'' { 
		\transposition d
		R1 * 5
		\repeat unfold 20 {
			a2 f2
		}
		R1 * 10
		\repeat unfold 10 {
			a2 f2
		}
		R1 * 15
		\bar "|."
	}
}

voiceHornIIIAIV = \new Voice {
	\set Staff.instrumentName = \markup {\fontsize #3 \line {"Horn in E   " \normal-size-super \center-column {"III" "IV"}}}
	\set Staff.shortInstrumentName = \markup { \center-column { "Hr." " (E) "}}
	\clef treble
	\relative c'' { 
		\transposition e
		R1 * 10
		\repeat unfold 20 {
			a2 f2
		}
		R1 * 20
		\repeat unfold 10 {
			a2 f2
		}
		\bar "|."
	}
}

voiceTrompete = \new Voice {
	\set Staff.instrumentName = \markup {\fontsize #3 \line {"Trompete in D  " \normal-size-super \center-column {"I" "II"}}}
	\set Staff.shortInstrumentName = \markup { \center-column { "Trpt." "D"}}
	\clef treble
	\relative c'' { 
		\transposition d'
		R1 * 5
		\repeat unfold 15 {
			a4 bes c d
		}
		R1 * 20
		\repeat unfold 20 {
			d4 c bes a
		}
		\bar "|."
	}
}

voicePauken = \new Voice {
	\set Staff.instrumentName = \markup {\fontsize #3 \center-column { "Pauken" "in d, A"}}
	\set Staff.shortInstrumentName = "Pk."
	\clef bass
	\relative c {
		R1 * 25
		\repeat unfold 15 {
			c4 r4 r2
		}
		R1 * 15
		\repeat unfold 5 {
			c4 r4 r2
		}
		\bar "|."
	}
}

voiceViolineI = \new Voice {
	\set Staff.instrumentName = \markup {\fontsize #3 "Violine I"}
	\set Staff.shortInstrumentName = "1.Viol."
	\clef treble
	\relative c'' {
		R1 * 5
		\repeat unfold 5 {
			a8 b c4 e f
		}
		R1 * 12
		\repeat unfold 10 {
			a,8 b c4 e f
		}
		R1 * 25
		\repeat unfold 3 {
			a,8 b c4 e f
		}
		\bar "|."
	}
}

voiceViolineII = \new Voice {
	\set Staff.instrumentName = \markup {\fontsize #3 "Violine II"}
	\set Staff.shortInstrumentName = "2.Viol."
	\clef treble
	\relative c' {
		\repeat unfold 5 {
			f8 g a4 b a
		}
		R1 * 20
		\repeat unfold 10 {
			f8 g a4 b a
		}
		R1 * 22
		\repeat unfold 3 {
			f8 g a4 b a
		}
		\bar "|."
	}
}

voiceViola = \new Voice {
	\set Staff.instrumentName = \markup {\fontsize #3 "Viola"}
	\set Staff.shortInstrumentName = "Br."
	\clef alto
	\relative c' {
		\repeat unfold 15 {
			a4 b c d
		}
		R1 * 5
		\repeat unfold 5 {
			a4 b c d
		}
		R1 * 25
		\repeat unfold 10 {
			a4 b c d
		}
		\bar "|."
	}
}

voiceVioloncello = \new Voice {
	\set Staff.instrumentName = \markup {\fontsize #3 "Violoncello"}
	\set Staff.shortInstrumentName = "Vcl."
	\clef bass
	\relative c {
		R1 * 15
		\repeat unfold 15 {
			a4 b c d
		}
		R1 * 5
		\repeat unfold 5 {
			a4 b c d
		}
		R1 * 10
		\repeat unfold 10 {
			a4 b c d
		}
		\bar "|."
	}
}

voiceKontrabass = \new Voice {
	\set Staff.instrumentName = \markup {\fontsize #3 "Kontrabaß"}
	\set Staff.shortInstrumentName = "K.-B."
	\clef bass
	\relative c {
		\transposition c
		\repeat unfold 17 {
			a4 r b r
		}
		R1 * 13
		\repeat unfold 5 {
			a4 r b r
		}
		R1 * 10
		\repeat unfold 15 {
			a4 r b r
		}
		\bar "|."
	}
}

staffFlote = \new Staff {\voiceFlote}
staffOboe = \new Staff {\voiceOboe}
staffKlarinette = \new Staff {\voiceKlarinette}
staffFagott = \new Staff {\voiceFagott}
staffHornIAII = \new Staff {\voiceHornIAII}
staffHornIIIAIV = \new Staff {\voiceHornIIIAIV}
staffTrompete = \new Staff {\voiceTrompete}
staffPauken = \new Staff {\voicePauken}
staffViolineI = \new Staff {\voiceViolineI}
staffViolineII = \new Staff {\voiceViolineII}
staffViola = \new Staff {\voiceViola}
staffVioloncello = \new Staff {\voiceVioloncello}
staffKontrabass = \new Staff {\voiceKontrabass}

\score {
	<<
	\new StaffGroup \with {
			\override StaffGrouper #'staffgroup-staff-spacing =
				#'((basic-distance . 15) (minimum-distance . 9) (padding . 1.4) (stretchability . 50))
		}
		<<
			\new StaffGroup \with {systemStartDelimiter = #'SystemStartBar
			 	\override StaffGrouper #'staffgroup-staff-spacing =
					#'((basic-distance . 200) (minimum-distance . 9) (padding . 1.4) (stretchability . 50))	% basic-distance fantaisiste ****************
			}
			<<
					\staffFlote
					\staffOboe
					\staffKlarinette
					\staffFagott
			\new GrandStaff \with {
				\override StaffGrouper #'staffgroup-staff-spacing =
					#'((basic-distance . 15) (minimum-distance . 11) (padding . 1.4) (stretchability . 500))	% strechability fantaisiste **************
			}
			<<
				\staffHornIAII
				\staffHornIIIAIV
			\new StaffGroup \with {systemStartDelimiter = #'SystemStartBar
			 	\override StaffGrouper #'staffgroup-staff-spacing =
					#'((basic-distance . 15) (minimum-distance . 9) (padding . 1.4) (stretchability . 50))
			}
			<<
				\staffTrompete
				\staffPauken
		\new StaffGroup \with {
			\override StaffGrouper #'staffgroup-staff-spacing =
				#'((basic-distance . 15) (minimum-distance . 11) (padding . 1.4) (stretchability . 50))
		}
		<<
			\new GrandStaff \with {
				\override StaffGrouper #'staffgroup-staff-spacing =
					#'((basic-distance . 15) (minimum-distance . 11) (padding . 1) (stretchability . 50))
			}
			<<
				\staffViolineI
				\staffViolineII
			\staffViola
			\staffVioloncello
			\staffKontrabass
	\layout {
		\context {
			\Score \override StaffGrouper #'staff-staff-spacing =
				#'((basic-distance . 8) (minimum-distance . 7) (padding . .7) (stretchability . 10))
		}
		\context {
			\RemoveEmptyStaffContext
		}
	}
}

---

From: "j-f.lucarelli" <[email-masked]>
Date: Mon, 7 Feb 2011 02:15:18 +0100

>>Xavier Scheuer <[email-masked]>
Après de nombreux essais, il apparaît que l'instruction du genre
				\override StaffGrouper #'staffgroup-staff-spacing =
				#'((basic-distance . 15) (minimum-distance . 11) (padding . 1.4) (stretchability . 20))

1 ) fonctionne uniquement sur un \new StaffGroup, mais pas sur un \new GrandStaff ni \new ChoirStaff - (semble fonctionner sur un \new PianoStaff mais génère des erreurs de calcul vertical)
La solution alternative existe, il suffit d'écrire
		\new StaffGroup  \with {
			systemStartDelimiter = #'SystemStartBrace

2 ) ne fonctionne pas lorsque le StaffGroup est situé à l'intérieur d'un autre StaffGroup (ou d'un ChoirStaff). Mais là, je n'ai trouvé aucune solution.
Il est possible d'écrire une série de StaffGroup, éventuellement à l'intérieur d'un "GrandStaff \with {systemStartDelimiter = #'SystemStartBracket}" : les distances verticales sont correctement calculées mais les crochets et les barres de mesures ne respecteront pas la disposition souhaitée.

Il faut sans doute redéfinir un nouveau \context, mais là, c'est trois niveaux (au moins) au dessus de mes capacités ...

Je ne désespère pas, mais un coup de pouce serait bien utile.

Merci d'avance

Jean-François

---

From: Eluze <[email-masked]>
Date: Mon, 7 Feb 2011 00:13:25 -0800 (PST)

à mon avis il s'agit d'appliquer la structure démontrée dans l'exemple 
http://lilypond.org/doc/v2.13/Documentation/notation/flexible-vertical-spacing-within-systems
Nr 4.4.1 Flexible vertical spacing within systems -> Spacing of grouped
staves :

staffFlote      = {\new Staff {\repeat unfold 8 { \relative c' {c1  }}}}
staffOboe       = {\new Staff {\repeat unfold 8 { \relative c' {c1  }}}}
staffKlarinette = {\new Staff {\repeat unfold 8 { \relative c' {c1  }}}}
staffFlote      = {\new Staff {\repeat unfold 8 { \relative c' {c1  }}}}
staffFagott     = {\new Staff {\repeat unfold 8 { \relative c' {c1  }}}}
staffHornIAII   = {\new Staff {\repeat unfold 8 { \relative c' {c1  }}}}
staffHornIIIAIV = {\new Staff {\repeat unfold 8 { \relative c' {c1  }}}}
<<
  \new StaffGroup \with {
    \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20
  }
  <<
    \staffHornIAII
    \staffHornIIIAIV
  \new StaffGroup \with {
    \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20
  }
  <<
    \staffFlote
    \staffOboe
    \staffKlarinette
    \staffFagott
  \new GrandStaff <<
    \staffHornIAII   
    \staffHornIIIAIV 

aurais-je mal compris?

-- 
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Arrangement-vertical-encore-une-petite-amelioration-tp5982503p5999547.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: "j-f.lucarelli" <[email-masked]>
Date: Mon, 7 Feb 2011 11:25:12 +0100

== En réponse au message du 07-02-2011, 09:13:40 ==

>    \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20
C'est bien cela, mais si on encadre le tout dans un \new StaffGroup (pour avoir un crochet général et des barres de mesures continues), les paramètres du \new StaffGroup interne ne sont plus prises en compte.

---

From: Xavier Scheuer <[email-masked]>
Date: Mon, 7 Feb 2011 12:49:40 +0100

2011/2/7 j-f.lucarelli <[email-masked]>:
>
> C'est bien cela, mais si on encadre le tout dans un \new StaffGroup
> (pour avoir un crochet général et des barres de mesures continues),
> les paramètres du \new StaffGroup interne ne sont plus prises en compte.

Je viens d'envoyer deux messages à Joe et aux développeurs.

Le premier pour signaler que  GrandStaff  ne tient pas compte de
 StaffGrouper .  Apparemment c'est parce que  GrandStaff  ne contient
pas  "Vertical_align_engraver" .
J'ai demandé si c'était volontaire et sinon suggéré de l'ajouter.

Le second concernant le problème des  StaffGroup  de "second niveau"
pour lesquels les propriétés de  StaffGrouper  ne s'appliquaient pas.

Merci d'avoir signalé ces deux problèmes Jean-François.

Cordialement,
Xavier

---

From: Eluze <[email-masked]>
Date: Mon, 7 Feb 2011 03:50:31 -0800 (PST)

un exemple minimal - c'est bien cela?!

music = {\repeat unfold 8 { \relative c' {c1  }}}
<<
  \new StaffGroup \with {
    \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #30
  }
  <<
    \new Staff {\music}
    \new Staff {\music}
  \new StaffGroup \with {
    \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #10
  }
  <<
    \new Staff \with {\override VerticalAxisGroup #'staff-staff-spacing =
#'((basic-distance . 1))} {\music}
    \new Staff \with {\override VerticalAxisGroup #'staff-staff-spacing =
#'((basic-distance . 1))} {\music}
    \new Staff \with {\override VerticalAxisGroup #'staff-staff-spacing =
#'((basic-distance . 1))} {\music}
    \new Staff \with {\override VerticalAxisGroup #'staff-staff-spacing =
#'((basic-distance . 25))} {\music}
  \new StaffGroup \with {
    \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #9
  }
  <<
    \new GrandStaff <<
      \new Staff {\music}
      \new Staff \with {\override VerticalAxisGroup #'staff-staff-spacing =
#'((basic-distance . 18))} {\music}
    \new ChoirStaff <<
      \new Staff {\music}   
      \new Staff {\music}

http://lilypond-french-users.1298960.n2.nabble.com/file/n6000041/test1.png 
-- 
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Arrangement-vertical-encore-une-petite-amelioration-tp5982503p6000041.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: "[email-masked]" <[email-masked]>
Date: Mon, 7 Feb 2011 07:13:05 -0500

> Merci d'avoir signalé ces deux problèmes Jean-François.

Il faut avouer que j'ai n'ai pas complètement suivi cette discussion (j'essaie de résoudre mes propres problèmes chez Lily), mais est-ce que quelqu'un a essayé:

\layout {
\context {
\StaffGroup
\consists "Vertical_align_engraver"
}
}

pour voir ce que ça donne?

~Mike

---

From: Xavier Scheuer <[email-masked]>
Date: Mon, 28 Feb 2011 11:13:29 +0100

> Merci d'avoir signalé ces deux problèmes Jean-François.

Un petit message juste pour signaler qu'apparemment ces deux problèmes
sont corrigés dans la version 2.13.52 qui va venir.
http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=commit;h=823fac5179ef97f4d0b1cc1af2f2aaeea308e77c
http://code.google.com/p/lilypond/issues/detail?id=1519
http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=commit;h=69aa7021254529b5f399861636b33674f57aa20d

Cordialement,
Xavier

---

From: "j-f.lucarelli" <[email-masked]>
Date: Mon, 28 Feb 2011 16:38:26 +0100

== En réponse au message du 28-02-2011, 11:13:51 ==

>http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=commit;h=69aa7021254529b5f399861636b33674f57aa20d

Le code est prêt pour le test grandeur nature ;-)

Merci de ton message,

Jean-François