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 >> >