lilypond-user
[Top][All Lists]
Advanced

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

Re: Unterminated slurs in multi-voice volta alternative ending


From: Thomas Morley
Subject: Re: Unterminated slurs in multi-voice volta alternative ending
Date: Sun, 5 May 2019 11:23:35 +0200

Am Sa., 4. Mai 2019 um 23:30 Uhr schrieb address@hidden <address@hidden>:
>
> Hello everbody
>
> The following example produces 2 compile warnings (cannot end slur,
> unterminated slur). I'm missing the slur between dis in bar 3 and d in
> bar 4, both in an additional temporary voice context.
>
> It's a snippet from a SATB arrangement with 2 alto voices put in one
> staff. In order to align the text to alto 1 I chose to add temporary
> voice contexts for alto 2 (which is most of the time).
>
> (The only alternative I could imagine is to
> * write alto 2 in a completely separate voice, hiding notes during
> "oneVoice" portions with invisible breaks (s)
> * to combine the alto 1 voice and the alto 2 voice together in one
> (multi-voice alto) staff,
> * add the lyrics to alto 1 (alto 2 lyrics are identical to alto 1 lyrics).

Hi Stephan,

please try to break down the problem to a minimal.
Superfluous code obfuscates the problem and may prevent people to have
a deeper look at your request.

You may have arrived at:
\new Staff { \new Voice b( \new Voice b) }
Which reproduces the mentioned warnings.
Reason: two _new_ Voices are done in sequence, but they are not
related to each other, apart from being printed one after the other.
Thus the Slur does not work from one Voice to another.
You rather want to _continue_ the already started Voice. This is
possible with \context instead of \new
\new Staff { \new Voice b( \context Voice b) }
Though, in polyphonic cases this may fail again.
This can be cured by using named Voices:
\new Staff
  <<
    { \voiceOne d'2( d') }
    { \new Voice = "2" { \voiceTwo } b( \context Voice = "2" b) }
  >>

Albeit, using this approach in your example leads to the code below,
which is hard to read, with all those equal settings needed again and
again:

\version "2.19.83"

global = {
  \key g \major
  \time 4/4
}

altoVoices = \relative c'' {
  \global
  \repeat volta 2 {
    <<
      {
        \voiceOne
        g4 g g g
      }
      \new Voice = "down" {
        \voiceTwo
        s2 d4 d
      }
    >>
  }
  \alternative {
    {
      <<
        {
          \voiceOne
          fis2 r2
        }
        \context Voice = "down" {
          \voiceTwo
          d2 r2
        }
      >>
    }
    {
      <<
        {
          \voiceOne
          g4 r fis2(
        }
        \context Voice = "down" {
          \voiceTwo
          d4 r dis2(
        }
      >>
    }
  }
  <<
    {
      \voiceOne
      g1)
    }
    \context Voice = "down" {
      \voiceTwo
      d1)
    }
  >>
}

altoLyrics = \lyricmode {
  \repeat volta 2 {
    This is a new
  }
  \alternative {
    {
      song.
    }
    {
      song, uuh, __
    }
  }
}

\score {
  \new Staff {
      \altoVoices
  }
  \addlyrics {
    \altoLyrics
  }
}

I'd recommend to code the two Voices completely separate, putting them
together in \score

global = {
  \key g \major
  \time 4/4
}

one = \relative c'' {
  \repeat volta 2 {
    g4 g g g
  }
  \alternative {
    {
      fis2 r2
    }
    {
      g4 r fis2(
    }
  }
  g1)
}

two = \relative c' {
  \repeat volta 2 {
    s2 d4 d
  }
  \alternative {
    {
      d2 r2
    }
    {
      d4 r dis2(
    }
  }
  d1)
}

lyr = \lyricmode {
  \repeat volta 2 {
    This is a new
  }
  \alternative {
    {
      song.
    }
    {
      song, uuh, __
    }
  }
}

\new Staff
  <<
    \new Voice { \global \voiceOne \one }
    \new Voice { \global \voiceTwo \two }
  >>
\addlyrics \lyr

Looks much cleaner and easier to read.
Although one could simply remove the structure:
\repeat ... \alternative ...
in second Voice and Lyrics.
Additionally I'd go for \new Lyrics ... instead of \addlyrics for all
but most simple cases.
addlyrics is a shortcut, sometimes more "cut" than "short" ;)


I'm aware some people don't like entering Voices separately as I recommend.
Then  \parallelMusic may be the way to go:
http://lilypond.org/doc/v2.19/Documentation/notation-big-page#writing-music-in-parallel


>
> BTW: Is there a way to combine/collapse breaks within one staff in
> multi-voice scenarios?

Here I don't understand what you mean.


Cheers,
  Harm



reply via email to

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