Subject: Obtenir trois systèmes de portées sur la première page

From: Philippe Nenert <[email-masked]>
Date: Tue, 11 Oct 2011 22:20:36 +0200

Bonsoir, 

Continuant mes investigations avec LiLyPond, je souhaiterai savoir comment réduire la marge du bas sur la première page afin d'obtenir trois systèmes de portées vocales.

Vous pouvez voir mon code à la page suivante : https://gist.github.com/2a173e6ba59282638f21

Il y a deux pages pour cette partition. La première page ne veux pas plus que deux systèmes alors que la seconde page accepte trois système de “ChoirStaff”

Même en réduisant la taille générale avec #(layout-set-staff-size val) je n'arrive pas à mettre trois systèmes sur la première page.

La solution que j'ai trouvé est de supprimer le “titre”, mais ce n'est pas acceptable.

Merci d'avance de vos lumières et du temps que vous passerez à compiler mon code source.
Philippe

Question subsidiaire (j'ai pas encore beaucoup cherché) : Comment augmenter la marge de reliure pour ne pas trouer les notes lorsque je la rangerai dans un classeur. Dans le même ordre d'idée, comment inverser la numérotation, mettre les numéros paires à droite et les impaires à gauche.

---

From: Bertrand Bordage <[email-masked]>
Date: Tue, 11 Oct 2011 23:21:14 +0200

Première suggestion : utiliser #(set-global-staff-size 19) au lieu de
#(layout-set-staff-size 19) : layout-set-staff-size ne marche pas bien, il
change toutes les tailles SAUF la taille de la portée.
Par contre cela ne se met pas dans un \paper ou \layout.  Il faut le mettre,
par exemple, juste après \include "italiano.ly" (qui peut d'ailleurs être
remplacé par \language "italiano").
Rien qu'en changeant cela, ton problème est réglé.

Pour l'histoire de reliure, l'idéal est d'utiliser la propriété two-sided
qui permet de dire à LilyPond d'avoir des marges différentes pour les pages
impaires et paires.  Il faut changer ensuite les marges intérieures et
extérieures, ainsi que la largeur de la reliure (binding-offset).  Voilà un
exemple :

\paper {
  two-sided = ##t
  inner-margin = 2\cm
  outer-margin = 2\cm
  binding-offset = 1\cm
}

Bien sûr, on peut se passer de binding-offset et n'utiliser que les marges,
mais c'est moins descriptif.

D'autres questions ? ;o)
À plus !
Bertrand

---

From: Xavier Scheuer <[email-masked]>
Date: Tue, 11 Oct 2011 23:40:43 +0200

2011/10/11 Philippe Nenert <[email-masked]>:
>
> Bonsoir,
>
> Continuant mes investigations avec LiLyPond, je souhaiterai savoir
> comment réduire la marge du bas sur la première page afin d'obtenir
> trois systèmes de portées vocales.

Bonsoir,

Il y a (à insérer dans le bloc \paper ) la variable
"last-bottom-spacing" qui – comme le dit la doc, NR 4.1.4 Variables
d’espacement vertical fluctuant)
http://lilypond.org/doc/v2.15/Documentation/notation/flexible-vertical-spacing-_005cpaper-variables

last-bottom-spacing

  détermine la distance entre le dernier système ou le dernier markup
  de haut niveau, et le bas de la surface imprimable – autrement dit le
  haut de la marge basse.

valeur par défaut très petite (A4) :
last-bottom-spacing = #'((basic-distance . 1)
                         (minimum-distance . 0)
                         (padding . 1)
                         (stretchability . 30))

Mais il y a également la marge du bas, qui définit justement la limite
de ladite surface imprimable (toujours dans le bloc \paper ) –
NR 4.1.3 Variables d’espacement vertical fixe :
http://lilypond.org/doc/v2.15/Documentation/notation/fixed-vertical-spacing-_005cpaper-variables

bottom-margin

  La marge entre la surface imprimable et le bord inférieur de la
  feuille.  Elle est fixée par défaut à 6\mm et s’ajustera selon le
  format de papier.

bottom-margin-default = 6\mm

> Il y a deux pages pour cette partition. La première page ne veux pas
> plus que deux systèmes alors que la seconde page accepte trois système
> de “ChoirStaff”

\paper {
  min-systems-per-page = #3
}

Cela me semble le plus simple (et approprié) dans le cas présent.
Mais il existe bien sûr (beaucoup) d'autres possibilités.

> Même en réduisant la taille générale avec #(layout-set-staff-size val)
> je n'arrive pas à mettre trois systèmes sur la première page.

J'ai toujours préféré "set-global-staff-size" à "layout-set-staff-size",
parce que layout-set-staff-size est assez "foireux", notamment

Problèmes connus et avertissements :
layout-set-staff-size ne modifie en rien l’espacement entre les lignes
d’une portée.

> Question subsidiaire (j'ai pas encore beaucoup cherché) : Comment
> augmenter la marge de reliure pour ne pas trouer les notes lorsque je
> la rangerai dans un classeur.

Tu trouveras ton bonheur dans le manuel de notation, section
NR 4.1.5 Variables d’espacement horizontal > Variables spécifiques pour
l’impression recto-verso
variables "two-sided", "inner-margin" (outer-margin) et "binding-offset"
http://lilypond.org/doc/v2.15/Documentation/notation/horizontal-spacing-_005cpaper-variables.fr.html#_005cpaper-variables-for-two_002dsided-mode

> Dans le même ordre d'idée, comment inverser la numérotation, mettre
> les numéros paires à droite et les impaires à gauche.

Tu es sûr que tu veux cela ?
Si mes souvenirs sont bons il s'agit d'une convention très répendue de
mettre les numéros impaires à droite et les paires à gauche.
On peut dire très facilement à LilyPond de commencer sur la page 2
(page de droite).

Cordialement,
Xavier

PS : Désolé de t'inonder avec des références au manuel de notation et
liens vers celui-ci mais tout cela est bien mieux expliqué là que ce
que je pourrais dire ici.

-- 
Xavier Scheuer <[email-masked]>

---

From: Philippe Nenert <[email-masked]>
Date: Wed, 12 Oct 2011 11:33:20 +0200

Tout d'abord, je souhaiterai remercier les personnes qui ont pris du temps pour compiler mon code.

C'est la première fois que je suis aussi bien accueillit sur une liste de diffusion sans “manger mes dents” à la première demande. Vieux routier des ML liées au logiciels libres, je suis particulièrement et agréablement surpris. Je tenais à le dire et à vous en remercier. 

Cette ambiance donne envie de progresser et de continuer à “graver”.

> On peut dire très facilement à LilyPond de commencer sur la page 2

C'est une très bonne idée, que j'ai mise en application

> que je pourrais dire ici.

Ah non ne t'excuse pas, tu passes tu temps pour moi et mon apprentissage, alors merci pour ces références.

Le 11 oct. 2011 à 23:21, Bertrand Bordage a écrit :

> Pour l'histoire de reliure, l'idéal est d'utiliser la propriété two-sided qui permet de dire à LilyPond d'avoir des marges différentes pour les pages impaires et paires.  Il faut changer ensuite les marges intérieures et extérieures, ainsi que la largeur de la reliure (binding-offset).  Voilà un exemple :
> 
> \paper {
>   two-sided = ##t
>   inner-margin = 2\cm
>   outer-margin = 2\cm
>   binding-offset = 1\cm
> }

Très efficace, j'ai mis en pratique ton idée. 

Le principe d'inverser le sens des pages ou quand que saurait faire - ajouter une page de garde - pour faire en sorte que nous tournions le moins souvent les pages. Sur une partition de 8 pages nous tournons quatre fois en ajoutant une page de garde, nous ne tournons que trois fois. 

Une petite dernière question : le compilateur me met un avertissement, mais je n'ai pas compris pourquoi.
Voici la dernière mouture de mon code https://gist.github.com/2a173e6ba59282638f21

Encore merci, Philippe

---

From: "[email-masked]" <[email-masked]>
Date: Wed, 12 Oct 2011 11:57:33 +0200

> Voici la dernière mouture de mon code https://gist.github.com/2a173e6ba59282638f21

Il faut supprimer cette ligne :

\override shortInstrumentName	#'color = #couleur

shortInstrumentName n'est pas un Grob, mais une propriété de contexte.  InstrumentName (avec un I majuscule) est un Grob, mais instrumentName est une propriété de contexte.  C'est difficile de saisir la différence entre ces subtilités quand on est débutant.  Quelques conseils pour trouver ses repères dans la nomenclature lilypondeuse :

\override [Context .] Grob #'property = #foobar (le contexte n'est nécessaire que dans des expressions musicales pour distinguer un contexte supérieur (i.e. Staff par rapport à Voice) - dans les blocs \with et \layout sa présence déclenche une erreur).

\set [Context .] property = #foobar (encore une fois, le contexte n'est nécessaire que dans un des expressions musicales).

La différence entre Contexte et Grob est difficile à décrire sans verser beaucoup d'encre virtuel, mais en gros, les contextes fournissent une manière d'organiser les données à travers une partition et, une fois organisées, elles se traduisent en objets graphiques (Grobs).

Les grobs et contextes commencent toujours par une lettre majuscule.  Les propriétés des grobs ne contiennent que des lettres minuscules et les mots sont séparés par des traits :

\override TextScript #'self-alignment-X = #LEFT

Les propriétés des contextes commencent toujours par une lettre minuscule, mais il n'y a pas d'espace entre les mots et les nouveaux mots commencent par une lettre majuscule :

\set Staff . instrumentName = #"foobar"

~Mike

---

From: Philippe Nenert <[email-masked]>
Date: Wed, 12 Oct 2011 13:01:01 +0200

> \override shortInstrumentName	#'color = #couleur

Merci pour ton explication.

J'ai changer pour la ligne suivante :
\override ShortInstrumentName	#'color = #couleur

En mettant un “S” majuscule, il devient un “Grob” et plus d'erreur dans mon source.

A bientôt, 
Philippe

---

From: "[email-masked]" <[email-masked]>
Date: Wed, 12 Oct 2011 13:09:31 +0200

> En mettant un “S” majuscule, il devient un “Grob” et plus d'erreur dans mon source.

Le grob "ShortInstrumentName" n'existe pas - il n'y a qu'InstrumentName qui prend soit la valeur de la propriété instrumentName soit celle de shortInstrumentName en fonction du système.  C'est un peu compliqué au premier abord - dis moi si tu veux des explications supplémentaires sur comment ça marche.  Actuellement, la ligne avec ShortInstrumentName n'a pas d'effet sur la partition et peut être supprimée.

Cordialement,
~Mike

---

From: Philippe Nenert <[email-masked]>
Date: Wed, 12 Oct 2011 13:29:44 +0200

> Le grob "ShortInstrumentName" n'existe pas - il n'y a qu'InstrumentName qui prend soit la valeur de la propriété instrumentName soit celle de shortInstrumentName en fonction du système.  C'est un p…

Tu as parfaitement raison. La suppression de cette ligne à eu aucun effet sur la partition et les “shortInstrumentName” sont en couleurs comme je le souhaitais.

Pour le moment je me contenterai de ces premières explications. je ne suis pas sur d'avoir tout compris dans les subtilités de LiLyPond. Je reconnais que c'est un langage de programmation particulièrement différent de ceux que j'utilise au quotidien.

Merci, Philippe