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: Tue, 20 Oct 2020 12:07:33 -0700

Hello Aaron, everyone,

I've been a little puzzled by a LilyPond layout issue. I apologize in advance for the long example, so I have included the input .ly files, and sample output. The files will require some commenting and uncommenting of appropriate sections.

Many thanks in advances for any insights.

Issue
Two-and-more note neume spacing using \syllable function is affected by some interaction of the first syllable, and the final Amen. It seems like LilyPond can squeeze the notes much closer together, as is seen when \syllable is not used at all (but does not result in consistent note spacing).

Work-around
As a work-around, I will simply use manual scaling of the first syllable and final Amen, depending on case.

Observations
Case 1: Without Final Amen
(a) If \syllable is used on the *first* syllable, \mnn { c4( d4) }, the spacing of notes in the neume is wider than expected. The value of the denominator in \syllable does improve spacing, 3 vs. 5, but not as much as expected.

(b) If manual note scaling is used on the *first* syllable, c4*1/16( d4*15/16) or c4*1/8( d4*7/8), the spacing of notes in the neume is much closer together (pleasant). The value of denominator in \syllable, 3 vs 5, does not seem to matter at all.

Case 2: With Final Amen
(a) If manual note scaling is used on the *first* syllable, c4*1/16( d4*15/16) or c4*1/8( d4*7/8), *and* \syllable is used on Amen, only the spacing of notes in the *first* neume is affected.

(b) If manual note scaling is used on the *first* syllable, c4*1/16( d4*15/16) or c4*1/8( d4*7/8), *and* Amen uses manual note scaling, the spacing of the notes in all the neumes are again pleasant.


Many thanks,
mattfong


On Sat, Oct 10, 2020 at 5:46 PM Matthew Fong <oxengen@gmail.com> wrote:

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: Case 1 - Without Final Amen - Manual first syllable scaling, syllable function denominator = 5.pdf
Description: Adobe PDF document

Attachment: Case 1 - Without Final Amen - Use syllable function, denominator = 5.pdf
Description: Adobe PDF document

Attachment: Case 2 - With Final Amen.ly
Description: Binary data

Attachment: Case 2 - With Final Amen - Manual first syllable scaling, Amen using syllable.pdf
Description: Adobe PDF document

Attachment: Case 2 - With Final Amen - Manual first syllable scaling, Amen manual scaling.pdf
Description: Adobe PDF document

Attachment: Case 1 - Without Final Amen.ly
Description: Binary data


reply via email to

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