Subject: Placement de texte à volonté

From: Jacques Menu <[email-masked]>
Date: Sat, 3 Jun 2023 09:31:03 +0200

Bonjour,

Il me semble que j’ai déjà vu des messages à ce sujet, mais je retrouve rien.

Comment faire pour placer ce genre de textes :

Ils viennent d’un fichier MusicXML dans des crédits, comme :

  <credit page="1">
    <credit-words default-x="129" default-y="244" font-size="11" valign="top">Source: "Japanese Popular Music: a collection of the popular music of Japan rendered in to the
staff notation", by Y. Nagai and K. Kobatake, 2nd ed., Osaka, S. Miki &amp; Co., 1892, pp. 96-97.

Transcribed into Finale music notation by Tom Potter, 2005.  See http://www.daisyfield.com/music/
Lyrics added by Karen Tanaka and Michael Good, 2006. See http://www.recordare.com/</credit-words>
  </credit>

Je peux récupérer les valeurs en x et y dans xml2ly et calculer les position pour Lily, il me manque juste la dernière étape.

Finale, MuseScore et musicxml2ly ont tous une manière différente de placer ces textes, en haut ou en bas de la page d'ailleurs, mais il s’avèrera probablement que le plus fidèle est Finale :

Merci pour votre aide, et bon w-e!

JM

---

From: Martial R <[email-masked]>
Date: Sat, 3 Jun 2023 11:24:01 +0200

Bonjour Jacques
genre :
%---------------------------------
\markup \wordwrap {
  Source: Japanese Popular Music: a collection of the popular music of
Japan rendered in to the
staff notation, by Y. Nagai and K. Kobatake, 2nd ed., Osaka, S. Miki
&amp; Co., 1892, pp. 96-97.
}

\markup\vspace #1

\markuplist  \wordwrap-lines {
  Transcribed into Finale music notation by Tom Potter, 2005.  See
http://www.daisyfield.com/music/
Lyrics added by Karen Tanaka and Michael Good, 2006. See
http://www.recordare.com
}
%---------------------------------------

https://lilypond.org/doc/v2.25/Documentation/notation/text-markup-introduction

-- 
Martial Rameaux

---

From: Martial R <[email-masked]>
Date: Sat, 3 Jun 2023 11:29:59 +0200

ou ceci
%--------------------------------
\header {
copyright =
\markup {
  \wordwrap {
  Source: Japanese Popular Music: a collection of the popular music of
Japan rendered in to the
staff notation, by Y. Nagai and K. Kobatake, 2nd ed., Osaka, S. Miki
&amp; Co., 1892, pp. 96-97.

\vspace #2

}
}
}

{ c }
%--------------------------------------

-- 
Martial Rameaux

---

From: Martial R <[email-masked]>
Date: Sat, 3 Jun 2023 18:59:32 +0200

J'avoue que c'est un peu à l'emporte pièce, je ne comprends pas
comment le  \vspace décale la ligne du dessus.

Le sam. 3 juin 2023 à 18:03, Jacques Menu <[email-masked]> a écrit :
>
> Merci Martial.
>
> Effectivement, ça peut marcher ainsi, avec le problème de calculer les arguments des \vspace, faute de positionnement absolu :
>
> \version "2.25.0"
>   {
> { c'' }
> \markup\vspace #45
>   {
> Peut-être devrais-je créer des options pour xml2ly afin d'indiquer ces valeurs…
>
> JM
>
> > Le 3 juin 2023 à 11:29, Martial R <[email-masked]> a écrit :
> >
> > ou ceci

-- 
Martial Rameaux

---

From: Jacques Menu <[email-masked]>
Date: Sat, 3 Jun 2023 18:03:08 +0200

Merci Martial.

\markup\vspace #1

\markup \wordwrap {
  {

{ c'' }

\markup\vspace #45

JM

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sun, 4 Jun 2023 17:00:26 +0200

Bonjour Jacques, bonjour Martial,
Ci-joint une représentation de ce que je comprends des default-x et
default-y.
Ai-je bien compris ?
Si oui on pourrait éventuellement écrire quelque chose comme :

\version "2.24.0"

#(define default-y (* -1 (/ 244 1.9)))
#(define default-x (/ 129 1.4))

\paper {
  left-margin = 30
  top-margin = 20
}

\header {
  title = "Test"
}

\markuplist {
  \with-dimensions-from \null {
    \fontsize #-1
    \translate #(cons 0 default-y)
    \override #'(line-width . 92)
    %\override #`(baseline-skip . ,default-x) % <= ne fonctionne pas
    %\override #(cons 'baseline-skip default-x) % <= ne fonctionne pas
    \wordwrap {
      Source: \italic { Japanese Popular Music: a collection of the popular
music of Japan rendered in to the
      staff notation }, by Y. Nagai and K. Kobatake, 2nd ed., Osaka, S.
Miki &amp; Co., 1892, pp. 96-97.
      Transcribed into Finale music notation by Tom Potter, 2005.  See
http://www.daisyfield.com/music/
      Lyrics added by Karen Tanaka and Michael Good, 2006. See
http://www.recordare.com/
    }
  }
}

{ c' }

Rqe 1 : je considère que la transposition des default-x et default-y sont
linéaires, ce qui est sans doute faux !
Rqe 2 : je ne comprends pas pourquoi je n'arrive plus à utiliser de
variables dans le \override (j'ai dû rater un ou plusieurs épisodes depuis
la 2.22...)
Rqe 3 : je n'ai peut-être rien compris au problème...
Rqe 4 : j'étais trop sûr de moi de te pondre une #(define-markup-list
note-de-reference ...) de-la-mort-qui-tue...

HTH, cordialement,
Pierre

Le dim. 4 juin 2023 à 14:33, Jacques Menu <[email-masked]> a écrit :

> Merci Martial.
>
> Effectivement, ça peut marcher ainsi, avec le problème de calculer les
> arguments des \vspace, faute de positionnement absolu :
>
> >>>    <credit-words default-x="129" default-y="244" font-size="11"
> valign="top">Source: "Japanese Popular Music: a collection of the popular
> music of Japan rendered in to the
> http://www.recordare.com/</credit-words>
> >>>  </credit>
> >>>
> >>> Je peux récupérer les valeurs en x et y dans xml2ly et calculer les
> position pour Lily, il me manque juste la dernière étape.
> >>>
> >>> Finale, MuseScore et musicxml2ly ont tous une manière différente de
> placer ces textes, en haut ou en bas de la page d'ailleurs, mais il
> s’avèrera probablement que le plus fidèle est Finale :
> >>>
> >>>
> >>>

---

From: Martial R <[email-masked]>
Date: Sun, 4 Jun 2023 17:39:43 +0200

Merci
moi ce que je ne comprends pas  c'est en plaçant  \vpace entre la
ligne "transcribed" et "Lyrics"
cela décale comme souhaité  vers le bas la ligne "transcribed" ?!?

%-------------------------------------------
\version "2.24.0"

\paper {
  left-margin = 30
  top-margin = 20
}

\header {
  title = "Test"
}

\markuplist {
  \with-dimensions-from \null {
    \fontsize #-1
    \translate #(cons 0 default-y)
    \override #'(line-width . 92)
    %\override #`(baseline-skip . ,default-x) % <= ne fonctionne pas
    %\override #(cons 'baseline-skip default-x) % <= ne fonctionne pas
    \wordwrap {
      Source: \italic { Japanese Popular Music: a collection of the
popular music of Japan rendered in to the
      staff notation }, by Y. Nagai and K. Kobatake, 2nd ed., Osaka,
S. Miki &amp; Co., 1892, pp. 96-97.
    % \vspace #1 %------ pas là
      Transcribed into Finale music notation by Tom Potter, 2005.  See
http://www.daisyfield.com/music/
      \vspace #1 %------ ici ?????
     Lyrics added by Karen Tanaka and Michael Good, 2006. See
http://www.recordare.com/
    }
  }
}

{ c' }
%-------------------------------------------

v

-- 
Martial Rameaux

---

From: Jacques Menu <[email-masked]>
Date: Sun, 4 Jun 2023 17:54:23 +0200

Bonjour Pierre,

Merci d’avoir pris le temps de faire le graphique en plus de cette proposition très intéressante!

Excuse-moi, j’aurais dû préciser ça, extrait de common.mod dans la DTS de MusicXML 3.1 :

	The position attributes are based on MuseData print
	suggestions. For most elements, any program will compute
	a default x and y position. The position attributes let
	this be changed two ways.

	The default-x and default-y attributes change the
	computation of the default position. For most elements,
	the origin is changed relative to the left-hand side of
	the note or the musical position within the bar (x) and
	the top line of the staff (y).
… … …
	Since the credit-words and credit-image elements are not
	related to a measure, in these cases the default-x and
	default-y attributes adjust the origin relative to the
	bottom left-hand corner of the specified page.

	The relative-x and relative-y attributes change the position
	relative to the default position, either as computed by the
	individual program, or as overridden by the default-x and
	default-y attributes.

	Positive x is right, negative x is left; positive y is up,
	negative y is down. All units are in tenths of interline
	space. For stems, positive relative-y lengthens a stem
	while negative relative-y shortens it.
… … …
	As elsewhere in the MusicXML format, tenths are the global
	tenths defined by the scaling element, not the local tenths
	of a staff resized by the staff-size element.

> Le 4 juin 2023 à 17:00, Pierre Perol-Schneider <[email-masked]> a écrit :
> 
> Ci-joint une représentation de ce que je comprends des default-x et default-y.
> Ai-je bien compris ?
>       Source: \italic { Japanese Popular Music: a collection of the popular music of Japan rendered in to the
>       staff notation }, by Y. Nagai and K. Kobatake, 2nd ed., Osaka, S. Miki &amp; Co., 1892, pp. 96-97. 
>       Lyrics added by Karen Tanaka and Michael Good, 2006. See http://www.recordare.com/
>     }
>   }
> }
> 
> { c' }
> 
> Rqe 1 : je considère que la transposition des default-x et default-y sont linéaires, ce qui est sans doute faux !

Qu’entend-tu par non-linéaires?
A part un changement d’origine comme vu ci-dessus, ça me paraît bien. Comment as-tu obtenu les nombres 1.9, 1.4 et 92?

> Rqe 2 : je ne comprends pas pourquoi je n'arrive plus à utiliser de variables dans le \override (j'ai dû rater un ou plusieurs épisodes depuis la 2.22...)

Silence réseau.

> Rqe 3 : je n'ai peut-être rien compris au problème...

Non, je ne pense pas.

> Rqe 4 : j'étais trop sûr de moi de te pondre une #(define-markup-list note-de-reference ...) de-la-mort-qui-tue...

Mais je ne vois pas de #(define-markup-list …?

JM

---

From: Jean Abou Samra <[email-masked]>
Date: Sun, 04 Jun 2023 23:32:34 +0200

Bonjour Pierre,
> Rqe 2 : je ne comprends pas pourquoi je n'arrive plus à utiliser de variables dans le \override (j'ai dû rater un ou plusieurs épisodes depuis la 2.22...)

Je ne comprends pas ce que tu veux dire. Pour moi, décommenter l'une ou l'autre de tes deux lignes commentées fait une grosse différence, le baseline-skip étant tellement grand qu'il fait sortir
toutes les lignes à partir de la deuxième des limites de la page...

Cordialement,
Jean

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sun, 4 Jun 2023 23:35:30 +0200

Oulla je devais être fatigué...
Voilà :

\version "2.24.0"

#(define-markup-list-command
  (note-de-reference layout props def-x def-y args) (number? number?
markup-list?)
   (let* ((default-x (/ def-x 1.4))
         (default-y (* -1 (/ def-y 1.8))))
  (interpret-markup-list layout props
     #{
        \markuplist {
          \with-dimensions-from \null {
            \fontsize #-1
            \translate #(cons 0 default-y)
            \override #`(line-width . ,default-x)
            \wordwrap { #args }
          }
        }
     #})))

\paper {
  top-margin = 20
  left-margin = 20
}

\header {
  title = "Test"
}

\markup \note-de-reference #124 #244 {
  Source: \italic { Japanese Popular Music: a collection of the popular
music of Japan rendered in to the
  staff notation }, by Y. Nagai and K. Kobatake, 2nd ed., Osaka, S. Miki
&amp; Co., 1892, pp. 96-97.
  Transcribed into Finale music notation by Tom Potter, 2005.  See
http://www.daisyfield.com/music/
  Lyrics added by Karen Tanaka and Michael Good, 2006. See
http://www.recordare.com/
}

{ c' }

Avec mes excuses,
Pierre

Le dim. 4 juin 2023 à 23:32, Jean Abou Samra <[email-masked]> a écrit :

> Je ne comprends pas ce que tu veux dire. Pour moi, décommenter l'une ou
> l'autre de tes deux lignes commentées fait une grosse différence, le
> baseline-skip étant tellement grand qu'il fait sortir toutes les lignes à
> partir de la deuxième des limites de la page...
>
> Cordialement,
> Jean
>
>

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Mon, 5 Jun 2023 08:34:53 +0200

Le dim. 4 juin 2023 à 17:54, Jacques Menu <[email-masked]> a écrit :
...

> Excuse-moi, j’aurais dû préciser ça, extrait de common.mod dans la DTS de
 ...

Nouvelle proposition avec ces nouveaux éléments :

\version "2.24.1"

#(define-markup-list-command
  (ref layout props def-x def-y line-width args) (number? number? number?
markup-list?)
    (let* ((default-x (* .1 def-x))
          (default-y (- (* .1 def-y) 165)))
    (interpret-markup-list layout props
     #{
        \markuplist {
          \with-dimensions-from \null {
            \fontsize #-2
            \translate #(cons default-x default-y)
            \override #`(line-width . ,line-width)
            \wordwrap { #args }
          }
        }
     #})))

\paper {
  top-margin = 10
  left-margin = 20
}

\header {
  title = "Test"
}

\markup\ref #129 #244 #80 {
  Source: \italic { Japanese Popular Music: a collection of the popular
music of Japan rendered in to the
  staff notation, } by Y. Nagai and K. Kobatake, 2nd ed., Osaka, S. Miki
&amp; Co., 1892, pp. 96-97.
  Transcribed into Finale music notation by Tom Potter, 2005.  See
http://www.daisyfield.com/music/
  Lyrics added by Karen Tanaka and Michael Good, 2006. See
http://www.recordare.com/
}

{ c' }

HTH, amicalment,
Pierre

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Mon, 5 Jun 2023 08:36:54 +0200

PS. J'ai ajouté une variable line-width (de longueur 80 dans mon exemple)

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Mon, 5 Jun 2023 09:33:50 +0200

Attention : la commande est affectée par la valeur de la marge supérieure :
Cf.
\version "2.24.1"

#(define-markup-list-command
  (ref layout props def-x def-y line-width args)
  (number? number? number? markup-list?)
  (let* ((default-x (* .1 def-x))
         (default-y (- (* .1 def-y) 161)))
    (interpret-markup-list layout props
      #{
        \markuplist\with-dimensions-from \null {
          \fontsize #-2
          \translate #(cons default-x default-y)
          \override #(cons 'line-width line-width)
          \wordwrap { #args }
        }
      #})))

\paper {
  %top-margin = 15
  bottom-margin = 0
  right-margin = 20
  left-margin = 0
}

\header {
  title = "Test"
}

\markup\ref #0 #0 #79 {
  staff notation, } by Y. Nagai and K. Kobatake, 2nd ed., Osaka, S. Miki &
Co., 1892, pp. 96-97.

{ c' }

Je regarde ça dès que j'ai un peu de temps.

Le lun. 5 juin 2023 à 09:02, Jacques Menu <[email-masked]> a écrit :

> Excellent Pierre, merci!
>
> Je ne connossais pas du tout  \with-dimensions-from .
>
> JM
>
> Le 5 juin 2023 à 08:34, Pierre Perol-Schneider <
> [email-masked]> a écrit :
>

---

From: Jacques Menu <[email-masked]>
Date: Mon, 5 Jun 2023 09:02:05 +0200

Excellent Pierre, merci!

JM

> Le 5 juin 2023 à 08:34, Pierre Perol-Schneider <[email-masked]> a écrit :
> 
> Le dim. 4 juin 2023 à 17:54, Jacques Menu <[email-masked] <mailto:[email-masked]>> a écrit :
> ...
>  
>   (ref layout props def-x def-y line-width args) (number? number? number? markup-list?)
>   staff notation, } by Y. Nagai and K. Kobatake, 2nd ed., Osaka, S. Miki &amp; Co., 1892, pp. 96-97.