lilypond-user
[Top][All Lists]
Advanced

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

Re: RemoveEmptyStaffContext


From: Nicolas Sceaux
Subject: Re: RemoveEmptyStaffContext
Date: Fri, 13 Feb 2009 20:08:54 +0100

Le 10 févr. 09 à 10:40, Johan Vromans a écrit :

Hi,

I have a score with 3 voices, A, B, and C.
Voices B and C have a lot in common. For about half of the score the B
parts is identical to the C part.

By specifying rests in voice B where it is identical to voice C, and
using \RemoveEmptyStaffContext, LilyPond can eliminate printing of
voice B. That's good. And a space saver.

But, not surprisingly, this makes the generated MIDI less useful. I
split the MIDI into separate parts for the individual voices, and now
voice B will have large gaps where it should sound the same as voice
C. I hope it is clear what I mean.


You can make the second staff removable where the two voices are the same.
For instance:

\version "2.12.2"

startHaraKiri = \set Staff.keepAliveInterfaces = #'()
stopHaraKiri = \unset Staff.keepAliveInterfaces

voiceA = { c'1 d' e' f' g' }
voiceB = { e'1 d' e' f' e' }
%% voice A and voiceB are the same on bar 2, 3 and 4:
haraKiriVoiceB = { s1 \startHaraKiri s1*3 \stopHaraKiri s1 }

\score {
  <<
    \new Staff << \voiceA \repeat unfold 4 { s1 \break } >>
    %% make the second staff removable:
    \new Staff \with { \override VerticalAxisGroup #'remove-empty = ##t
                       \override Beam #'auto-knee-gap = #'()
                       \consists "Hara_kiri_engraver"
                       \remove "Axis_group_engraver" }
    << \voiceB \haraKiriVoiceB >>
  >>
}

nicolas





reply via email to

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