Dear LilyPonders,

It appears Aaron is no longer taking emails. I'd appreciate a bit of
insight from you all on what is preventing his code from working with
LyricText.self-alignment-X.


Many thanks,
Matt

On Mon, Oct 14, 2024 at 3:10 PM Matthew Fong <oxen...@gmail.com> wrote:

> Dear Aaron,
>
> I hope you are well -- Resurrecting an old thread here. I have been using
> this function quite often for chant work. I've recently started looking at
> some custom lyrics placement using \tweak LyricText.self-alignment-X
> #<val>, but I've been unable to get it to work in the minimalist example in
> your email. I also tried \override LyricText.extra-offset = #'(<val> . 0),
> but in certain cases spacing between the previous lyrics is too large.
>
> What modifications might be needed to get your code to work with
> LyricText.self-alignment-X?
>
>
> Many thanks,
> Matt
>
> On Mon, Oct 5, 2020 at 11:32 AM Aaron Hill <lilyp...@hillvisions.com>
> wrote:
>
>> On 2020-10-05 10:35 am, Matthew Fong wrote:
>> > Hello Aaron,
>> >
>> > Thank you for your help. That does make sense to me and works out quite
>> > well -- I don't yet have a grasp how various commands and settings are
>> > actually working in LilyPond. I found another example in the LilyPond
>> > documentation that shows the internal representation. Where do I find
>> > this
>> > for input I want to inspect further?
>> >
>> http://lilypond.org/doc/v2.20/Documentation/extending/doubling-a-note-with-slurs-_0028example_0029
>> >
>> > I tested your syllable function with tweaks (like changing a notehead
>> > to a
>> > quilisma), and expressive marks like a tenuto. It appears the current
>> > code
>> > doesn't handle them (this is getting into advanced territory much more
>> > quickly than I expected).
>>
>> Argh... I feared you might want to go in that direction.  Simple runs of
>> pitches are rarely enough.  :/
>>
>> Here's a more generalized approach that modifies durations, preserving
>> other events and properties:
>>
>> %%%%
>> \version "2.20.0"
>>
>> syllable =
>> #(define-music-function
>>    (notes)
>>    (ly:music?)
>>    ;; Adjust this number to support longer runs of notes.
>>    (define denominator 5)
>>    (let ((dur (ly:make-duration 2 0 1 denominator))
>>          (count 0)
>>          (last '()))
>>      (for-some-music
>>        (lambda (m)
>>          (if (music-is-of-type? m 'rhythmic-event)
>>            (begin
>>              (set! count (1+ count))
>>              (set! last m)
>>              (ly:music-set-property! m 'duration dur)
>>              #t)
>>            #f))
>>        notes)
>>      (if (ly:music? last)
>>        (ly:music-set-property! last
>>          'duration
>>          (ly:make-duration 2 0
>>            (- denominator (1- count))
>>            denominator)))
>>      notes))
>>
>> redNotes = \override NoteHead.color = #red
>> { \time 1/4 \hide Staff.BarLine \omit Stem
>>    \syllable { a'\( \melisma c'' b'\tenuto \melismaEnd }
>>    \syllable { \redNotes a' b'\) \undo \redNotes }
>>    \syllable { \breathe \[ a' c''\accent a'_( b') \] }
>>    \syllable { b'\espressivo } }
>> \addlyrics {
>>    lor -- em _ i -- _ _ psum
>> }
>> %%%%
>>
>> There is much more flexibility at the cost of no longer automatically
>> adding \melisma/\melisaEnd nor Slurs.  In fact, the example shows a
>> PhrasingSlur starting in one "syllable" ending in the following.
>>
>> NOTE: This function does not handle chords properly.
>>
>>
>> -- Aaron Hill
>>
>

Reply via email to