Subject: instrumentName centrés (2)

From: "Germain G. Ivanoff-Trinadtzaty" <[email-masked]>
Date: Tue, 10 Jun 2008 21:45:46 +0200

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

---

From: "Gilles THIBAULT" <[email-masked]>
Date: Thu, 12 Jun 2008 09:16:39 +0200

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.

---

From: "Valentin Villenave" <[email-masked]>
Date: Thu, 12 Jun 2008 09:53:30 +0200

Le 12 juin 2008 09:16, Gilles THIBAULT <[email-masked]> a écrit :

> 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

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

---

From: "Germain G. Ivanoff-Trinadtzaty" <[email-masked]>
Date: Thu, 12 Jun 2008 13:09:58 +0200

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

  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)

Merci,
Germain

---

From: "Gilles THIBAULT" <[email-masked]>
Date: Thu, 12 Jun 2008 14:44:39 +0200

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

---

From: "Germain G. Ivanoff-Trinadtzaty" <[email-masked]>
Date: Thu, 12 Jun 2008 15:45:55 +0200

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

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

  maxWidth = #5

  VoiceNames =
   
  %%%%%%%%%%%%%%%

  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]

---

From: Nicolas Sceaux <[email-masked]>
Date: Thu, 12 Jun 2008 21:27:23 +0200

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

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

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