lilypond-user
[Top][All Lists]
Advanced

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

Re: Unterminated Crescendo Issue


From: David Kastrup
Subject: Re: Unterminated Crescendo Issue
Date: Mon, 28 Aug 2017 19:43:32 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux)

Kieren MacMillan <address@hidden> writes:

> Hi Ivan,
>
>> I suspect the error message is because of the way
>> the voices are laid out:  Beat one is written
>> as two lilypond-voices
>
> You need to explicitly extantiate the voices, so that the first voice is the 
> main one:
>
> %%%%  SNIPPET BEGINS
> \version "2.19.64"
> \include "english.ly"
>
> themusic = {
>   \clef "treble_8"
>   <<
>     { \voiceOne <a d'>8[ <bf df'>8]\< }
>     \\
>     \new Voice { \voiceTwo f,4 }
>   >> \oneVoice
>   <ef b  fs'>8
>   <d  bf g'>8\f
>   \times 2/3 { af'16\ff ef'16 c16 }
>   <e, b g'>4.
> }
>
> { \themusic }
> %%%%  SNIPPET ENDS
>
> Hope this helps,
> Kieren.

Unlikely, since it works by accident more than anything else.  To wit,
writing

\new Voice { \themusic }

already breaks it, and so would most other changes.  The problem is that
you kept "\\" around which then creates an implicit \context Voice = "1"
which then only survives into the common part because LilyPond will not
let every voice die but keep the first one around.

Removing \\ would be good, but here is a nicer way (given a recent
enough version of LilyPond) that doesn't and is a bit more transparent
about what it does:

\version "2.19.64"
\include "english.ly"

themusic = {
  \clef "treble_8"
  \voices "main",2
  <<
    { \voiceOne <a d'>8[ <bf df'>8]\< \oneVoice }
    \\
    { f,4 }
  >>
  <ef b  fs'>8
  <d  bf g'>8\f
  \times 2/3 { af'16\ff ef'16 c16 }
  <e, b g'>4.
}

\new Voice = "main" { \themusic }

-- 
David Kastrup

reply via email to

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