That works perfectly, thanks! Follow up question, is there a way to change
the cross-over point during the music, or do I need to do something like

\CrossStaff = {
    \autoChange c' { *music* }
    \autoChange f' { *music* }
}

On Fri, Mar 17, 2023 at 11:45 AM Jean Abou Samra <j...@abou-samra.fr> wrote:

> Le vendredi 17 mars 2023 à 11:35 -0700, Alexandre Loomis a écrit :
>
> Hi, I'm running into an issue using \autoChange. I'd like CrossStaff to
> share the lower staff (and upper with another voice, but that doesn't seem
> to cause any issues), but it's creating its own.
>
> \version "2.24.0"
>
> CrossStaff = \autoChange f {
>   \relative c' {
>     c2 c,
>   }
> }
>
> VoiceTwo = \relative { \clef "bass" c,1 }
>
> \new PianoStaff <<
>   \new Staff = "up" {
>     \new Voice \CrossStaff
>   }
>   \new Staff = "down" {
>     \new Voice \VoiceTwo
>   }
>
> Try
>
> \version "2.24.1"
>
> CrossStaff = \autoChange f {
>   \relative c' {
>     c2 c,
>   }
> }
>
> VoiceTwo = \relative { \clef "bass" c,1 }
>
> \new PianoStaff <<
>   \new Staff = "up" {
>     \new Voice \CrossStaff
>   }
>   \context Staff = "down" {
>     \new Voice \VoiceTwo
>   }
> >>
>
> As you can see in the examples in the documentation, \autoChange is
> designed to create two staves at once if not already created. In this case,
> when \autoChange is seen by LilyPond at the start of the music, there is
> no "down" staff yet, so it's created, and then you create another one with
> \new. By using \context instead of new (see Creating and referencing
> contexts
> <https://lilypond.org/doc/v2.24/Documentation/notation/creating-and-referencing-contexts>),
> you insert your \VoiceTwo inside the same context rather than creating a
> new one.
>

Reply via email to