On Fri 22 Jul 2022 at 12:52:17 (+0200), mancunius wrote:
> On 22 Jul 2022, at 10:41, Jean Abou Samra <j...@abou-samra.fr> wrote:
> > Le 22/07/2022 à 10:27, Simon Albrecht a écrit :
> >> On 20/07/2022 12:34, mancunius wrote:
> >>> Hello. In the following example I want the undertie to be placed between 
> >>> the 2 “O sacrum convivium” lines of lyrics, to indicate that no breath 
> >>> should be taken by the singers - as per the normal choral convention. 
> >>> (cf. the commented-out \breathe command in the music itself.) As it 
> >>> currently compiles, the undertie is placed beneath the word “O” of the 
> >>> second phrase.
> >> 
> >> This is because the markup command \undertie requires an argument and so 
> >> it is applied to the following syllable.
> >> 
> >> What I would suggest is a dotted or dashed slur between the notes like 
> >> this:
> >> 
> >> { \once\dashedSlur cs( d) }

> > Well, as David W. mentioned, there is predefined syntax with "~" to create 
> > a tie. Its length is fixed, however.
> > 
> > { c'1 1 }
> > \addlyrics { aah~ aah }
> > 
> > Do you think it's conventional to make the tie extend to the next syllable?
> 
> Thank you for the replies. The lyric tie doesn’t need to extend to the next 
> syllable, but it looks odd when appended to the left syllable at the same 
> time as displacing it; it looks like an error, 

Sure, I pointed that out; and as I implied, for precision you need to
make adjustments in X position. It just depends on who's the target
of your engraving.

> especially if the left syllable were to stretch across more than one note as 
> in the revised example below.

Well that actually solves the alignment problem, because it forces
left-alignment of the lyric.

> The purpose of a dotted slur between the notes is ambiguous, so I’d rather 
> not take that route.

… and when the piece is strophic, it doesn't actually specify which
verses carry over, particularly if the engraver wishes to preserve,
but contradict, the text's punctuation (as here).

> My preference is to have a lyric tie equally spaced between the two 
> syllables: it looks elegant and its purpose is clear.

I suppose a scheme expert might be able to hack that out of a fake
lyric hyphen rendered as a slur.

(Technically, these are lyric slurs, of course.)

But my preference is attached, because that's the syllable affected.
That said, if there's a new line involved, I prefix the second
syllable with a slur too, as a reminder when the eye has moved ahead.
Again, adjustments ….

Anyway, when following a tied note, perhaps pick a method that suits.
There's a snippet attached (the ! example is just to document that the
padding argument is optional).

Cheers,
David.
\language "english"
\include "extender.ily"
extendSlur =  #(extend "‿" 0.2)
extendBang =  #(extend "!")

global = { \key d \major }

soprano=\relative c'{
        r4 cs cs a 
        d e cs fs ~
        fs %\breathe 
        b, fs' fs8 fs
        a4. a8 g4 fs
}

sopranotext=\lyricmode{
O sa -- crum con -- ví -- vi -- um, \extendSlur
O sa -- crum con -- ví -- vi -- um, con
}

\score {
        \new Staff <<
        \global
        \new Voice="v1"
                {
                \clef "treble"
                \soprano
                }
        \new Lyrics \lyricsto "v1" {\sopranotext}
        >>
}

sopranotext=\lyricmode{
O sa -- crum con -- ví -- vi -- "um,__‿"
O sa -- crum con -- ví -- vi -- um, con
}

\score {
        \new Staff <<
        \global
        \new Voice="v1"
                {
                \clef "treble"
                \soprano
                }
        \new Lyrics \lyricsto "v1" {\sopranotext}
        >>
}

sopranotext=\lyricmode{
O sa -- crum con -- ví -- vi -- "um,__ ~"
O sa -- crum con -- ví -- vi -- um, con
}

\score {
        \new Staff <<
        \global
        \new Voice="v1"
                {
                \clef "treble"
                \soprano
                }
        \new Lyrics \lyricsto "v1" {\sopranotext}
        >>
}

sopranotext=\lyricmode{
O sa -- crum con -- ví -- vi -- "um, ~"
O sa -- crum con -- ví -- vi -- um, con
}

\score {
        \new Staff <<
        \global
        \new Voice="v1"
                {
                \clef "treble"
                \soprano
                }
        \new Lyrics \lyricsto "v1" {\sopranotext}
        >>
}

sopranotext=\lyricmode{
O sa -- crum con -- ví -- vi -- um, \extendBang
O sa -- crum con -- ví -- vi -- um, con
}

\score {
        \new Staff <<
        \global
        \new Voice="v1"
                {
                \clef "treble"
                \soprano
                }
        \new Lyrics \lyricsto "v1" {\sopranotext}
        >>
}

sopranotext=\lyricmode{
O sa -- crum con -- ví -- vi -- um,~ __
O sa -- crum con -- ví -- vi -- um, con
}

\score {
        \new Staff <<
        \global
        \new Voice="v1"
                {
                \clef "treble"
                \soprano
                }
        \new Lyrics \lyricsto "v1" {\sopranotext}
        >>
}
\version "2.22.1" % 2016-10-18
%% Puts punctuation etc onto the end of a lyric extender.

%% http://lsr.di.unimi.it/LSR/Item?id=643
%% see also 
http://lilypond.org/doc/v2.18/Documentation/notation/common-notation-for-vocal-music

%LSR contributed by Neil Puttock

#(define (extend text . padding)
  (let ((extender (make-music 'ExtenderEvent))
        ;; optional padding
        (padding (if (pair? padding)
                  (car padding)
                  0)))

   (set! (ly:music-property extender 'tweaks)
    (acons 'stencil (lambda (grob)
                     (let* ((orig (ly:grob-original grob))
                            (siblings (ly:spanner-broken-into orig)))

                      (if (or (null? siblings)
                           (and (>= (length siblings) 2)
                            (eq? (car (last-pair siblings))
                             grob)))
                       (ly:stencil-combine-at-edge
                        (ly:lyric-extender::print grob)
                        X RIGHT
                        (grob-interpret-markup grob text)
                        padding)
                       (ly:lyric-extender::print grob))))
     (ly:music-property extender 'tweaks)))
   extender))

Attachment: extslur.pdf
Description: Adobe PDF document

Reply via email to