lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Ties over repeat boundaries


From: address@hidden
Subject: Re: Ties over repeat boundaries
Date: Sun, 5 May 2019 15:53:44 +0200
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1

Thomas

Thanks for your in-depth explanations. They help me understanding
lilypond more and more.

Your tips lead me to an absolutely satisfying result:
* Use \repeatTie and \laissezVibrer - clean code, comprehensible score
* Lyrics without \repeat / \alternative (in fact: not relevant in the
context of rehearsal midi output with \unfoldReapeats)
* \tweak X-offset #-0.3 \markup \null  __

Regards
Stephan

Am 05.05.2019 um 12:24 schrieb Thomas Morley:
> Am Sa., 4. Mai 2019 um 23:39 Uhr schrieb address@hidden <address@hidden>:
>>
>> Hello again
>>
>> I'm having problems with ties over the repeat bar lines when adding lyrics.
>>
>> First let's look at the melody alone - without lyrics:
>> The tie over the repeat bar line between the two volta spanners is wrong.
>
> Yep.
> It's a known limitation, in
> http://lilypond.org/doc/v2.19/Documentation/notation-big-page#repeats
> look for
> "Ties may be added to a second ending:"
>
> LilyPond can't tie notes in alternative endings back to the start of the 
> repeat.
>
> This is due to how LilyPond processes repeat-alternative.
> See this minimal:
>
> \displayMusic \repeat volta 2 { b1 } \alternative { b~ bes }
>
> You will get in terminal:
>
> (make-music
>   'VoltaRepeatedMusic
>   'elements
>   (list (make-music
>           'NoteEvent
>           'articulations
>           (list (make-music (quote TieEvent)))
>           'duration
>           (ly:make-duration 0)
>           'pitch
>           (ly:make-pitch -1 6))
>         (make-music
>           'NoteEvent
>           'pitch
>           (ly:make-pitch -1 6 -1/2)
>           'duration
>           (ly:make-duration 0)))
>   'repeat-count
>   2
>   'element
>   (make-music
>     'SequentialMusic
>     'elements
>     (list (make-music
>             'NoteEvent
>             'duration
>             (ly:make-duration 0)
>             'pitch
>             (ly:make-pitch -1 6)))))
>
> Disregarding all the subtleties and simplifying in pseudo-code this reads:
> (
>   ;; alternative endings of repeat
>   (list note-alt1-with-tie note-alt2)
>   ;; repeat starts with
>   (list note-1))
>
> LilyPond always reads from left to right, so above Tie will try to
> connect note-alt1-with-tie and note-alt2.
> This is never what we would want and fails frequently ofcourse.
>
> This limitation was discussed already, but is currently not solved.
> Which is a pity because
> \unfoldRepeats \repeat volta 2 { b1 } \alternative { b~ b }
> works fine. And the workarounds will disturb it.
>
> Part of the workaround is mentioned in the linked section of the NR.
> For the other parts see below.
>
>> When we add the lyrics, somehow unpredictable things happen:
>> * repeat barlines and volta spanners get messed up
>
> Here
> http://lists.gnu.org/archive/html/lilypond-user/2019-05/msg00062.html
> I wrote \repeat - \alternative could be removed from lyrics.
> I'd better written they _should_ be removed.
>
>> * the first g in the 2nd volta alternative (bar 4) is missing the
>> melisma line from "eight___"
>
> A consequence of the Tie-problem.
>
>>
>> Questions:
>> * How should I fix the tie(s)?
>
> Current workaround is to use \repeatTie and \laissezVibrer
>
>> * How should I best align the lyrics?
>
> Remove \repeat \alternative from lyrics.
> To get the LyricExtender in second alternative, enter something
> invisible and move it until it looks fine, see below.
>
>> * Is the tie problem similar to the glissando challenges in
>> http://lilypond.org/doc/v2.19/Documentation/notation/expressive-marks-as-lines?
>> 8-#
>
> Yep, it's the same problem.
> The proposed glissando-workaround would work with Ties as well.
> Though, would make for unneeded complex code. \repeatTie and
> \laissezVibrer is simpler.
> If it does not work sufficiently you may resort to the glissando-workaround.
>
>>
>> I still hope for a "standard default solution" - without too much
>> manual/ugly tweaking ;-)
>
> Here my proposal:
>
> global = {
>   \key c \major
>   \time 4/4
> }
>
> \header {
>   title = "Ties over repeat boundaries"
> }
>
> myMelody = \relative c' {
>   \global
>   c4 d e f8 g8~ |
>   \repeat volta 2 {
>     g4 g g c8 g~
>   }
>   \alternative {
>     {
>       g4  r r d8 g\laissezVibrer |
>     }
>     {
>       g4\repeatTie r c4\accent r4 |
>     }
>   }
>   \bar "|."
> }
>
>
> myLyrics = \lyricmode {
>   One, two, three, four, five, __
>   six, sev -- en, eight __ a -- five
>   \tweak X-offset #-0.3 \markup \null  __
>   yeah!
> }
>
> \score {
>   <<
>   \new Staff \new Voice = "mel" \myMelody
>   \new Lyrics \lyricsto "mel" \myLyrics
>   >>
> }
>
>
> HTH,
>   Harm
>



reply via email to

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