Subject: Re: alignement figured bass - une "dernière pour la route" ?

From: Editions IN NOMINE <[email-masked]>
Date: Thu, 27 May 2010 18:34:30 +0200

Oullà, je commence à avoir les pinceaux qui se croisent sérieusement, 
entre les propriétés de la FiguredBass et celles des staffs autour, il 
se passe des choses défiant tout entendement (enfin, le mien surtout ! 
:-[ ).

Il reste toutefois une constante, quels que soient les réglages : les 
chiffrages sous forme d'altération pure (ie non accompagnée d'un 
chiffre) sont toujours légèrement décalées vers le bas par rapport à la 
ligne générale, ce que je trouve très laid, perso...

J'ai essayé de rmettre les mains dans le cambouis du 
translation-functions.scm, en faisant varier les paramètres et en 
inventant des fonctions, mais rien ne se passe (ce qui en soit est déjà 
une victoire : j'écris des fonctions qui ne plantent pas =-O ).

Oh, j'ai bien trouvé une solution, mais franchement lourde et pas 
élégante : céer un chiffrage à chiffres (\chiffres) et un chiffrage à 
altérations (\alterations) que je superpose dans un staffGroup avec la 
basse. Alors, vous allez rire, mais quand je superpose avec \chiffres 
puis \alteration (puis \basse), j'ai mon décalage, mais quand je 
superpose \alterations puis \chiffres (puis basse), ya plus ! Je ne vous 
montre pas le code tellement c'est lourd, mais vous imaginez.

L'idée géniale serait de pouvoir  faire de la ségrégation entre les 
chiffrages chiffres et les chiffrages  alétrations (comme dans 
translation-functions.scm, d'ailleurs) et de pouvoir appliquer un 
\override adapté.

Petit supplément : lorsque l'on superpose ainsi deux basses chiffrées 
sur une même portée, seul le #'inter-staff-spacing #'padding = #Y du 
second s'applique, écrasant probablement le précédent.

Si quelqu'un(e) a une illumination ce soir, je lui propose d'en éclairer 
l'humble petit bout de code suivant, et de le (ou la) bénir jusqu'à la 
génération qu'il (elle) souhaite !

chiffres = \figuremode {<2>4 <_+> <5> <_-> <_+> <_+> <_+> <5> <_+> <5> <5>}
basse = \relative c {\clef bass c4 c c g c2 g c4 f g g, c1}
\score {
<<
\new FiguredBass \with {\override BassFigure #'font-size = # -1
                                        \override VerticalAxisGroup 
#'staff-affinity = #DOWN
                                        \override VerticalAxisGroup 
#'inter-staff-spacing #'padding = #2}{ \chiffres }
\new Staff { \basse }
  }

Grand merci d'avance !

JMarc

---

From: Editions IN NOMINE <[email-masked]>
Date: Fri, 28 May 2010 10:17:48 +0200

La nuit portant conseil, mes pinceaux se sont déliés, et j'ai trouvé de quoi ajuster au coup par coup la hauteur d'un chiffrage. J'expliqe la démarche, parce que je suis parti du manuel des références internes, en partant de 0 donc...

En fouillant dans le contexte FiguredBass, j'ai creusé l'objet Bassfigure (c'est celui que je veux bouger), qui supporte plusieurs interfaces (font-size par exemple, donc pourquoi pas extra-offset O:-) ) dont grob-interface qui propose plusieurs User settable properties, dont

extra-offset (pair of numbers)

A pair representing an offset. This offset is added just before outputting the symbol, so the typesetting engine is completely oblivious to it. The values are measured in staff-space units of the staff’s StaffSymbol.

:-D

Il suffit donc de créer up = \once \override BassFigure #'extra-offset = #'(0 . 0.2) (pour mon cas)
et le tour est joué.

Petite remarque : le 0.2 compense tout juste le -0.2 inscrit dans translation-functions.scm (mon grand copain), qui impose aux altérations de descendre de 0.2 notamment pour assurer un minimum d'espace sous les chiffres pour <n _+> et l'alignement horizontal pour <n+>)

Il faudrait que j'écrive mes mémoires sur le sujet... A la recherche de la basse continue...

A bientôt !

Editions IN NOMINE a écrit :
Oullà, je commence à avoir les pinceaux qui se croisent sérieusement, entre les propriétés de la FiguredBass et celles des staffs autour, il se passe des choses défiant tout entendement (enfin, le mien surtout ! :-[ ).

Il reste toutefois une constante, quels que soient les réglages : les chiffrages sous forme d'altération pure (ie non accompagnée d'un chiffre) sont toujours légèrement décalées vers le bas par rapport à la ligne générale, ce que je trouve très laid, perso...

J'ai essayé de rmettre les mains dans le cambouis du translation-functions.scm, en faisant varier les paramètres et en inventant des fonctions, mais rien ne se passe (ce qui en soit est déjà une victoire : j'écris des fonctions qui ne plantent pas =-O ).

Oh, j'ai bien trouvé une solution, mais franchement lourde et pas élégante : céer un chiffrage à chiffres (\chiffres) et un chiffrage à altérations (\alterations) que je superpose dans un staffGroup avec la basse. Alors, vous allez rire, mais quand je superpose avec \chiffres puis \alteration (puis \basse), j'ai mon décalage, mais quand je superpose \alterations puis \chiffres (puis basse), ya plus ! Je ne vous montre pas le code tellement c'est lourd, mais vous imaginez.

L'idée géniale serait de pouvoir  faire de la ségrégation entre les chiffrages chiffres et les chiffrages  alétrations (comme dans translation-functions.scm, d'ailleurs) et de pouvoir appliquer un \override adapté.

Petit supplément : lorsque l'on superpose ainsi deux basses chiffrées sur une même portée, seul le #'inter-staff-spacing #'padding = #Y du second s'applique, écrasant probablement le précédent.

Si quelqu'un(e) a une illumination ce soir, je lui propose d'en éclairer l'humble petit bout de code suivant, et de le (ou la) bénir jusqu'à la génération qu'il (elle) souhaite !

chiffres = \figuremode {<2>4 <_+> <5> <_-> <_+> <_+> <_+> <5> <_+> <5> <5>}
basse = \relative c {\clef bass c4 c c g c2 g c4 f g g, c1}
\score {
<<
\new FiguredBass \with {\override BassFigure #'font-size = # -1
\override VerticalAxisGroup #'staff-affinity = #DOWN
\override VerticalAxisGroup #'inter-staff-spacing #'padding = #2}{ \chiffres }
\new Staff { \basse }
}

Grand merci d'avance !

JMarc