[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Positioning of a tiny voice
From: |
David Kastrup |
Subject: |
Re: Positioning of a tiny voice |
Date: |
Sat, 08 Feb 2020 00:21:17 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Kieren MacMillan <address@hidden> 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