|
From: | Matthew Fong |
Subject: | Re: Setting Gregorian chant: Note spacing for two note neumes seem to depend on length of lyric text |
Date: | Tue, 20 Oct 2020 12:07:33 -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,mattfongOn 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
Case 1 - Without Final Amen - Manual first syllable scaling, syllable function denominator = 5.pdf
Description: Adobe PDF document
Case 1 - Without Final Amen - Use syllable function, denominator = 5.pdf
Description: Adobe PDF document
Case 2 - With Final Amen.ly
Description: Binary data
Case 2 - With Final Amen - Manual first syllable scaling, Amen using syllable.pdf
Description: Adobe PDF document
Case 2 - With Final Amen - Manual first syllable scaling, Amen manual scaling.pdf
Description: Adobe PDF document
Case 1 - Without Final Amen.ly
Description: Binary data
[Prev in Thread] | Current Thread | [Next in Thread] |