lilypond-user
[Top][All Lists]
Advanced

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

Re: Cross staff Chords


From: Xavier Scheuer
Subject: Re: Cross staff Chords
Date: Thu, 30 Dec 2010 22:59:15 +0100

On 30 December 2010 22:30, Xavier Scheuer <address@hidden> wrote:
>
> Hi!
>
> That's because you use a  << { ... } \\ { ... } >>  construct.
> Voices within that construct are different from voices outside this
> construct and then your  \autoBeamOff  does not apply to your "left UP"
> voice.
>
> 1. You could replace your  \autoBeamOff  by
>    \set Staff.autoBeaming = ##f : this would apply the "non automatic
>   beaming" to the  Staff  context.

The message was sent unexpectedly.
I had also a couple of general suggestions.

1. I'd recommend to use  "Explicitly instantiated voices"  instead of
   the  << { ... } \\ { ... } >>  construct.
   See LM 3.2.2 Explicitly instantiating voices
http://lilypond.org/doc/v2.13/Documentation/learning/explicitly-instantiating-voices.html
   also NR 1.5.2
http://lilypond.org/doc/v2.13/Documentation/notation/multiple-voices.html

2. Why do you use  \once  within your  "xstaff"  definition?
   I would rather use something like  "crossStaffStemStart"
   (containing the  \override  without the  \once ) to use where your
   cross-staff passage begins
   and  "crossStaffStemStop"  containing  \revert  where it should end.
   So you do not need to add  \xstaff  before _each_  cross-staff note!
   (see code below).

3. I would not use  \autoBeamOff  for the whole music of the Staff!
   It requires you to write manual beams all along (it is tedious,
   isn't it?).  I would make it part of the  "crossStaffStemStart"
   definition.

Here is my suggestions applied to your code:

crossStaffStemStart = {
  \autoBeamOff
  \override Stem #'cross-staff = ##t
  \override Stem #'length = #12
  \override Stem #'flag-style = #'no-flag
}
crossStaffStemStop = {
  \autoBeamOn
  \revert Stem #'cross-staff
  \revert Stem #'length
  \revert Stem #'flag-style
}

\new PianoStaff <<
  \new Staff= "right" {
    \relative c' {
       \key f \minor
       \voiceOne
       s2 \change Staff = "left" c8( d \change Staff = "right"  e f)
     }
   }
  \new Staff= "left" {
    \clef bass
    \key f \minor
    <<
      \new Voice = "leftUp" {
        \relative c {
          \voiceOne
          <e g c>4.( <d f b>8)
          \crossStaffStemStart
          <es g >8 <f as >8
          <g bes >8 <as c >8
          \crossStaffStemStop
        }
      }
      \new Voice = "leftDown" {
        \relative c, {
          \voiceTwo
          \repeat tremolo 8 { c32 c' }
          \repeat tremolo 8 { c,32 c' }
        }
      }
    >>
  }
>>


Cheers,
Xavier

-- 
Xavier Scheuer <address@hidden>



reply via email to

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