[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: autochange with multiple voices
From: |
David Kastrup |
Subject: |
Re: autochange with multiple voices |
Date: |
Tue, 18 Aug 2015 09:33:26 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) |
Nik Repka <address@hidden> writes:
>> I'm not top posting.
>
> I am attempting to make a scales sheet for piano. I need to use autochange
> simultaneously in two voices.
>
> I am using the syntax from this snippet page:
> http://www.lilypond.org/doc/v2.15/Documentation/snippets-big-page#keyboards-using-autochange-with-more-than-one-voice.
>
> The issue I am having is that autochange only works on the top voice,
> and it drags the lower voice up into the top staff. Here is the code:
You only ever get one voice. The result of \autochange is a complete
<< \context Staff = "up" { }
\context Staff = "down" {}
>>
hierarchy with the code and context changes somewhere inside. Putting a
\new Voice around all that will not achieve anything useful. You wrote:
> << \new Staff = "up"
> <<
> \new Voice {
> \voiceOne
> \autochange
...
Here is how to keep the basic framework but have it resulting in
separate voices:
\version "2.18.2"
scaleRH = \relative c' {c d e f g a b c c b a g f e d c
g a b c d e fis g g fis e d c b a g}
scaleLH = \relative c {c d e f g a b c c b a g f e d c
g a b c d e fis g g fis e d c b a g}
\score {
\new PianoStaff
<< \context Staff = "up"
<<
\autochange
\new Voice {
\voiceOne
\scaleRH
}
\autochange
\new Voice {
\voiceTwo
\scaleLH
}
>>
\context Staff = "down" {
\clef bass
}
>>
}
Note that I'm not using \new Staff ... here in order not to create a
staff competing with the one delivered by \autochange, but rather
\context Staff in order to mesh with what might already be created.
--
David Kastrup