Compressabilité...

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"

Olivier Chamley wrote:

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"

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.

Bonjour,

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

  \paper {
    page-count = #1
  }

Cordialement,
Xavier

···

2011/4/2 Olivier Chamley <****@****>:

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 ?

--
Xavier Scheuer <****@****>

Olivier Chamley wrote:

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"

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...

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

···

2011/4/2 Olivier Chamley <****@****>:

Certes, mais c'était juste un exemple pour montrer que ça ne se comprimait
pas alors que le minimum-distance est à zéro...

--
Xavier Scheuer <****@****>

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

···

Le 02/04/2011 18:03, Xavier Scheuer a écrit :

2011/4/2 Olivier Chamley<****@****>:

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

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 :

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).

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

···

2011/4/2 Olivier Chamley <****@****>:

--
Xavier Scheuer <****@****>

   « […] 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.

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)

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".

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

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.

[…]

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

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.

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 } } } }

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

···

2011/4/2 Olivier Chamley <****@****>:

--
Xavier Scheuer <****@****>