lilypond-user
[Top][All Lists]
Advanced

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

Re: Setting Gregorian chant: Note spacing for two note neumes seem to de


From: Matthew Fong
Subject: Re: Setting Gregorian chant: Note spacing for two note neumes seem to depend on length of lyric text
Date: Sat, 10 Oct 2020 17:46:35 -0700

Hello Aaron,


I'm playing around with your lyric spacing function, enforceMinimumLyricWidth, and realized something a little more dynamic is needed.


LilyPond centers syllables on single notes (but configurable). With a melisma, they are left-aligned on the first note (alignment configurable; also with the option of using a lyric extender to carry the syllable through the melisma).


I'm trying to understand how to obtain the width of the current melisma, and apply the following rules to lyric positioning. I've included an example of what I mean

lyric width >= melisma width: Center lyrics with respect to melisma

lyric width < melisma width: Left justify under first neume


I found an example in the LSR adjusting the lyrics, ignoring punctuation.

http://lsr.di.unimi.it/LSR/Item?id=888


But I can't seem to find sample code of determining the width of the melisma the current lyrics will be set to.


Any insights would be most helpful.



On Thu, Oct 8, 2020 at 7:53 PM Matthew Fong <oxengen@gmail.com> wrote:
Hello Aaron,

Thanks for pointing out the many ways LilyPond can accomplish something. Going to play around with those options!


Many thanks,
mattfong

On Wed, Oct 7, 2020 at 6:11 PM Aaron Hill <lilypond@hillvisions.com> wrote:
On 2020-10-07 11:03 am, Matthew Fong wrote:
> I suppose I could also use markup on the note if it's
> a graphical articulation?

I can think of four ways to decorate a note:

%%%%
\version "2.20.0"

decoMarkup = \markup \circle \normalsize \normal-text !
decoDynamic = #(make-dynamic-script decoMarkup)
decoFingering = \finger \decoMarkup
decoScript = \tweak stencil #ly:text-interface::print
              \tweak text \decoMarkup
              \staccato

{
   \override TextScript.color = #'(0.9 0.4 0.3)
   \override Script.color = #'(0.9 0.8 0.3)
   \override Fingering.color = #'(0.3 0.8 0.4)
   \override DynamicText.color = #'(0.3 0.6 0.9)
   \set fingeringOrientations = #'(left)
   <b' \decoFingering>4 \decoScript ^\decoMarkup \decoDynamic
}
%%%%

TextScript is the most straightforward, although it may require tweaking
to get its positioning as desired.  DynamicText aligns differently by
default, so it might be better candidate; however, it assumes the
\dynamic font style which would require use of \normal-text to
counteract.

Fingering and Script are both interesting because they naturally can
exist within the staff lines while still avoiding collisions with other
elements.  Fingering both assumes the \number font style and a smaller
font size; so you may need to use both \normal-text and \normalsize, as
demonstrated in the example above.

Customizing Script involves hijacking an existing articulation, so it is
the least "clean" of the options.  Note that each articulation has its
own preferred spacing and alignment, so you may need to play around a
bit to find one that matches your needs.


-- Aaron Hill

Attachment: Fr Weber alignment.jpeg
Description: JPEG image


reply via email to

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