Subject: Compressabilité...

From: Olivier Chamley <[email-masked]>
Date: Sat, 02 Apr 2011 17:14:41 +0200

Bonjour à tous...

J'ai l'impression de ne pas avoir compris le fonctionnement de 
basic-distance et minimum-distance. Dans l'exemple ci-dessous, 
j'espérais que mes 5 mesures tiendraient dans une seul page (en 
utilisant la notion de /compressability/), mais que nenni, ça ne 
fonctionne pas et j'ai deux pages... A quoi sert le minimum-distance 
dans ce cas ?

Merci d'avance,

Olivier

\include "italiano.ly"

   \paper {
     indent = 0
     system-system-spacing = #'((basic-distance . 50) (minimum-distance 
. 0) (padding . 0) (stretchability . 100000))
     ragged-right = ##t
   }

   \score {
     \new Staff {
         \unfoldRepeats { \repeat volta 5 \relative do'' { do4 re mi fa 
\break } }
     }
   }

\version "2.13.55"

---

From: Eluze <[email-masked]>
Date: Sat, 2 Apr 2011 08:22:23 -0700 (PDT)

>          \unfoldRepeats { \repeat volta 5 \relative do'' { do4 re mi fa 

avec un (basic-distance . 50) ??? mets (basic-distance . 5) pour voir!

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Compressabilite-tp6233984p6233998.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Xavier Scheuer <[email-masked]>
Date: Sat, 2 Apr 2011 17:30:56 +0200

2011/4/2 Olivier Chamley <[email-masked]>:
> basic-distance et minimum-distance. Dans l'exemple ci-dessous, j'espérais
> que mes 5 mesures tiendraient dans une seul page (en utilisant la notion de
> compressability), mais que nenni, ça ne fonctionne pas et j'ai deux pages...
> A quoi sert le minimum-distance dans ce cas ?

Bonjour,

Si tu veux juste définir le nombre de pages, il y a  "page-count" .

  \paper {
    page-count = #1
  }

Cordialement,
Xavier

-- 
Xavier Scheuer <[email-masked]>

---

From: Olivier Chamley <[email-masked]>
Date: Sat, 02 Apr 2011 17:49:42 +0200

> avec un (basic-distance . 50) ??? mets (basic-distance . 5) pour voir!
Certes, mais c'était juste un exemple pour montrer que ça ne se 
comprimait pas alors que le minimum-distance est à zéro...

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

---

From: Xavier Scheuer <[email-masked]>
Date: Sat, 2 Apr 2011 18:03:13 +0200

2011/4/2 Olivier Chamley <[email-masked]>:
>
> Certes, mais c'était juste un exemple pour montrer que ça ne se comprimait
> pas alors que le minimum-distance est à zéro...

La logique du nouveau système d'espacement tel que je la comprends est
la suivante :

1. LilyPond essaie d'espacer les systèmes en utilisant la valeur de
"basic-distance".

2. Ensuite, dépendant des sauts de pages et du fait qu'il y a trop ou
pas assez de systèmes sur la page, LilyPond va _étirer_ ou _compresser_
les [espaces entre ces] systèmes.

3. Pour étirer il utilise la valeur de "stretchability" pour savoir
jusqu'à quel point il peut dilater ces espaces.
Pour compresser, il regarde la valeur de "minimum-distance", il ne peut
pas compresser en dessous de cette valeur !

La valeur de l'espace entre deux systèmes sera donc (dans le cas où
LilyPond doit compresser) comprise entre "basic-distance" et
"minimum-distance", tout en essayant de rester préférentiellement proche
de "basic-distance".

Cordialement,
Xavier

---

From: Olivier Chamley <[email-masked]>
Date: Sat, 02 Apr 2011 18:28:34 +0200

Le 02/04/2011 18:03, Xavier Scheuer a écrit :
> 2011/4/2 Olivier Chamley<[email-masked]>:
C'est ce que j'avais cru aussi comprendre ! Et mon exemple montre que ça 
ne marche pas (j'ai mis le minimum à zéro, mais il me fait tout de même 
2 pages). En mettant page-count à 1 comme tu me l'as conseillé, 
effectivement là, ça comprime. Par contre, ça ne semble pas tenir compte 
du minimum-distance (dans mon exemple, en mettant minimum-distance à 25 
et en mettant 20 systèmes, il me comprime à zéro). Qui plus est, avec 5 
systèmes (exemple initial), il m'affiche des messages suspects :

erreur de programmation : number of pages is out of bounds
poursuite ; croisons les doigts.
erreur de programmation : tried to space systems on a bad number of pages
poursuite ; croisons les doigts.

Bref, je ne comprends toujours pas à quoi sert le minimum-distance, mais 
merci quand même de ta réponse très rapide qui devrait régler mon problème).

Cordialement,

Olivier

---

From: Xavier Scheuer <[email-masked]>
Date: Sat, 2 Apr 2011 18:41:01 +0200

2011/4/2 Olivier Chamley <[email-masked]>:
>
> C'est ce que j'avais cru aussi comprendre ! Et mon exemple montre que ça ne
> marche pas (j'ai mis le minimum à zéro, mais il me fait tout de même 2
> pages).

Relis ma dernière phrase (la fin).

  « […] tout en essayant de rester préférentiellement proche de
  "basic-distance". »

Tu as mis une valeur de 50 pour "basic-distance", c'est énorme !
LilyPond essaie de rester proche de cette valeur, donc les systèmes sont
très espacés, donc 2 pages.

> En mettant page-count à 1 comme tu me l'as conseillé, effectivement
> là, ça comprime. Par contre, ça ne semble pas tenir compte du
> minimum-distance (dans mon exemple, en mettant minimum-distance à 25 et en
> mettant 20 systèmes, il me comprime à zéro). Qui plus est, avec 5 systèmes
> (exemple initial), il m'affiche des messages suspects :
>

C'est la distance minimale entre deux systèmes.

Si tu dis à LilyPond d'espacer beaucoup les systèmes
( minimum-distance = 25 , ça fait de grands espaces), tout en lui
demandant le contraire avec ton  page-count = 1 (s'il y a beaucoup de
lignes les systèmes seront _peu_ espacés), LilyPond se plaint.
Tu lui demandes deux choses contraires !

En général on utilise soit  page-count = 1 , soit on change les valeurs
de "system-system-spacing".

Cordialement,
Xavier

---

From: Olivier Chamley <[email-masked]>
Date: Sat, 02 Apr 2011 21:48:22 +0200

> très espacés, donc 2 pages.
Je reconnais, j'y ai été un peu fort. Mais c'était pour forcer le trait. 
J'ai donc modifié... Soit le même exemple, mais avec les valeurs par 
défaut. A partir de 15 systèmes, on passe à deux pages.

\include "italiano.ly"
   \paper { system-system-spacing = #'((basic-distance . 12) 
(minimum-distance . 6) (padding . 0) (stretchability . 1e7))
     ragged-right = ##t }
   \score { \new Staff { \unfoldRepeats { \repeat volta 15 \relative 
do'' { do4 re mi fa \break } } } }

Maintenant, je passe le minimum-distance à 0 et ... Ça ne change rien !

Tu vas me dire 'oui, mais il y a un grand écart entre 12 
(basic-distance) et 0 (minimum-distance). Certes, mais c'est bien ça que 
je voudrais. Tasser autant que possible, mais si ça ne passe pas, faire 
sur deux pages en reprenant l'espacement standard. A noter qu'avec une 
basic-distance à 0, j'arrive à en mettre 20 des systèmes !
> C'est la distance minimale entre deux systèmes.
Dans ce cas, disons que je ne sais pas comment l'atteindre (cf. exemple 
ci-dessus)
> de "system-system-spacing".
Comme je suis vicieux (désolé), un petit contre-exemple (et oui, notre 
lilypond croise encore les doigts) :

\include "italiano.ly"
   \paper { ragged-right = ##t page-count=#1 }
   \score { \new Staff { \unfoldRepeats { \repeat volta 15 \relative 
do'' { do4 re mi fa \break } } } }

Cordialement,

Olivier

---

From: Xavier Scheuer <[email-masked]>
Date: Sat, 2 Apr 2011 23:14:47 +0200

2011/4/2 Olivier Chamley <[email-masked]>:
> J'ai donc modifié... Soit le même exemple, mais avec les valeurs par défaut.
> A partir de 15 systèmes, on passe à deux pages.
>
> […]
>

Je ne suis pas le concepteur de ce nouveau système d'espacement (tout
au plus j'essaie d'en comprendre les mécanismes).

J'ai tendance à penser que ce nouveau système a été conçu avec une
volonté d'obtenir de meilleurs résultats en étirement en premier lieu.
Et j'ai le sentiment que LilyPond n'a pas *naturellement* prévu de
compresser les systèmes sans qu'il y soit contraint.

Ce qui en soit peut se justifier : on veut par défaut que les systèmes
soient suffisamment espacés, pour avoir une meilleure lisibilité.
On ne compresse les systèmes que lorsqu'on y est obligé, pour ajuster
une tourne ou nombre de page par exemple.

Donc sans contrainte particulière (tel "page-count" ou un  \pageBreak )
"minimum-distance" n'a pas d'influence, seul "basic-distance" compte.

>  \score { \new Staff { \unfoldRepeats { \repeat volta 15 \relative do'' {
> do4 re mi fa \break } } } }

Le fait que LilyPond croise les doigts ne veut pas dire que le résultat
sera mauvais, c'est plus une mise en garde pour qu'on vérifie le
résultat avant de publier.

Mais bon, plutôt que de me laisser tirer des plans sur la comète, si tu
veux une véritable explication (et la confirmation qu'il s'agit bien
d'un comportement voulu ou au contraire, qu'il s'agit d'un bug), je
t'invite à contacter directement Joe Neeman et les développeurs.

Cordialement,
Xavier