Certains /override sous \Score ne fonctionnent pas avec des MensuralStaff

Bonjour à tous!

Je travaille avec des portées mensurales, et, alors qu'avec des portées "normales" un \override StaffSymbol.line-thickness = #1.55 (lignes de portées plus épaisses) placé dans un contexte \Score fonctionne parfaitement, il est inopérant dans le cas d'un MensuralStaff. En fait, on dirait que toutes les commandes placées dans le contexte /Score (dans le \Layout) ne fonctionnen pas avec des portées mensurale. Faut-il utiliser une autre syntaxe?

Cordialement.

Bernard

Salut Bernard !

Mets un petit exemple s'il te plait !

Gilles

Salut Gilles! et désolé pour l'oubli…

\version "2.26.0"

\paper {
  property-defaults.fonts.music = "beethoven"
}

global = {
  \key g \major
  \time 20/1
  \omit Score.TimeSignature
  \override Staff.KeySignature.sharp-positions = #'((-4 . 5))
  \override Staff.KeyCancellation.sharp-positions = #'((-4 . 5))
  \override NoteHead.style = #'petrucci
}

sopranoVoiceI = \relative c'' {
  \global
  d1 d g\breve g1 fis\breve^+ fis1 g a d,\breve e1 d c b a\breve b \bar "|" \break
  
}

verseSopranoVoiceI = \lyricmode {
  Et in ter -- ra pax ho -- mi -- ni -- bus bo -- næ vo -- lun -- ta -- tis.
}

sopranoVoiceII = \relative c'' {
  \global
  b1 b d\breve b1 a\breve d1 d c b\breve^+ c1 g a b d\breve d
}

verseSopranoVoiceII = \lyricmode {
  Et in ter -- ra pax ho -- mi -- ni -- bus bo -- næ vo -- lun -- ta -- tis.
}

altoVoice = \relative c'' {
  \global
  g1 g b\breve g1 d\breve a'1 b a g\breve c,1 b a d d\breve g
}

verseAltoVoice = \lyricmode {
  Et in ter -- ra pax ho -- mi -- ni -- bus bo -- næ vo -- lun -- ta -- tis.
}

sopranoVoiceIPart = \new MensuralStaff \with {
  instrumentName = "Haut-Dessus"
} { \sopranoVoiceI }
\addlyrics { \verseSopranoVoiceI }

sopranoVoiceIIPart = \new MensuralStaff \with {
  instrumentName = "Dessus"
} { \clef "mensural-c1" \sopranoVoiceII }
\addlyrics { \verseSopranoVoiceII }

altoVoicePart = \new MensuralStaff \with {
  instrumentName = "Bas-Dessus"
} { \clef "mensural-c2" \altoVoice }
\addlyrics { \verseAltoVoice }

\score {
  \new ChoirStaff \with {
    \override StaffGrouper.staff-staff-spacing = #'(
                            (basic-distance . 1)
                            (padding . 4))
  }
  <<
    \sopranoVoiceIPart
    \sopranoVoiceIIPart
    \altoVoicePart
  >>
  \layout {
    indent = 2\cm
    \context {
      \Score
      \override StaffSymbol.thickness = #1.55
      \override Slur.thickness = #2
      \override Stem.thickness = #1.55
      \override Hairpin.thickness = #1.3
      \override Hairpin.minimum-length = #4
      \override BarLine.hair-thickness = #4
      \override BarNumber.break-align-symbols = #'(clef left-edge staff-bar)
      \override BarNumber.X-offset = #1.5
      \override BarNumber.Y-offset = #5
      \override BarNumber.font-name = #"Garamond Premier Pro"
      \override BarNumber.font-size = #0
      \override InstrumentName.font-name = #"Garamond Premr Pro"
      \override InstrumentName.font-size = #1
      \override BarNumber.padding = #1.0
      \override LyricText.font-name = #"Garamond Premier Pro"
      \override LyricText.font-size = #2
    }
  }
}

Voilà…

Bernard

Je pense qu'il faut utiliser le context MensuralStaff

\version "2.26.0"

\paper {
  property-defaults.fonts.music = "beethoven"
}

global = {
  \key g \major
  \time 20/1
  \omit Score.TimeSignature
  \override Staff.KeySignature.sharp-positions = #'((-4 . 5))
  \override Staff.KeyCancellation.sharp-positions = #'((-4 . 5))
  \override NoteHead.style = #'petrucci
}

sopranoVoiceI = \relative c'' {
  \global
  d1 d g\breve g1 fis\breve^+ fis1 g a d,\breve e1 d c b a\breve b \bar "|" \break
  
}

verseSopranoVoiceI = \lyricmode {
  Et in ter -- ra pax ho -- mi -- ni -- bus bo -- næ vo -- lun -- ta -- tis.
}

sopranoVoiceII = \relative c'' {
  \global
  b1 b d\breve b1 a\breve d1 d c b\breve^+ c1 g a b d\breve d
}

verseSopranoVoiceII = \lyricmode {
  Et in ter -- ra pax ho -- mi -- ni -- bus bo -- næ vo -- lun -- ta -- tis.
}

altoVoice = \relative c'' {
  \global
  g1 g b\breve g1 d\breve a'1 b a g\breve c,1 b a d d\breve g
}

verseAltoVoice = \lyricmode {
  Et in ter -- ra pax ho -- mi -- ni -- bus bo -- næ vo -- lun -- ta -- tis.
}

sopranoVoiceIPart = \new MensuralStaff \with {
  instrumentName = "Haut-Dessus"
} { \sopranoVoiceI }
\addlyrics { \verseSopranoVoiceI }

sopranoVoiceIIPart = \new MensuralStaff \with {
  instrumentName = "Dessus"
} { \clef "mensural-c1" \sopranoVoiceII }
\addlyrics { \verseSopranoVoiceII }

altoVoicePart = \new MensuralStaff \with {
  instrumentName = "Bas-Dessus"
} { \clef "mensural-c2" \altoVoice }
\addlyrics { \verseAltoVoice }

\score {
  \new ChoirStaff \with {
    \override StaffGrouper.staff-staff-spacing = #'(
                            (basic-distance . 1)
                            (padding . 4))
  }
  <<
    \sopranoVoiceIPart
    \sopranoVoiceIIPart
    \altoVoicePart
  >>
  \layout {
    indent = 2\cm
    \context {
      \MensuralStaff
      \override StaffSymbol.thickness = #1.55
      \override Slur.thickness = #2
      \override Stem.thickness = #1.55
      \override Hairpin.thickness = #1.3
      \override Hairpin.minimum-length = #4
      \override BarLine.hair-thickness = #4
      \override BarNumber.break-align-symbols = #'(clef left-edge staff-bar)
      \override BarNumber.X-offset = #1.5
      \override BarNumber.Y-offset = #5
      \override BarNumber.font-name = #"Garamond Premier Pro"
      \override BarNumber.font-size = #0
      \override InstrumentName.font-name = #"Garamond Premr Pro"
      \override InstrumentName.font-size = #1
      \override BarNumber.padding = #1.0
      \override LyricText.font-name = #"Garamond Premier Pro"
      \override LyricText.font-size = #2
    }
  }
}

Je me suis trompé à la première ligne du \layout:

\override StaffSymbol.thickness = #1.55

doit être:

\override StaffSymbol.line-thickness = #1.55

pour ne concerner que les lignes de la portée.

Avec "thickness" seul, cela fonctionne, mais a un effet également sur les hampes des notes alors que "line-thickness" ne concerne que les lignes des portées, et c'est cela que je recherche. Et cette dernière commande ne change rien à leur épaisseur, chez moi et tout cas…

Bernard

StaffSymbol n'accepte que:

break-align-symbols (list)
ledger-extra (dimension, in staff space)
ledger-line-thickness (pair of numbers)
ledger-positions (list)
ledger-positions-function (any type)
line-count (integer)
line-positions (list)
staff-space (dimension, in staff space)
thickness (number)
widened-extent (pair of numbers)
width (dimension, in staff space)

Et pas de line-thickness...

Mets \override StaffSymbol.thickness = #3 Pour mieux voir le résultat peut-etre...

Et pourtant la commande \override StaffSymbol.line-thickness = #1.55 marche lorsqu'on utilise un Staff "normal"… je viens de tester…

Ajout:

le fait d'utiliser \override StaffSymbol.thickness = #1.55 va effectivement épaissir les lignes de la portée mais aussi les hampes des notes. Et je ne le veux pas…

Mystère pour moi…

Bonjour,

line-thickness c'est utilisé pour les liaisons (Slur).
thickness est exprimée en multiple de l'épaisseur actuelle des lignes de portées (donc si tu changes StaffSymbol.thickness, tous les objets qui ont une thickness autre que 1 changeront également).

gloria-mensural.ly (3,1 Ko)

sans la fonte beethoven de la version 2.26

Pour retrouver Beethoven, il faut les fichiers beethoven-*.otf (dont beethoven-20.otf) dans un dossier que LilyPond voit, puis décommenter les deux lignes en indiquant ce dossier. Garamond Premier Pro, lui, est une police de texte : s’il manque aussi, seuls les noms et les paroles retombent sur la police par défaut, la musique se grave quand même.

Merci à vous trois d'avoir pris le temps de réagir… mais je dois ajouter "un détail" que j'avais totalement oublié…

La formule

\override StaffSymbol.line-thickness = #X.XX

vient en fait d'un petit aménagement de notre ami Jean ( Épaisseur des lignes de la portée ) qu'il avait publié ici même il y a qqtemps… Et comme l'a souligné Xavier, le "line-thickness" ne s'applique officiellement pas aux lignes de la portée. Mais le code de Jean rempli parfaitement son office, puisqu'il permet de modifier l'épaisseur de ces mêmes lignes sans toucher aux hampes des notes. Et c'est en voulant utiliser une portée mensurale que j'ai constaté que ce code ne fonctionnait pas, pour une raison que j'ignore totalement, étant incompétent en matière de codage. J'ai un fichier "un_tas_de_trucs.ly", dans lequel figure le code donné par Jean, que j'inclus dans chacune de mes partitions Lily, mais que j'omet lorsque je donne un exemple ici.

[…]il arrive que ces vapeurs… Ossabandus, nequeys, nequer, potarinum, quipsa milus. Voilà justement ce qui fait que votre fille est muette.

Merci encore pour vos réactions… et excuses pour avoir oublié le "détail".

Amitiés.

Bernard

Si on donne plus de détails cela aide.
Le code de Jean s'applique au contexte Staff. Il suffit de faire pareil pour MensuralStaff.

\layout {
  \context {
    \MensuralStaff
    \override StaffSymbol.stencil =
#(lambda (grob)
(let ((line-thickness (ly:grob-property grob 'line-thickness)))
(ly:grob-set-property! grob 'thickness line-thickness)
(let ((stencil (ly:staff-symbol::print grob)))
(ly:grob-set-property! grob 'thickness 1)
stencil)))
  }
}