lilypond-user
[Top][All Lists]
Advanced

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

Re: remove first empty staff and ambitus


From: Simon Albrecht
Subject: Re: remove first empty staff and ambitus
Date: Thu, 09 Oct 2014 20:10:06 +0200

Hello Kai,

HTH would sure be one of the most active contributors to this list if he were one, but it's only an abbreviation for 'hope that helps'... I also had to look that one up when I first came across it :-)

Yours, Simon

Am 09-Oct-2014 14:21:57 +0200 schrieb address@hidden:
Dear Thomas,
 
Thnx so much. It works perfectly! I have been fiddling around with the problem for over half a year. Really: Thanks a lot. Also to Knute and HTH!
 
Kai
 
---
address@hidden

Am 5.10.2014 um 15:30 schrieb Thomas Morley <address@hidden>:

2014-10-02 20:50 GMT+02:00 Kai Lautenschläger <address@hidden>:
Dear list,

a few weeks ago I asked about removing the first empty staff in choir music and inserting the ambitus in the n-th system for selected voices. From the answers you gave, I could built the following example, which solved a whole set of problems.

Now, can anyone come up with an idea how to remove the upper staff in the first system? I’m grateful for any hints. Thanks

best regards, Kai

\version "2.19.15"

musicI = \relative { \repeat unfold 5 { c'4^"first voice" b' c, g' } }
musicII = \relative { \repeat unfold 5 { c''4^"second voice" b' c, g' } }
ambitus = \with { \consists "Ambitus_engraver" }
noAmbitusAtEnd = {
 \override Voice.AmbitusNoteHead.break-visibility = ##(#f #f #t)
 \override Voice.AmbitusLine.break-visibility = ##(#f #f #t)
}

\score {
 <<
   \new Staff = "StaffI"
   \new Voice = "VoiceI" { s1*5 \break \new Voice \ambitus \musicI }
   \new Staff = "StaffII"
   \new Voice = "VoiceII" \ambitus { \musicII }
 \layout {
   \context {
     \Staff
     \RemoveEmptyStaves

Delete "Staff" in the following command.
You are adding something to the Staff-context-definition here.
LilyPond will be confused by repeating the Staff-context, although you
are in there already.

     \override Staff.VerticalAxisGroup.remove-first = ##t

I'm surprised the following works, because noAmbitusAtEnd is defined
for Voice-context

     \noAmbitusAtEnd

   }
 }
}


Though the main problem is that the ambitus appears end-of-line at a
line-break here This adds note-heads to this lines. And as default
this will cause this line alive.
Making them invisible via break-visibility is not enough, they're still there.

You could try to use settings for keep-AliveInterfaces as described here:
http://lsr.di.unimi.it/LSR/Item?id=312

Though, no clue if it will work in real life scores:

\version "2.19.13"

keep-AliveInterfaces =
#'(
 rhythmic-grob-interface
 lyric-interface
 stanza-number-interface
 percent-repeat-interface
)

musicI = \relative { \repeat unfold 5 { c'4^"first voice" b' c, g' } }
musicII = \relative { \repeat unfold 5 { c''4_"second voice" b' c, g' } }
ambitus = \with { \consists "Ambitus_engraver" }
noAmbitusAtEnd = {
 \override Staff.AmbitusNoteHead.break-visibility = ##(#f #f #t)
 \override Staff.AmbitusLine.break-visibility = ##(#f #f #t)
}

\score {
 <<
   \new Staff = "StaffI"
   \new Voice = "VoiceI" {
           \set Staff.keepAliveInterfaces = #'()
           s1*5
           \break
           \set Staff.keepAliveInterfaces = \keep-AliveInterfaces
           \new Voice \ambitus
           \musicI
   }
   \new Staff = "StaffII"
   \new Voice = "VoiceII" \ambitus {
           \musicII
           s1*5
   }
 \layout {
   \noAmbitusAtEnd
   \context {
     \Staff
     \RemoveEmptyStaves
     \override VerticalAxisGroup.remove-first = ##t
   }
 }
}



HTH,
 Harm

reply via email to

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