lilypond-devel
[Top][All Lists]
Advanced

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

Re: \RemoveEmptyStaffContext question...


From: Nicolas Sceaux
Subject: Re: \RemoveEmptyStaffContext question...
Date: Thu, 23 Apr 2009 12:13:59 +0200

Le 23 avr. 09 à 10:18, ArnoWaschk a écrit :

is there a way to tell lilypond in a bigger score to keep - while generally using \removeemptystaffcontext - certain staffs unhidden, no matter whether
they actualy contain music or not?

You can mark a specific staff to be removable with:

\new Staff \with {
  \override VerticalAxisGroup #'remove-empty = ##t
  \override VerticalAxisGroup #'remove-first = ##t % or ##f
  \override Beam #'auto-knee-gap = #'()
  \consists "Hara_kiri_engraver"
  \remove "Axis_group_engraver"
} <music>

(Don't use \removeEmptyStaffContext in that case)

BTW, I find it useful to make normal rests removable too,
for instance when there is a partial bar at the end
of the piece: R1*10 r2 \bar "|."

#(let* ((rest-def (assoc 'Rest all-grob-descriptions))
        (meta-def (assoc 'meta (cdr rest-def)))
        (interfaces-def (assoc 'interfaces (cdr meta-def)))
        (interfaces (filter (lambda (interface)
(not (eqv? interface 'rhythmic-grob- interface)))
                            (cdr interfaces-def))))
  (set-cdr! interfaces-def interfaces))

is there a way to tell lilypond to show staffs - while generally using
\removeemptystaffcontext - given they contain no notes, but rest with text
markups (e. g. R1^\markup{"bla"}) ?


A possible starting point:

\version "2.12.2"

#(let* ((rest-def (assoc 'MultiMeasureRestText all-grob-descriptions))
        (meta-def (assoc 'meta (cdr rest-def)))
        (interfaces-def (assoc 'interfaces (cdr meta-def)))
        (interfaces (cdr interfaces-def)))
(set-cdr! interfaces-def (cons 'multi-measure-text-interface interfaces)))

<<
  \repeat unfold 7 { c'1 \break }
  \new Staff \with {
    \override VerticalAxisGroup #'remove-empty = ##t
    \override VerticalAxisGroup #'remove-first = ##t
    \override Beam #'auto-knee-gap = #'()
    \consists "Hara_kiri_engraver"
    \remove "Axis_group_engraver"
    keepAliveInterfaces = #'(
    rhythmic-grob-interface
    lyric-interface
    percent-repeat-item-interface
    percent-repeat-interface
    stanza-number-interface
    multi-measure-text-interface)
  } {
    R1*3 R1^"Blah" R1*3
  }
>>

It almost works... (the immediate surrounding multi measure rests are not
removed.)

nicolas





reply via email to

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