Kieren MacMillan <kieren_macmil...@sympatico.ca> writes:

> Hi Joram,
>
>> the following works for me:
>> \new Staff <<
>>  { \oneVoice \music } \\ { \voiceThree \shiftOff \upper } >>
>
> Glad you found a solution!
>
>> Why did you use \voices 1,2 in your example?
>
> Bad coding… Here’s a better snippet (including your \oneVoice fix):
>
> %%%
> \version "2.19.83"
>
> upper = \relative {
>  \tiny
>   s4 b''
> }
>
> music = \relative {
>  \key e \minor
>  \time 2/4
>  b'8 <b, e g>16 c' <b, e g b>8 <b e g>16 b'
> }
>
> \new Staff { \voices 1,3 << { \oneVoice \music } \\ { \shiftOff \upper } >> }
> %%%
>
>> And I’d like to understand why it does not work without the \\.
>> I thought that this was just a shorthand for \voiceOne and …Two
>
> No… << >> takes whatever’s inside and combines it into a single voice.

Not really.  << >> takes all items inside and interprets them in
parallel at the _current_ context level.  So with \new Staff << \upper
\music >>, the <<>> occurs at Staff level.  The first note event in
either sequence triggers the creation of a Voice context, but those
sequences trigger their own, separate Voices.

If we had \new Voice << ... >> your description would have been
correct.  Actually, I'd have used something like

\new Voice = "main" { \voices 1,"main" << \upper \\ \music >> }

myself here (that keeps \music in the main voice) but that's not really
sufficient since you'd want to switch off NoteColumn.ignore-collision
also.  So see my separate proposal.

-- 
David Kastrup

Reply via email to