Gianmaria Lari <gianmarial...@gmail.com> writes: > On Mon, 21 Jan 2019 at 14:57, Gianmaria Lari <gianmarial...@gmail.com> > wrote: > >> >> >> On Mon, 21 Jan 2019 at 13:02, Valentin Villenave <valen...@villenave.net> >> wrote: >> >>> On 1/21/19, Andrew Bernard <andrew.bern...@gmail.com> wrote: >>> > Not sure how to do it with PianoStaff. >>> >>> That’s because of the Keep_alive_together engraver. Your layout block >>> should look like: >>> >>> \layout { >>> \context { >>> \PianoStaff >>> \RemoveEmptyStaves >>> \remove "Keep_alive_together_engraver" >>> \override VerticalAxisGroup.remove-first = ##t >>> } >>> } >>> >>> That being said, I have never seen a piano part where only one of the >>> hands is printed when the other doesn’t play. (Vibraphone and marimba >>> parts, maybe.) That’s why we added this feature in the first place. >>> >> [...] > > Valentin, your solution works well if the staff is made of rests (r) or > skips (s). Is it possible to print the staff if it contains rests but avoid > to print it if it contains skip?
[NR:] A.20 Context modification identifiers ===================================== The following commands are defined for use as context modifications within a ‘\layout’ or ‘\with’ block. ‘RemoveAllEmptyStaves’ Remove staves which are considered to be empty according to the list of interfaces set by ‘keepAliveInterfaces’, including those in the first system. • Sets grob property ‘remove-empty’ in ‘*note (lilypond-internals)VerticalAxisGroup::’ to ‘#t’. • Sets grob property ‘remove-first’ in ‘*note (lilypond-internals)VerticalAxisGroup::’ to ‘#t’. ‘RemoveEmptyStaves’ Remove staves which are considered to be empty according to the list of interfaces set by ‘keepAliveInterfaces’. • Sets grob property ‘remove-empty’ in ‘*note (lilypond-internals)VerticalAxisGroup::’ to ‘#t’. [IR:] 2.2.5 Axis_group_engraver ------------------------- Group all objects created in this context in a ‘VerticalAxisGroup’ spanner. Properties (read) ‘currentCommandColumn’ (graphical (layout) object) Grob that is X-parent to all current breakable (clef, key signature, etc.) items. ‘hasAxisGroup’ (boolean) True if the current context is contained in an axis group. ‘keepAliveInterfaces’ (list) A list of symbols, signifying grob interfaces that are worth keeping a staff with ‘remove-empty’ set around for. Properties (write) ‘hasAxisGroup’ (boolean) True if the current context is contained in an axis group. This engraver creates the following layout object(s): *note VerticalAxisGroup::. ‘Axis_group_engraver’ is part of the following context(s): *note ChordNames::, *note DrumStaff::, *note Dynamics::, *note FiguredBass::, *note FretBoards::, *note GregorianTranscriptionStaff::, *note KievanStaff::, *note Lyrics::, *note MensuralStaff::, *note NoteNames::, *note OneStaff::, *note PetrucciStaff::, *note RhythmicStaff::, *note Staff::, *note TabStaff:: and *note VaticanaStaff::. [ly/engraver-init.ly in definition of Score] keepAliveInterfaces = #'( bass-figure-interface chord-name-interface cluster-beacon-interface fret-diagram-interface lyric-syllable-interface note-head-interface tab-note-head-interface lyric-interface percent-repeat-item-interface percent-repeat-interface ;; need this, as stanza numbers are items, and appear only once. stanza-number-interface ) So probably you likely want to add the rest-interface to that list of interfaces, probably in Staff context. -- David Kastrup _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user