lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Re: mensural ligature


From: juergen . gruen
Subject: RE: Re: mensural ligature
Date: Fri, 14 Apr 2023 08:00:51 GMT
User-agent: freenet-api2


> I try to set this ligature for an incipit:
>
>
> using
>
> ```
> \version "2.24.0"
>
> {
> \override NoteHead.style = #'mensural
> \[ a'1 c''
> \override NoteHead.ligature-flexa = ##f
> a'\breve \]
> }
>
> \layout {
> \context {
> \Voice
> \remove "Ligature_bracket_engraver"
> \consists "Mensural_ligature_engraver"
> }
> }
> ```
>
> results in a flexa ligature for the end c-a instead of quadratic
> (which is the default according to the manual) - but even with
> \override NoteHead.ligature-flexa = ##f it doesn't change.
>
> How can I achieve this?

Pál, can you please comment? It looks as if support for this ligature
form is missing...


Werner




Examples :


%SSL: no flexa  
\[ a'1 \melisma  c''  a'\longa  \melismaEnd \]  


%SSB: no flexa because of ascending brevis
\[ a'1 \melisma  c''  d''\breve  \melismaEnd \]


%SSB: flexa because of descending brevis
 \[ a'1 \melisma   c''  a'\breve  \melismaEnd \]  


This 'rule' for the last example  is hard-coded in 
mensural-ligature-engraver.cc (?)
//
// 4. end, descendens
      else if (i == s - 1 && pitch < prev_pitch)
        {
          // brevis; previous note must be turned into flexa
          if (duration_log == -1)
            {
              if (prev_brevis_shape)
                {
                  make_flexa = true;
                  general_case = false;
                }
              else
                {
                  nr->warning (_ ("invalid ligatura ending:\n"
                                  "when the last note is a descending brevis,\n"
                                  "the penultimate note must be another one,\n"
                                  "or the ligatura must be LB or SSB"));
                  prim = MLP_NONE;
                  break;
                }
            }
//
I have zero knowledge of the underlying music theory here. Just doing this for 
learning purposes ;-)
But if there is a template, one should be able to reproduce this with lilypond, 
I think.


Here is a clumsy workaround (again struggling with the alignment...)


%%%%%%%%%%%%
\version "2.24.0"


% hide flexa and print square noteheads
sqr =
#(define-music-function (x-trans music) (number? ly:music?)
   (let*(
         ; single note expected
         (pitch (car (music-pitches music)))        
         ; calculate y-position in staff
         (steps (ly:pitch-steps pitch))
         (y-off (- (* 1/2 steps) 3))
         ; easier solution to align properly?
         (trans (cons x-trans 0.0)))   
     #{
       \once \override TextScript.Y-offset = #y-off
       \once \override TextScript.outside-staff-priority = ##f
       \once \hideNotes
       $music
       -\markup { \translate $trans \halign #LEFT \musicglyph 
"noteheads.srM1mensural" } #} ))
{
  \override NoteHead.style = #'mensural
  \[ a'1 \melisma  \sqr #-0.130 c'' \sqr #-0.195 a'\breve  \melismaEnd \]
}
\layout {
  \context {
    \Voice
    \remove "Ligature_bracket_engraver"
   \consists "Mensural_ligature_engraver"
  }
}
%%%%%%%%%%%%


Hope that makes any sense, Juergen.










reply via email to

[Prev in Thread] Current Thread [Next in Thread]