[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: print bass staff not always
From: |
David Kastrup |
Subject: |
Re: print bass staff not always |
Date: |
Wed, 23 Jan 2019 14:52:59 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
Gianmaria Lari <address@hidden> writes:
> On Mon, 21 Jan 2019 at 22:33, David Kastrup <address@hidden> wrote:
>
>> Gianmaria Lari <address@hidden> writes:
>>
>> > On Mon, 21 Jan 2019 at 14:57, Gianmaria Lari <address@hidden>
>> > wrote:
>> >
>> >>
>> >>
>> >> On Mon, 21 Jan 2019 at 13:02, Valentin Villenave <
>> address@hidden>
>> >> wrote:
>> >>
>> >>> On 1/21/19, Andrew Bernard <address@hidden> 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
>>
>
> I post here another solution that's not clean as David solution. It's a
> simple escamotage.
>
> To make lilypond print anyway a staff only containing rests I put in the
> staff a zero length note and hide it like this:
>
>
> \hideNotes g4*0 R1*4 \unHideNotes \break
That does not look simpler than
\new Staff \with {
keepAliveInterfaces = #'(
rest-interface
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
)
} ...
--
David Kastrup
- Re: print bass staff not always, (continued)
- Re: print bass staff not always, Andrew Bernard, 2019/01/21
- Re: print bass staff not always, Gianmaria Lari, 2019/01/21
- Re: print bass staff not always, Gianmaria Lari, 2019/01/21
- Re: print bass staff not always, David Kastrup, 2019/01/21
- Re: print bass staff not always, Gianmaria Lari, 2019/01/22
- Re: print bass staff not always, Andrew Bernard, 2019/01/22
- Re: print bass staff not always, Gianmaria Lari, 2019/01/22
- Re: print bass staff not always, Andrew Bernard, 2019/01/22
- Re: print bass staff not always, Simon Albrecht, 2019/01/23
- Re: print bass staff not always, Gianmaria Lari, 2019/01/24
- Re: print bass staff not always,
David Kastrup <=
- Re: print bass staff not always, Gianmaria Lari, 2019/01/24
- Re: print bass staff not always, David Kastrup, 2019/01/24
- Re: print bass staff not always, Gianmaria Lari, 2019/01/24