alignement figured bass

Bonjour à toutes et à tous !

Je sollicite à nouveau vos lumières pour un truc qui doit être tout simple à faire mais sur lequel je rame depuis un moment...

En compilant ce petit bout :

basse = \relative c {\clef bass \stemUp c8 e f d g4 g, c1}/ % le \stemUp c'est exprès pour avoir des hampes qui gènent les chiffres/
chiffres = \figuremode {<_+>4 <5>8 <6> <6 4>4 <5 4>8 <_+> <5>}

\score {
<<
\new Staff = bc {\basse}
\context Staff = bc \chiffres
>>
\layout {}
}

vous constaterez que le chiffrage suis plus ou moins les hauteurs de hampe.

Je souhaite que tous les chiffres soient alignés sur une seule ligne (et pas une oreille qui dépasse)... le but est d'avoir une lecture moins houleuse des chiffres
et un aspect plus harmonieux.

J'ai bidouillé plus d'une heure avec des \override BassFigure #'padding = #10 et autres sauces avec BassFigureAlignment + des trucs pour forcer un espace au-dessus de la ligne de basse (genre rien en-dessous de 10, mais le pire est que seul le chiffre du haut se soulève... cauchemar...), mais rien n'y a fait : je m'en remats totalement à votre sagacité...

Merci d'avance !

JMarc

Le 18/05/2010 17:33, Editions IN NOMINE disait :

Bonjour à toutes et à tous !

Je sollicite à nouveau vos lumières pour un truc qui doit être tout
simple à faire mais sur lequel je rame depuis un moment...

En compilant ce petit bout :

basse = \relative c {\clef bass \stemUp c8 e f d g4 g, c1}/ % le \stemUp
c'est exprès pour avoir des hampes qui gènent les chiffres/
chiffres = \figuremode {<_+>4 <5>8 <6> <6 4>4 <5 4>8 <_+> <5>}

\score {
<<
\new Staff = bc {\basse}
\context Staff = bc \chiffres
>>
\layout {}
}

vous constaterez que le chiffrage suis plus ou moins les hauteurs de hampe.

Je souhaite que tous les chiffres soient alignés sur une seule ligne (et
pas une oreille qui dépasse)... le but est d'avoir une lecture moins
houleuse des chiffres
et un aspect plus harmonieux.

J'ai bidouillé plus d'une heure avec des \override BassFigure #'padding
= #10 et autres sauces avec BassFigureAlignment + des trucs pour forcer
un espace au-dessus de la ligne de basse (genre rien en-dessous de 10,
mais le pire est que seul le chiffre du haut se soulève...
cauchemar...), mais rien n'y a fait : je m'en remats totalement à votre
sagacité...

Moi, je tenterais :
     \new Staff = "Basso" {
       \set Staff.instrumentName = #"Basso"
       << \clef bass
   \new Voice { \basse }
   \new FiguredBass { \chiffres }
       >> }

C'est très élégant !

@+
Jean-Charles

2010/5/18 Jean-Charles Malahieude <****@****> :

Moi, je tenterais :
\new Staff = "Basso" {
\set Staff.instrumentName = #"Basso"
<< \clef bass
\new Voice { \basse }
\new FiguredBass { \chiffres }
>> }

C'est très élégant !

Ouais, moi je mets FiguredBass au même niveau que Staff (et non Voice),
mais l'idée est la même. Idem pour ChordNames ou Lyrics, mais je ne
sais pas si c'est correct/justifié.

Par contre pour avoir une basse figurée dépendante de la hauteur des
notes _il faut_ mettre le \figuremode dans le contexte Staff.
C'est expliqué dans la doc NR 2.7.3 Figured bass.

Cordialement,
Xavier

···

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

Yessss ! Et pour compléter vos propositions (la basse chiffrée était sous la ligne de basse), voici ce que j'ai obtenu grâce à votre aide et qui répond entièrement à ma question :

\score {
  <<
  \new FiguredBass { \chiffres }
  \new Staff { \basse }
  >>
}

Merci à vous : vous m'enlevez une sacrée épine du pied !

A bientôt

JMarc

Xavier Scheuer wrote:

···

2010/5/18 Jean-Charles Malahieude <****@****> :

Moi, je tenterais :
   \new Staff = "Basso" {
     \set Staff.instrumentName = #"Basso"
     << \clef bass
        \new Voice { \basse }
        \new FiguredBass { \chiffres }
     >> }

C'est très élégant !
    
Ouais, moi je mets FiguredBass au même niveau que Staff (et non Voice),
mais l'idée est la même. Idem pour ChordNames ou Lyrics, mais je ne
sais pas si c'est correct/justifié.

Par contre pour avoir une basse figurée dépendante de la hauteur des
notes _il faut_ mettre le \figuremode dans le contexte Staff.
C'est expliqué dans la doc NR 2.7.3 Figured bass.

Cordialement,
Xavier

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

Cela dit, même si mon pb de base est résolu, je ne vois pas comment ajuster la hauteur de l'alignement en question. Et si, soyons fou, je décidais d'avoir un énorme espace entre ma ligne de basse et la ligne de chiffre ?

Il doit bien exister une truc du style :

*\new FiguredBass \with {\override BassFigure #'padding = #beaucoup*

non ?

Bonne journée !

JM

Xavier Scheuer wrote:

···

2010/5/18 Jean-Charles Malahieude <****@****> :

Moi, je tenterais :
   \new Staff = "Basso" {
     \set Staff.instrumentName = #"Basso"
     << \clef bass
        \new Voice { \basse }
        \new FiguredBass { \chiffres }
     >> }

C'est très élégant !
    
Ouais, moi je mets FiguredBass au même niveau que Staff (et non Voice),
mais l'idée est la même. Idem pour ChordNames ou Lyrics, mais je ne
sais pas si c'est correct/justifié.

Par contre pour avoir une basse figurée dépendante de la hauteur des
notes _il faut_ mettre le \figuremode dans le contexte Staff.
C'est expliqué dans la doc NR 2.7.3 Figured bass.

Cordialement,
Xavier

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

voire NR 4.4 Vertical spacing

attention aux différences des versions 2.12.… et 2.13.…!

···

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/alignement-figured-bass-tp5070693p5074440.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

2010/5/19 Editions IN NOMINE <****@****> :

Cela dit, même si mon pb de base est résolu, je ne vois pas comment
ajuster la hauteur de l'alignement en question. Et si, soyons fou,
je décidais d'avoir un énorme espace entre ma ligne de basse et la
ligne de chiffre ?

Il doit bien exister une truc du style :

*\new FiguredBass \with {\override BassFigure #'padding = #beaucoup*

non ?

Oui.

En fait tout ça est géré par le nouveau système d'espacement vertical
(attention : 2.13 uniquement, 2.12 passez votre chemin...). :slight_smile:
Dans le cas présent il s'agit d'espacement à l'intérieur d'un système
(NR 4.4.1 Vertical spacing inside a system).

La doc n'est pas facile à comprendre (moi j'ai du mal en tout cas). :stuck_out_tongue:
D'après ce que j'ai compris (i.e. n'hésitez pas à me corriger si je dis
n'importe quoi), il faut mettre tout d'abord

  \override FiguredBass.VerticalAxisGroup #'staff-affinity = #DOWN

puisque vous souhaitez mettre la basse figurée au-dessus de la portée
(autrement dit la portée se trouve *en dessous* -> DOWN).
Par défaut LilyPond considère que FiguredBass se trouve en dessous de
Staff (-> #'staff-affinity = #UP).

Ensuite pour gérer l'espace il faut savoir que FiguredBass n'est *pas*
une portée (Staff) ; donc l'espacement vis-à-vis de la portée la plus
proche du côté #'staff-affinity est régit par #'inter-staff-spacing,
comme expliqué dans la partie "Spacing of non-staff lines".
Donc
  \override VerticalAxisGroup #'inter-staff-spacing #'padding = #2

En résumé, utilisez quelque chose du style

  \score {
    <<
      \new FiguredBass \with {
        \override VerticalAxisGroup #'staff-affinity = #DOWN
        \override VerticalAxisGroup #'inter-staff-spacing #'padding =
#2 % défault: 0.5
      }
      { \chiffres }
      \new Staff { \basse }
    >>
  }

Cordialement,
Xavier

···

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

Absolument génial : c'est exactement ce que je voulais faire. Merci ! Au passage, je suis bien content d'avoir opté pour 2.13 pour pouvoir faire ainsi papa/maman !

En guise de remerciements, je suis en train de vous traduire à ma manière le 4.4.1 en question... c'est fou ce que traduire peut faire assimiler (obligé de comprendre pour faire comprendre...)

Encore merci et à bientôt !

JM

Xavier Scheuer wrote:

···

2010/5/19 Editions IN NOMINE <****@****> :

Cela dit, même si mon pb de base est résolu, je ne vois pas comment
ajuster la hauteur de l'alignement en question. Et si, soyons fou,
je décidais d'avoir un énorme espace entre ma ligne de basse et la
ligne de chiffre ?

Il doit bien exister une truc du style :

*\new FiguredBass \with {\override BassFigure #'padding = #beaucoup*

non ?
    
Oui.

En fait tout ça est géré par le nouveau système d'espacement vertical
(attention : 2.13 uniquement, 2.12 passez votre chemin...). :slight_smile:
Dans le cas présent il s'agit d'espacement à l'intérieur d'un système
(NR 4.4.1 Vertical spacing inside a system).

La doc n'est pas facile à comprendre (moi j'ai du mal en tout cas). :stuck_out_tongue:
D'après ce que j'ai compris (i.e. n'hésitez pas à me corriger si je dis
n'importe quoi), il faut mettre tout d'abord

  \override FiguredBass.VerticalAxisGroup #'staff-affinity = #DOWN

puisque vous souhaitez mettre la basse figurée au-dessus de la portée
(autrement dit la portée se trouve *en dessous* -> DOWN).
Par défaut LilyPond considère que FiguredBass se trouve en dessous de
Staff (-> #'staff-affinity = #UP).

Ensuite pour gérer l'espace il faut savoir que FiguredBass n'est *pas*
une portée (Staff) ; donc l'espacement vis-à-vis de la portée la plus
proche du côté #'staff-affinity est régit par #'inter-staff-spacing,
comme expliqué dans la partie "Spacing of non-staff lines".
Donc
  \override VerticalAxisGroup #'inter-staff-spacing #'padding = #2

En résumé, utilisez quelque chose du style

  \score {
    <<
      \new FiguredBass \with {
        \override VerticalAxisGroup #'staff-affinity = #DOWN
        \override VerticalAxisGroup #'inter-staff-spacing #'padding =
#2 % défault: 0.5
      }
      { \chiffres }
      \new Staff { \basse }
    >>
  }

Cordialement,
Xavier

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

Et pour ceux qui chipotent encore, comme moi :stuck_out_tongue: , en trouvant que les chiffrages <_+> et <_-> sont décalés vers le bas par rapport aux chiffres et que ça fait pas beau, je viens de faire de la brasse coulée dans le /usr/share/lilypond/scm/translation-functions.scm (après un petit backup of course), et j'ai trouvé la ligne qui manipule le positionnement desdits chiffrages :

    (if (and (not fig-markup) alt-markup)
    (begin
      (set! fig-markup (markup #:left-align #:pad-around 0.3 alt-markup))
      (set! alt-markup #f)))

J'ai cru comprendre les choses suivantes (en sachant qu'avec Scheme, on lit de droite à gauche... :

    (if (and (not fig-markup) alt-markup) --> si chiffrage est une altération ET pas un chiffre (une altération suele, donc)
    (begin --> que la fête commence :
    (set! fig-markup (markup #:left-align #:pad-around 0.3 alt-markup)) --> justifier à gauche et faire un espace de 0.3 autour de l'altération et input dans la varialbe fig-markup
                                                                                        (mais nous on s'en fout)
    (set! alt-markup #f))) --> pareil, je comprends pas vraiment, et je m'en tape !

Bref, en pratique : si je mets -0.3 à la place de 0.3, j'ai mes chiffrages dièses et bémol (en dehors de combinaisons avec des chiffres) qui se placent dans l'axe des autres chiffrages et c'est beau ! Attention, à combiner, avec la belle propriété de Xavier : \override VerticalAxisGroup #'inter-staff-spacing #'padding = #x, pour ne pas voir disparaître les dits chiffres dans les limbes (il faut que je creuse un peu plus)...

A tout de suite : j'ai quelque chose à vous demander encore sur la basse chiffrée, mais soufflons un peu...

JMarc

Xavier Scheuer wrote:

···

2010/5/19 Editions IN NOMINE <****@****> :

Cela dit, même si mon pb de base est résolu, je ne vois pas comment
ajuster la hauteur de l'alignement en question. Et si, soyons fou,
je décidais d'avoir un énorme espace entre ma ligne de basse et la
ligne de chiffre ?

Il doit bien exister une truc du style :

*\new FiguredBass \with {\override BassFigure #'padding = #beaucoup*

non ?
    
Oui.

En fait tout ça est géré par le nouveau système d'espacement vertical
(attention : 2.13 uniquement, 2.12 passez votre chemin...). :slight_smile:
Dans le cas présent il s'agit d'espacement à l'intérieur d'un système
(NR 4.4.1 Vertical spacing inside a system).

La doc n'est pas facile à comprendre (moi j'ai du mal en tout cas). :stuck_out_tongue:
D'après ce que j'ai compris (i.e. n'hésitez pas à me corriger si je dis
n'importe quoi), il faut mettre tout d'abord

  \override FiguredBass.VerticalAxisGroup #'staff-affinity = #DOWN

puisque vous souhaitez mettre la basse figurée au-dessus de la portée
(autrement dit la portée se trouve *en dessous* -> DOWN).
Par défaut LilyPond considère que FiguredBass se trouve en dessous de
Staff (-> #'staff-affinity = #UP).

Ensuite pour gérer l'espace il faut savoir que FiguredBass n'est *pas*
une portée (Staff) ; donc l'espacement vis-à-vis de la portée la plus
proche du côté #'staff-affinity est régit par #'inter-staff-spacing,
comme expliqué dans la partie "Spacing of non-staff lines".
Donc
  \override VerticalAxisGroup #'inter-staff-spacing #'padding = #2

En résumé, utilisez quelque chose du style

  \score {
    <<
      \new FiguredBass \with {
        \override VerticalAxisGroup #'staff-affinity = #DOWN
        \override VerticalAxisGroup #'inter-staff-spacing #'padding =
#2 % défault: 0.5
      }
      { \chiffres }
      \new Staff { \basse }
    >>
  }

Cordialement,
Xavier

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