Insérer et positionner des blocs \markup indépendants

Bonjour à tous,

depuis quelques jours une discussion sur la liste internationale a
dérivé vers des questions liées aux blocs \markups indépendants
(c'est-à-dire, les extraits de texte que vous pouvez placer dans un
bloc \book, par exemple entre des fragments musicaux).

Je laisse le soin à sdfsgsdhsdhs -- ou quel que soit son nom :wink: -- de
récapituler la question.

Cordialement,
Valentin

Bonjour à tous,

Merci Valentin.
La question est la suivante: dans un unique pdf avec beaucoup de scores, on me demande
-- de mettre du texte après chaque score, et surtout près du bas de ces scores: 5mm grand maximum.
-- Si l'on modifie les scores, ces textes doivent rester positionnés correctement, sans intervention manuelle.
C'est simple à dire... mais je viens de découvrir que ce ne l'est pas du tout à faire!

Détails sur la question

  1. Ce texte est différent pour chaque score, et doit se situer très près du bas du score précédent (ou de la dernière portée du score si vous préférez). 5 millimètres est un maximum.
    Pour fixer les idées, ce texte se situe donc entre un score et le titre du score suivant, mais doit être très près du score précédent. Le texte doit aussi être loin du titre suivant (quelques cms), mais cette dernière exigence est simple et ne pose pas de problème.

  2. ce texte est constitué de plusieurs pavés de texte sur quelques lignes, certains alignés à gauche, d'autres à droite sur la même ligne, et d'autres centrés plus bas.
    Ce cahier des charges fait tout de suite penser à \markup. Je suis arrivé à faire un markup qui fasse tout cela, mais le problème restant est le positionnement de ces pavés de texte,
    2.1) d'une part en X (voir ci-dessous)
    2.2) d'autre part en Y, pour rapprocher le tout le plus possible du score.
    2.3) et surtout, le tout restant positionné correctement même quand on change le score précédent. C'est un point important.

Tests de différentes idées
3) si l'on utilise un markup "libre", le texte se situe trop loin du score, à 2 cm environ. Il ne semble pas y avoir en lilypond de paramètre de markup permettant le positionnement précis là ou l'on veut de ce texte. C'est étonnant de la part d'un logiciel avec autant de possibilités.

  1. si l'on utilise un markup lié à une note, genre sol2_\markup
    4.1) en Y le texte peut être mis très près de la portée, génial, MAIS
    4.2) en X le positionnement voulu du texte est possible, mais doit se faire empiriquement, par de nombreux essais et erreurs.
    4.3) D'autre part, le moindre changement de la partition change le positionnement du texte.
    4.4) Enfin, le choix de cette note sur laquelle est basée le markup, est très difficile, et peut changer à chaque modification.
    4.5) sachant qu'il doit y avoir plusieurs centaines de scores dans le pdf, et que les modifications sont fréquentes, le seul positionnement de ces pavés entraîne une masse de travail énorme, plus importante que les autres taches de la réalisation du pdf entier!!

  2. une dernière idée serait de lier le markup à la barre finale du score. Genre bar "|"_\markup ou avec \mark
    Est-ce possible? je n'y suis personnellement pas arrivé, même en essayant différentes syntaxes.

J'espère m'être fait comprendre... si vous avez des questions, n'hésitez pas!
Cordialement.

PS1: toute solution m'intéresse, même si elle passe par Scheme.
PS2: il semble que sur la liste internationale, cette question intéresse des personnes depuis deux ans environ, mais pas vu de solution.
PS3: merci de m'avoir lu jusqu'au bout! Promis, mes mails suivants seront plus courts...

Valentin Villenave a écrit :

···

Bonjour à tous,

depuis quelques jours une discussion sur la liste internationale a
dérivé vers des questions liées aux blocs \markups indépendants
(c'est-à-dire, les extraits de texte que vous pouvez placer dans un
bloc \book, par exemple entre des fragments musicaux).

Je laisse le soin à sdfsgsdhsdhs -- ou quel que soit son nom :wink: -- de
récapituler la question.

Cordialement,
Valentin

Bonjour !

Première impresson, avant tout essai : lilypondbook ne sait pas faire ça ?

Autre pensée du jour : ne peut-on pas détourner l'outil stanza pour faire ça ? L'idée d'un texte
immédiatement sous la partition, lié au score du dessus, et pas à celui du dessous, avec
positionnmeent automatique, ça me fait penser à des partitions chorales avec couplets
supplémentaires. Mais je n'ai jamais testé personnellement.

A+ je vais tâcher de travailler dessus.

PS : un exemple de fichier aiderait beaucoup, notamment pour bien cerner la question et travailler
tous sur le même sujet !

Jmarc

             discussions-sur-forums
             <discussions-sur-forums@ora
             nge.fr> A
             Envoyé par : Valentin Villenave <****@****>
             lilypond-user-fr-bounces+je cc
             an-marc.legrand=total.com@g LilyPond <lilypond-user-fr@gnu.org>
             nu.org Objet
                                                 Re: Insérer et positionner des blocs \markup
                                                 indépendants
             11/07/2007 20:25
                                                                                                    
                 Veuillez répondre à
             discussions-sur-forums@oran
                        ge.fr
                                                                                                    
Bonjour à tous,

Merci Valentin.
La question est la suivante: dans un unique pdf avec beaucoup de scores, on me demande
-- de mettre du texte après chaque score, et surtout près du bas de ces scores: 5mm grand maximum.
-- Si l'on modifie les scores, ces textes doivent rester positionnés correctement, sans intervention
manuelle.
C'est simple à dire... mais je viens de découvrir que ce ne l'est pas du tout à faire!

Détails sur la question
1) Ce texte est différent pour chaque score, et doit se situer très près du bas du score précédent
(ou de la dernière portée du score si vous préférez). 5 millimètres est un maximum.
Pour fixer les idées, ce texte se situe donc entre un score et le titre du score suivant, mais doit
être très près du score précédent. Le texte doit aussi être loin du titre suivant (quelques cms),
mais cette dernière exigence est simple et ne pose pas de problème.

2) ce texte est constitué de plusieurs pavés de texte sur quelques lignes, certains alignés à
gauche, d'autres à droite sur la même ligne, et d'autres centrés plus bas.
Ce cahier des charges fait tout de suite penser à \markup. Je suis arrivé à faire un markup qui
fasse tout cela, mais le problème restant est le positionnement de ces pavés de texte,
2.1) d'une part en X (voir ci-dessous)
2.2) d'autre part en Y, pour rapprocher le tout le plus possible du score.
2.3) et surtout, le tout restant positionné correctement même quand on change le score précédent.
C'est un point important.

Tests de différentes idées
3) si l'on utilise un markup "libre", le texte se situe trop loin du score, à 2 cm environ. Il ne
semble pas y avoir en lilypond de paramètre de markup permettant le positionnement précis là ou l'on
veut de ce texte. C'est étonnant de la part d'un logiciel avec autant de possibilités.

4) si l'on utilise un markup lié à une note, genre sol2_\markup
4.1) en Y le texte peut être mis très près de la portée, génial, MAIS
4.2) en X le positionnement voulu du texte est possible, mais doit se faire empiriquement, par de
nombreux essais et erreurs.
4.3) D'autre part, le moindre changement de la partition change le positionnement du texte.
4.4) Enfin, le choix de cette note sur laquelle est basée le markup, est très difficile, et peut
changer à chaque modification.
4.5) sachant qu'il doit y avoir plusieurs centaines de scores dans le pdf, et que les modifications
sont fréquentes, le seul positionnement de ces pavés entraîne une masse de travail énorme, plus
importante que les autres taches de la réalisation du pdf entier!!

5) une dernière idée serait de lier le markup à la barre finale du score. Genre bar "|"_\markup ou
avec \mark
Est-ce possible? je n'y suis personnellement pas arrivé, même en essayant différentes syntaxes.

J'espère m'être fait comprendre... si vous avez des questions, n'hésitez pas!
Cordialement.

PS1: toute solution m'intéresse, même si elle passe par Scheme.
PS2: il semble que sur la liste internationale, cette question intéresse des personnes depuis deux
ans environ, mais pas vu de solution.
PS3: merci de m'avoir lu jusqu'au bout! Promis, mes mails suivants seront plus courts...

Valentin Villenave a écrit :
      Bonjour à tous,

      depuis quelques jours une discussion sur la liste internationale a
      dérivé vers des questions liées aux blocs \markups indépendants
      (c'est-à-dire, les extraits de texte que vous pouvez placer dans un
      bloc \book, par exemple entre des fragments musicaux).

      Je laisse le soin à sdfsgsdhsdhs -- ou quel que soit son nom :wink: -- de
      récapituler la question.

      Cordialement,
      Valentin

···

_______________________________________________
      liste de diffusion lilypond-user-fr
      lilypond-user-fr@gnu.org
      http://lists.gnu.org/mailman/listinfo/lilypond-user-fr

Bonjour !

Première impresson, avant tout essai : lilypondbook ne sait pas faire ça ?

J'étais sûr que tu dirais ça :wink:
Je n'utilise pas lilypond-book (depuis que je suis habitué à
l'élégance du code lilyPond, LaTeX me hérisse, c'est personnel); bien
sûr c'est l'outil idéal pour cela, mais ce serait quand même chouette
d'arriver à l'équivalent grâce à LilyPond...

Autre pensée du jour : ne peut-on pas détourner l'outil stanza pour faire ça ? L'idée d'un texte
immédiatement sous la partition, lié au score du dessus, et pas à celui du dessous, avec
positionnmeent automatique, ça me fait penser à des partitions chorales avec couplets
supplémentaires. Mais je n'ai jamais testé personnellement.

Je vois l'exemple auquel tu penses (paragraphe 7.3.9.4 et passim),
mais en fait, même dans cet exemple, c'est \markup qui est utilisé...

PS : un exemple de fichier aiderait beaucoup, notamment pour bien cerner la question et travailler
tous sur le même sujet !

Absolument : tu peux voir mon snippet ici
http://lsr.dsi.unimi.it/LSR/Item?id=300

Cordialement,
Valentin

···

Le 12/07/07, Jean-marc LEGRAND<****@****> a écrit :

1er essai pour voir si c'est cela que tu cherches :

j'ai défini la variable \texte contenant le texte, de la façon suivante :

texte = \markup {\override #'(line-width . 90) { \justify-string #"Lorem (...)"} }

ensuite, dans le bloc lower, j'ai mis ça pour ajuster le positionnement du texte sous la partition :
:

lower = \relative c {
\clef bass
\key c \major
\time 4/4
\override TextScript #'extra-offset = #'(-2 . -2) c4_\texte(...)
}

Ensuite, j'ai fait un book tout simple :

\book {
\score {
\new PianoStaff <<
      \set PianoStaff.instrumentName = "Piano "
        \new Staff = "upper" \upper
        \new Staff = "lower" \lower
            >>
}

}

voici mon .ly complet : (See attached file: exemple.ly)

tu me dis si ça correspond en tout ou partie à ta recherche ?

Le fait est que ce n'est pas un placement automatique, où il suffirait d'indiquer qu'on veut tant
d'écart entre le texte et la partoche. Le hic de cette méthode, c'est qu'il faut avoir la mise en
page de la partition avant, pour viser la 1ère note de la portée la plus basse et y insérer le
texte.

A+ : j'attends ta réponse pour m'y coller à nouveau.

JMarc

             "Valentin Villenave"
             <****@****>
                                                                                                  A
             12/07/2007 10:40 "Jean-marc LEGRAND" <****@****>
                                                                                                 cc
                                                 LilyPond <lilypond-user-fr@gnu.org>
                                                                                              Objet
                                                 Re: Insérer et positionner des blocs \markup
                                                 indépendants
                                                                                                    

Bonjour !

Première impresson, avant tout essai : lilypondbook ne sait pas faire ça ?

J'étais sûr que tu dirais ça :wink:
Je n'utilise pas lilypond-book (depuis que je suis habitué à
l'élégance du code lilyPond, LaTeX me hérisse, c'est personnel); bien
sûr c'est l'outil idéal pour cela, mais ce serait quand même chouette
d'arriver à l'équivalent grâce à LilyPond...

Autre pensée du jour : ne peut-on pas détourner l'outil stanza pour faire ça ? L'idée d'un texte
immédiatement sous la partition, lié au score du dessus, et pas à celui du dessous, avec
positionnmeent automatique, ça me fait penser à des partitions chorales avec couplets
supplémentaires. Mais je n'ai jamais testé personnellement.

Je vois l'exemple auquel tu penses (paragraphe 7.3.9.4 et passim),
mais en fait, même dans cet exemple, c'est \markup qui est utilisé...

PS : un exemple de fichier aiderait beaucoup, notamment pour bien cerner la question et travailler
tous sur le même sujet !

Absolument : tu peux voir mon snippet ici
http://lsr.dsi.unimi.it/LSR/Item?id=300

Cordialement,
Valentin

exemple.ly (2.09 KB)

···

Le 12/07/07, Jean-marc LEGRAND<****@****> a écrit :

Merci!

Verticalement, le problème est résolu.
Mais horizontalement, malheureusement pas vraiment (cf plus bas).

En modifiant comme suit les partitions (le reste ne change pas):
upper = \relative c'' {
\clef treble
\key c \major
\time 4/4
c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
c4
\bar "|."
}

lower = \relative c {
\clef bass
\key c \major
\time 4/4
\override TextScript #'extra-offset = #'(0 . -1)
c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
c4_\texte
\bar "|."
}

on remarque

  1. dans le deuxième système, les deux portées sont très éloignées.

  2. surtout tous les textes sont tronqués à droite de la page.

  3. d'autre part, on m'a imposé la contrainte suivante:
    La partition informatique est saisie à part dans un format propriétaire, puis je fais le script de conversion vers le format lilypond. Ce script doit générer en aveugle, càd le premier .ly doit être le bon: ce script n'a pas la possibilité de générer du .ly, compiler ce fichier, regarder dans le pdf s'il faut améliorer le code lilypond (genre faire des mesures d'offset dans le pdf), refaire le .ly en conséquence de ce qu'il a "vu" dans le pdf, etc.

  4. Conséquence: manuellement je pourrais faire varier le paramètre horizontal de l'offset par essais et erreurs jusqu'à arriver à décaler les textes à leurs bonnes positions, mais ici ce n'est pas possible: pas de deuxième essai!
    [sans parler du fait qu'ici, le nombre de partitions se compte en quelques milliers: donc positionner manuellement par essais et erreurs, au demi-millimètre près, quelques milliers de pavés de texte... et recommencer à chaque modification... quelqu'un est partant? ;-)]

  5. C'est pour cela que j'envisageais de faire la même chose que ton exemple, mais en me basant sur la barre finale: sachant qu'elle est à telle abscisse (quelque soit la partition, c'est le point important), j'en déduis l'offset à mettre dans le premier paramètre de \override TextScript #'extra-offset = #'(-100 . -1)
    Donc est-il possible de baser un markup (d'une manière ou d'une autre) sur une barre?

  6. J'essaie en parallèle de trouver d'autres débuts de pistes...

Cordialement.

Jean-marc LEGRAND a écrit :

···

1er essai pour voir si c'est cela que tu cherches :

j'ai défini la variable \texte contenant le texte, de la façon suivante  :

texte = \markup {\override #'(line-width . 90) { \justify-string #"Lorem (...)"} }

ensuite, dans le bloc lower, j'ai mis ça pour ajuster le positionnement du texte sous la partition :
:

lower = \relative c {
\clef bass
\key c \major
\time 4/4
\override TextScript #'extra-offset = #'(-2 . -2) c4_\texte(...)
}

Ensuite, j'ai fait un book tout simple :

\book {
\score {
\new PianoStaff <<
      \set PianoStaff.instrumentName = "Piano  "
        \new Staff = "upper" \upper
        \new Staff = "lower" \lower
            >>
}

}

voici mon .ly complet : (See attached file: exemple.ly)

tu me dis si ça correspond en tout ou partie à ta recherche ?

Le fait est que ce n'est pas un placement automatique, où il suffirait d'indiquer qu'on veut tant
d'écart entre le texte et la partoche. Le hic de cette méthode, c'est qu'il faut avoir la mise en
page de la partition avant, pour viser la 1ère note de la portée la plus basse et y insérer le
texte.

A+ : j'attends ta réponse pour m'y coller à nouveau.

JMarc
  

Valentin Villenave a écrit :

···

Le 12/07/07, Jean-marc LEGRAND<****@****> a écrit :

Bonjour !

Première impresson, avant tout essai : lilypondbook ne sait pas faire ça ?

J'étais sûr que tu dirais ça :wink:
Je n'utilise pas lilypond-book (depuis que je suis habitué à
l'élégance du code lilyPond, LaTeX me hérisse, c'est personnel); bien
sûr c'est l'outil idéal pour cela, mais ce serait quand même chouette
d'arriver à l'équivalent grâce à LilyPond...

OK, je préfère aussi nettement du code élégant; mais quand une solution moins élégante permet de s'économiser beaucoup de travail (cf mon mail précédent), pourquoi pas!

Dans la liste internationale, ils ont trouvé une solution pour personnaliser \markup; est-ce que ce serait une piste?

discussions-sur-forums a écrit :