(Adding mailing list back to thread...)
On 2020-10-05 9:07 am, Matthew Fong wrote:
I'm dissecting your syllable code and have a question for you: How do I
create a similar list using a slur instead of a melisma? I found this
documentation, but not sure how to use it
http://lilypond.org/doc/v2.19/Documentation/internals/slurevent
SlurEvents end up as articulations of a NoteEvent, whereas the \melisma
command is essentially shorthand for \set melismaBusy = ##t. See below
for how both can be handled.
I understand that using a melisma is quite handy, but for clarity for
the
singer, adding slurs is another strong visual indicator of the
grouping.
With that in mind, the function I provided can be enhanced to support
both unslurred and slurred melismata:
%%%%
\version "2.20.0"
syllable =
#(define-music-function
(style pitches)
((symbol? #f) ly:music?)
(let* ((pitches (music-pitches pitches))
(count (length pitches)))
(make-sequential-music
(append-map
(lambda (index pitch)
(let* ((denom 5) ;; NOTE: Adjust this as needed. <<==
(initial? (= index 1))
(final? (= index count))
(numer (if final? (- denom (1- count)) 1))
(music '()))
(set! music
(list (make-music 'NoteEvent
'pitch pitch
'duration (ly:make-duration 2 0 numer denom))))
(if (or initial? final?)
(if (eq? style 'slurred)
(ly:music-set-property! (car music) 'articulations
(list (make-span-event 'SlurEvent
(if initial? START STOP))))
(set! music (append music (list
(if initial? melisma melismaEnd))))))
music))
(iota count 1)
pitches))))
{ \time 1/4 \hide Staff.BarLine \omit Stem
\syllable { a' c'' b' }
\syllable { a' b' }
\syllable slurred { a' c'' a' b' }
\syllable { b' } }
\addlyrics { lor -- em i -- psum }
%%%%
Note that if you wanted the default behavior to be slurred, change the
type predicate from (symbol? #f) to (symbol? 'slurred). Then you can
simply specify any other symbol (such as "unslurred") to opt for the
original \melisma/\melismaEnd approach.
I could see LigatureBrackets as another option, although their handling
is even more peculiar.
-- Aaron Hill