instrumentName centrés (2)

Bonjour Messieurs,

Après avoir joué avec des hspace, hcenter-in, X-offset, positifs, négatifs, combinés, etc... je m'en remets à votre expérience pour trancher. Dans le code suivant, que faut-il modifier pour que les noms des voix soient centrés sur la même colonne pour chaque \Staff d'un \Score, tout en restant calés à droite ? (on remarque particulièrement ce que je cherche à empêcher sur le score 2).
ie : la colonne n'aurait pas toujours la même largeur (score 1 / score 2) mais serait toujours calée à droite (à un petit espace, constant, du score).

Merci,
Germain (qui n'est pas misogyne, juste observateur)

pj: "test-instrname.png"

%% "test-instrname.ly"
%% Test d'alignement de instrumentName

\version "2.11.47"
\include "english.ly"

Global = { \key f \major }
NotesDiscantus = { a'4 a'1 }
NotesCantus = { f'4 f'1 }
NotesFiller = { c'4 c'1 }
NotesBassus = { f4 f1 }
Words = \lyricmode { Ta __ daa }

%%%%%%%%%%%%%%%
VoiceNames =
#(define-music-function (parser location sone stwo) (string? string?)
"Format and print voice names for one staff"
#{
\set Staff . instrumentName = \markup{ \center-align { $sone $stwo } }
#})

%%%%%%%%%%%%%%%
\layout % commun
{
\context { \ChoirStaff \consists Instrument_name_engraver
\override InstrumentName #'self-alignment-X = #LEFT }
\context { \Staff \remove Time_signature_engraver
\override InstrumentName #'self-alignment-X = #RIGHT }
}
%%%%%%%%%%%%%%%
\score % 1
{
\new ChoirStaff
<<
\set ChoirStaff . instrumentName = "N°1 Première version :"

\new Staff
<<
\VoiceNames "S. " "A. " \clef "G"
\Global
\new Voice = "one" { \voiceOne \NotesDiscantus }
\new Voice { \voiceTwo \NotesCantus }

\new Lyrics = thewords { s }

\new Staff
<<
\VoiceNames "T. " "B. " \clef "F"
\Global
\new Voice { \voiceOne \NotesFiller }
\new Voice { \voiceTwo \NotesBassus }

\context Lyrics = thewords \lyricsto "one" { \Words }

\layout { indent = 50\mm }
}

%%%%%%%%%%%%%%%
\score % 2
{
\new ChoirStaff
<<
\set ChoirStaff . instrumentName = "N°2 Ou bien :"

\new Staff
<<
\VoiceNames "S.T. " "A. " \clef "G"
\Global
\new Voice = "one" { \voiceOne \transpose f bf << \NotesDiscantus \NotesCantus >> }
\new Voice { \voiceTwo \transpose f bf \NotesFiller }

\new Lyrics = thewords { s }

\new Staff
<<
\VoiceNames "B. " "" \clef "F"
\Global
\new Voice { \transpose f bf \NotesBassus }

\context Lyrics = thewords \lyricsto "one" { \Words }

\layout { indent = 30\mm }
}

test-instrname.png

Dans le code suivant, que faut-il modifier pour que les noms des voix soient centrés sur la même colonne pour chaque \Staff d'un \Score, tout en restant calés à droite ?

Je n'ai pas vraiment compris ce que tu voulais mais je pense que c'est à mettre en rapport avec un problème qui avait été soulevé ici
( http://lists.gnu.org/archive/html/lilypond-user-fr/2008-02/msg00008.html )
et qui avait conduit Nicolas Sceaux a nous donner les macros suivantes :

http://lsr.dsi.unimi.it/LSR/Item?id=383

Gilles

NB
J'ai cherché dans les snippets en mettant "instrumentName "(du nom de la propriété) mais on ne retrouve pas le snippet ci-dessus.
Heureusement que j'avais sauvegarder le message de Valentin donnant le id du snippet. Il fallait en fait taper "instrument name" pour y parvenir.

Je n'ai pas vraiment compris ce que tu voulais mais je pense que c'est à
mettre en rapport avec un problème qui avait été soulevé ici
( InstrumentName centrés par défaut? )
et qui avait conduit Nicolas Sceaux a nous donner les macros suivantes :

Est-ce que ça n'avait pas donné lieu à un patch dans le code source, même ?
http://lists.gnu.org/archive/html/lilypond-user-fr/2008-02/msg00025.html

Où en est-on de ce patch ? La propriété est-elle implémentée ?

J'ai cherché dans les snippets en mettant "instrumentName "(du nom de la
propriété) mais on ne retrouve pas le snippet ci-dessus.

Oui, la recherche sur le LSR ne prend plus en compte le code source
des snippets. C'est ajouté à ma liste de voeux pour Noël.

Valentin

···

Le 12 juin 2008 09:16, Gilles THIBAULT <****@****> a écrit :

Je pense que le problème est effectivement lié. Mais ce thread avait conduit à un patch de Lilypond. La solution d'alors est donc déjà intégrée dans la version que j'utilise aujourd'hui. Pourtant...
Pour clarifier : ce que je veux obtenir (voir "test-instrname.png" dans mon mail précedent, le 2e score), c'est que :

  • le "B." soit centré sous le "A."
  • le "A." reste où il est (soit : centré sous le "S.T." qui, lui, reste calé à droite)

Merci,
Germain

···

----- Original Message -----
From: Gilles THIBAULT
To: Germain G. Ivanoff-Trinadtzaty ; Lilypond French users
Sent: Thursday, June 12, 2008 9:16 AM
Subject: Re: instrumentName centrés (2)

Dans le code suivant, que faut-il modifier pour que les noms des voix soient centrés sur la même colonne pour chaque \Staff d'un \Score, tout en restant calés à droite ?

Je n'ai pas vraiment compris ce que tu voulais mais je pense que c'est à mettre en rapport avec un problème qui avait été soulevé ici
( http://lists.gnu.org/archive/html/lilypond-user-fr/2008-02/msg00008.html )
et qui avait conduit Nicolas Sceaux a nous donner les macros suivantes :

http://lsr.dsi.unimi.it/LSR/Item?id=383

Gilles

Je pense que le problème est effectivement lié. Mais ce thread avait conduit à un patch de Lilypond. La solution d'alors est donc déjà intégrée dans la version que j'utilise aujourd'hui. Pourtant...
Pour clarifier : ce que je veux obtenir (voir "test-instrname.png" dans mon mail précedent, le 2e score), c'est que :

  • le "B." soit centré sous le "A."
  • le "A." reste où il est (soit : centré sous le "S.T." qui, lui, reste calé à droite)

Ah, je pense que ce que tu veux c'est ce que donne le markup \hcenter-in

Modifie ta fonction comme ci-dessous est dis-nous si c'est ça que tu veux :

%%%%%%%%%%%%%%%

maxWidth = #5

VoiceNames =
#(define-music-function (parser location sone stwo) (string? string?)
"Format and print voice names for one staff"
#{
\set Staff . instrumentName = \markup{
\column {
\hcenter-in #maxWidth $sone
\hcenter-in #maxWidth $stwo } }
#})

%%%%%%%%%%%%%%%

Gilles

Mais oui ! Merci beaucoup !
Je n'avais pas compris l'usage/utilité de \hcenter-in.
J'étais en train justement d'expérimenter \with-dimensions #'(0 . 0) #'(? . ?) \center-align ...
avec l'idée de décaler ensuite vers la gauche (d'une valeur à déterminer à tatons, pour chaque score). Pour ne pas perdre le centrage vertical, je cherchais à l'aide de \strut comment placer les bonnes valeurs aux ?. Embrouillé, et pas sûr d'aboutir.
Avec ta solution, il ne reste qu'à adapter maxWidth pour chaque \score ; je le passerai donc aussi en paramètres.

Tout de bon,
Germain

ps : [dans le thread suivant]

···

----- Original Message -----
From: Gilles THIBAULT
To: Germain G. Ivanoff-Trinadtzaty ; Lilypond French users
Sent: Thursday, June 12, 2008 2:44 PM
Subject: Re: instrumentName centrés (2)

Je pense que le problème est effectivement lié. Mais ce thread avait conduit à un patch de Lilypond. La solution d'alors est donc déjà intégrée dans la version que j'utilise aujourd'hui. Pourtant...
Pour clarifier : ce que je veux obtenir (voir "test-instrname.png" dans mon mail précedent, le 2e score), c'est que :

  • le "B." soit centré sous le "A."
  • le "A." reste où il est (soit : centré sous le "S.T." qui, lui, reste calé à droite)

Ah, je pense que ce que tu veux c'est ce que donne le markup \hcenter-in

Modifie ta fonction comme ci-dessous est dis-nous si c'est ça que tu veux :

%%%%%%%%%%%%%%%

maxWidth = #5

VoiceNames =
#(define-music-function (parser location sone stwo) (string? string?)
"Format and print voice names for one staff"
#{
\set Staff . instrumentName = \markup{
\column {
\hcenter-in #maxWidth $sone
\hcenter-in #maxWidth $stwo } }
#})

%%%%%%%%%%%%%%%

Gilles

Il faut supprimer ce snippet, ou bien le marquer comme obsolète,
puisqu'il y a maintenant dans LilyPond un moyen plus propre d'obtenir
des noms d'instruments centrés (voir la documentation de 2.11).

···

Le 12 juin 08 à 09:16, Gilles THIBAULT a écrit :

[...]
http://lsr.dsi.unimi.it/LSR/Item?id=383

Gilles

NB
J'ai cherché dans les snippets en mettant "instrumentName "(du nom de la propriété) mais on ne retrouve pas le snippet ci-dessus.
Heureusement que j'avais sauvegarder le message de Valentin donnant le id du snippet. Il fallait en fait taper "instrument name" pour y parvenir.