1 %%%% This file is part of LilyPond, the GNU music typesetter.
3 %%%% Copyright (C) 1996--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
4 %%%% Jan Nieuwenhuizen <janneke@gnu.org>
6 %%%% LilyPond is free software: you can redistribute it and/or modify
7 %%%% it under the terms of the GNU General Public License as published by
8 %%%% the Free Software Foundation, either version 3 of the License, or
9 %%%% (at your option) any later version.
11 %%%% LilyPond is distributed in the hope that it will be useful,
12 %%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
13 %%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 %%%% GNU General Public License for more details.
16 %%%% You should have received a copy of the GNU General Public License
17 %%%% along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
27 \description "Hard coded entry point for LilyPond. Cannot be tuned."
28 \grobdescriptions #all-grob-descriptions
32 \type "Engraver_group"
34 \description "A context for displaying fret diagrams."
36 \consists "Fretboard_engraver"
37 \consists "Output_property_engraver"
38 \consists "Hara_kiri_engraver"
39 \consists "Separating_line_group_engraver"
40 \consists "Font_size_engraver"
41 \consists "Instrument_name_engraver"
43 predefinedDiagramTable = #default-fret-table
47 \type "Engraver_group"
50 \consists "Output_property_engraver"
51 \consists "Bar_engraver"
52 %% Bar_engraver must be first so default bars aren't overwritten
55 \consists "Font_size_engraver"
56 \consists "Separating_line_group_engraver"
57 \consists "Dot_column_engraver"
58 \consists "Staff_collecting_engraver"
60 %% perhaps move to Voice context?
61 \consists "Ottava_spanner_engraver"
62 \consists "Clef_engraver"
63 \consists "Key_engraver"
64 \consists "Time_signature_engraver"
65 \consists "Ledger_line_engraver"
66 \consists "Staff_symbol_engraver"
67 \consists "Collision_engraver"
68 \consists "Grob_pq_engraver"
69 \consists "Rest_collision_engraver"
70 \consists "Accidental_engraver"
71 \consists "Piano_pedal_engraver"
72 \consists "Piano_pedal_align_engraver"
73 \consists "Instrument_name_engraver"
74 \consists "Axis_group_engraver"
75 \consists "Figured_bass_engraver"
76 \consists "Figured_bass_position_engraver"
77 \consists "Script_row_engraver"
78 \consists "Cue_clef_engraver"
80 localKeySignature = #'()
82 ignoreFiguredBassRest = ##f
84 %% explicitly set instrument, so we don't get
85 %% weird effects when doing instrument names for
89 shortInstrumentName = #'()
95 \description "Handles clefs, bar lines, keys, accidentals. It can contain
96 @code{Voice} contexts."
102 \type "Engraver_group"
106 \remove "Accidental_engraver"
107 \remove "Ottava_spanner_engraver"
108 \remove "Key_engraver"
109 \remove "Piano_pedal_engraver"
111 \description "Handles typesetting for percussion."
115 \defaultchild "DrumVoice"
117 clefGlyph = #"clefs.percussion"
119 \override Script #'staff-padding = #0.75
124 \type "Engraver_group"
126 \consists "Vertical_align_engraver"
127 topLevelAlignment = ##f
129 \consists "System_start_delimiter_engraver"
130 systemStartDelimiter = #'SystemStartBracket
132 shortVocalName = #'()
136 \accepts "RhythmicStaff"
137 \accepts "GrandStaff"
138 \accepts "PianoStaff"
140 \accepts "ChordNames"
141 \accepts "FiguredBass"
142 \accepts "ChoirStaff"
143 \accepts "StaffGroup"
144 \defaultchild "Staff"
145 \description "Identical to @code{StaffGroup} except that the
146 contained staves are not connected vertically."
150 \type "Engraver_group"
152 localKeySignature = #'()
155 squashedPosition = #0
159 \override BarLine #'bar-size = #4
160 \override VoltaBracket #'staff-padding = #3
161 \override StaffSymbol #'line-count = #1
163 \override Stem #'neutral-direction = #UP
164 \override Beam #'neutral-direction = #UP
166 \consists "Output_property_engraver"
167 \consists "Font_size_engraver"
168 \consists "Separating_line_group_engraver"
169 \consists "Dot_column_engraver"
170 \consists "Bar_engraver"
171 \consists "Staff_symbol_engraver"
172 \consists "Pitch_squash_engraver"
173 \consists "Time_signature_engraver"
174 \consists "Instrument_name_engraver"
175 \consists "Axis_group_engraver"
176 \consists "Ledger_line_engraver"
180 \defaultchild "Voice"
182 \description "A context like @code{Staff} but for printing rhythms.
183 Pitches are ignored; the notes are printed on one line."
188 \type "Engraver_group"
191 \description "Corresponds to a voice on a staff. This context
192 handles the conversion of dynamic signs, stems, beams, super- and
193 subscripts, slurs, ties, and rests.
195 You have to instantiate this explicitly if you want to have
196 multiple voices on the same staff."
198 localKeySignature = #'()
199 \consists "Font_size_engraver"
201 \consists "Pitched_trill_engraver"
202 \consists "Output_property_engraver"
203 \consists "Arpeggio_engraver"
204 \consists "Multi_measure_rest_engraver"
205 \consists "Text_spanner_engraver"
206 \consists "Trill_spanner_engraver"
207 \consists "Grob_pq_engraver"
208 \consists "Forbid_line_break_engraver"
209 \consists "Laissez_vibrer_engraver"
210 \consists "Repeat_tie_engraver"
211 \consists "Note_head_line_engraver"
212 \consists "Glissando_engraver"
213 \consists "Ligature_bracket_engraver"
214 \consists "Breathing_sign_engraver"
215 \consists "Note_heads_engraver"
216 \consists "Dots_engraver"
217 \consists "Rest_engraver"
218 \consists "Tweak_engraver"
220 %% switch on to make stem directions interpolate for the
222 % \consists "Melody_engraver"
224 \consists "Stem_engraver"
225 \consists "Beam_engraver"
226 \consists "Grace_beam_engraver"
227 \consists "Auto_beam_engraver"
229 %% must come before Script_column_engraver.
230 \consists "New_fingering_engraver"
232 \consists "Chord_tremolo_engraver"
233 \consists "Percent_repeat_engraver"
234 \consists "Slash_repeat_engraver"
235 \consists "Part_combine_engraver"
237 \consists "Text_engraver"
238 \consists "New_dynamic_engraver"
239 \consists "Dynamic_align_engraver"
240 % \consists "Dynamic_engraver"
241 \consists "Fingering_engraver"
242 \consists "Bend_engraver"
244 \consists "Script_engraver"
245 \consists "Script_column_engraver"
246 \consists "Rhythmic_column_engraver"
247 \consists "Note_spacing_engraver"
248 \consists "Spanner_break_forbid_engraver"
249 \consists "Phrasing_slur_engraver"
250 \consists "Cluster_spanner_engraver"
251 \consists "Slur_engraver"
252 \consists "Tie_engraver"
253 \consists "Tuplet_engraver"
254 \consists "Grace_engraver"
255 \consists "Instrument_switch_engraver"
264 \override Stem #'length-fraction = #(magstep -4)
265 \override Beam #'length-fraction = #(magstep -4)
266 \override Beam #'beam-thickness = #0.35
274 \description "A voice on a percussion staff."
275 \remove "Arpeggio_engraver"
276 \consists "Grob_pq_engraver"
278 \remove "Note_head_line_engraver"
279 \remove "Glissando_engraver"
280 \remove "Ligature_bracket_engraver"
281 \remove "Note_heads_engraver"
282 \consists "Drum_notes_engraver"
283 \remove "New_fingering_engraver"
285 \remove "Fingering_engraver"
287 \remove "Cluster_spanner_engraver"
291 \type "Engraver_group"
293 localKeySignature = #'()
295 \description "A group of staves, with a brace on the left
296 side, grouping the staves together. The bar lines of the
297 contained staves are connected vertically."
299 \consists "Span_bar_engraver"
300 \consists "Span_arpeggio_engraver"
301 \consists "System_start_delimiter_engraver"
302 systemStartDelimiter = #'SystemStartBrace
303 topLevelAlignment = ##f
305 \defaultchild "Staff"
307 \accepts "FiguredBass"
316 \description "Just like @code{GrandStaff} but with support for
317 instrument names at the start of each system."
319 \consists "Instrument_name_engraver"
320 \consists "Vertical_align_engraver"
321 \consists "Keep_alive_together_engraver"
322 topLevelAlignment = ##f
324 instrumentName = #'()
325 shortInstrumentName = #'()
329 \type "Engraver_group"
332 \consists "Vertical_align_engraver"
333 topLevelAlignment = ##f
335 \consists "Span_bar_engraver"
336 \consists "Span_arpeggio_engraver"
337 \consists "Output_property_engraver"
338 systemStartDelimiter = #'SystemStartBracket
340 \consists "System_start_delimiter_engraver"
342 \defaultchild "Staff"
344 \accepts "RhythmicStaff"
346 \accepts "GrandStaff"
347 \accepts "PianoStaff"
350 \accepts "ChordNames"
351 \accepts "FiguredBass"
352 \accepts "ChoirStaff"
353 \accepts "StaffGroup"
355 \description "Groups staves while adding a bracket on the left
356 side, grouping the staves together. The bar lines of the contained
357 staves are connected vertically. @code{StaffGroup} only consists of
358 a collection of staves, with a bracket in front and spanning bar lines."
362 \type "Engraver_group"
365 \consists "Output_property_engraver"
366 \consists "Bar_engraver"
367 \consists "Piano_pedal_engraver"
368 \consists "Script_engraver"
369 \consists "New_dynamic_engraver"
370 \consists "Dynamic_align_engraver"
371 \consists "Text_engraver"
372 \consists "Text_spanner_engraver"
373 \consists "Axis_group_engraver"
375 pedalSustainStrings = #'("Ped." "*Ped." "*")
376 pedalUnaCordaStrings = #'("una corda" "" "tre corde")
377 \override VerticalAxisGroup #'staff-affinity = #CENTER
378 \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing =
379 #'((basic-distance . 5)
381 \override TextScript #'font-shape = #'italic
382 \override DynamicLineSpanner #'Y-offset = #0
384 \description "Holds a single line of dynamics, which will be
385 centered between the staves surrounding this context."
390 \type "Engraver_group"
392 \description "Corresponds to a voice with lyrics. Handles the
393 printing of a single line of lyrics."
396 instrumentName = #'()
397 shortInstrumentName = #'()
399 \consists "Lyric_engraver"
400 \consists "Extender_engraver"
401 \consists "Hyphen_engraver"
402 \consists "Stanza_number_engraver"
403 \consists "Instrument_name_engraver"
404 \consists "Font_size_engraver"
405 \consists "Hara_kiri_engraver"
407 \override VerticalAxisGroup #'remove-first = ##t
408 \override VerticalAxisGroup #'remove-empty = ##t
409 \override VerticalAxisGroup #'staff-affinity = #UP
410 \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing =
411 #'((basic-distance . 5.5)
413 (stretchability . 1))
414 \override VerticalAxisGroup #'nonstaff-nonstaff-spacing =
415 #'((basic-distance . 0)
416 (minimum-distance . 2.8)
418 (stretchability . 0))
419 \override VerticalAxisGroup #'nonstaff-unrelatedstaff-spacing #'padding = #1.5
420 \override InstrumentName #'self-alignment-Y = ##f
422 %% sync with define-grobs.scm ;
423 \override InstrumentName #'font-size = #1.0
425 %% make sure that barlines aren't collapsed, when
426 %% Bar_engraver is there.
427 \override BarLine #'bar-size = #0.1
432 \type "Engraver_group"
434 \description "A context for printing the names of notes."
435 \consists "Axis_group_engraver"
437 % FIXME: not sure what the default should be here.
438 \override VerticalAxisGroup #'staff-affinity = #DOWN
440 \consists "Tie_engraver"
441 \consists "Note_name_engraver"
442 \consists "Separating_line_group_engraver"
446 \type "Engraver_group"
448 \description "Typesets chord names."
450 \consists "Output_property_engraver"
451 \consists "Separating_line_group_engraver"
452 \consists "Chord_name_engraver"
453 \consists "Hara_kiri_engraver"
454 % \consists "Note_spacing_engraver"
455 \override VerticalAxisGroup #'remove-first = ##t
456 \override VerticalAxisGroup #'remove-empty = ##t
457 \override VerticalAxisGroup #'staff-affinity = #DOWN
458 \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing #'padding = #0.5
459 \override VerticalAxisGroup #'nonstaff-nonstaff-spacing #'padding = #0.5
463 RemoveEmptyStaves = \with {
464 \remove "Axis_group_engraver"
465 \remove "Hara_kiri_engraver"
466 \consists "Hara_kiri_engraver"
467 \override Beam #'auto-knee-gap = #'()
468 \override VerticalAxisGroup #'remove-empty = ##t
473 \type "Score_engraver"
476 \description "This is the top level notation context. No
477 other context can contain a @code{Score} context. This context
478 handles the administration of time signatures. It also makes sure
479 that items such as clefs, time signatures, and key-signatures are
480 aligned across staves.
482 You cannot explicitly instantiate a @code{Score} context (since it
483 is not contained in any other context). It is instantiated
484 automatically when an output definition (a @code{\score} or
485 @code{\layout} block) is processed."
487 \consists "Paper_column_engraver"
488 \consists "Repeat_acknowledge_engraver"
489 \consists "Staff_collecting_engraver"
491 %% move the alias along with the engraver.
493 \consists "Timing_translator"
494 \consists "Default_bar_line_engraver"
495 \consists "Output_property_engraver"
496 \consists "System_start_delimiter_engraver"
497 \consists "Mark_engraver"
498 \consists "Volta_engraver"
499 \consists "Metronome_mark_engraver"
500 \consists "Break_align_engraver"
501 \consists "Spacing_engraver"
502 \consists "Grace_spacing_engraver"
503 \consists "Vertical_align_engraver"
504 \consists "Stanza_number_align_engraver"
505 \consists "Bar_number_engraver"
506 \consists "Parenthesis_engraver"
508 \defaultchild "Staff"
510 \accepts "FretBoards"
512 \accepts "RhythmicStaff"
514 \accepts "VaticanaStaff"
515 \accepts "GregorianTranscriptionStaff"
516 \accepts "MensuralStaff"
517 \accepts "StaffGroup"
520 \accepts "ChordNames"
521 \accepts "GrandStaff"
522 \accepts "ChoirStaff"
523 \accepts "PianoStaff"
526 \accepts "FiguredBass"
529 noteToFretFunction = #determine-frets
530 predefinedDiagramTable = ##f
532 soloIIText = #"Solo II"
534 printPartCombineTexts = ##t
535 partCombineTextsOnNote = ##t
536 systemStartDelimiter =#'SystemStartBar
538 drumStyleTable = #drums-style
540 melismaBusyProperties = #default-melisma-properties
542 clefGlyph = #"clefs.G"
544 middleCClefPosition = #-6
545 middleCPosition = #-6
548 crescendoSpanner = #'hairpin
549 decrescendoSpanner = #'hairpin
551 defaultBarType = #"|"
552 doubleRepeatType = #":|:"
553 barNumberVisibility = #first-bar-number-invisible
556 explicitClefVisibility = #all-visible
557 explicitCueClefVisibility = #end-of-line-invisible
558 explicitKeySignatureVisibility = #all-visible
559 implicitTimeSignatureVisibility = #end-of-line-invisible
561 repeatCountVisibility = #all-repeat-counts-visible
563 timeSignatureSettings = #default-time-signature-settings
564 timeSignatureFraction = #'(4 . 4)
566 %% These defaults should be the same as the rules established in
567 %% scm/time-signature-settings.scm for 4/4 time
568 measureLength = #(ly:make-moment 4 4)
569 baseMoment = #(ly:make-moment 1 4)
570 beatStructure = #'(1 1 1 1)
571 beamExceptions = #'((end . (((1 . 8) . (4 4))
572 ((1 . 12) . (3 3 3 3)))))
574 autoBeamCheck = #default-auto-beam-check
576 scriptDefinitions = #default-script-alist
578 pedalSustainStrings = #'("Ped." "*Ped." "*")
579 pedalSustainStyle = #'text
580 pedalUnaCordaStrings = #'("una corda" "" "tre corde")
581 pedalUnaCordaStyle = #'text
583 %% These are in ordinary italic font, including the *,
584 %% but they are unlikely to be used,
585 %% as the default pedal-style for SostenutoPedal is 'mixed':
586 %% i.e. Sost. Ped_____________________
587 pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
588 pedalSostenutoStyle = #'mixed
590 harmonicAccidentals = ##t
591 fingeringOrientations = #'(up down)
592 stringNumberOrientations = #'(up down)
593 strokeFingerOrientations = #'(right)
595 lyricMelismaAlignment = #LEFT
596 markFormatter = #format-mark-letters
600 autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0))
601 autoCautionaries = #'()
603 printKeyCancellation = ##t
604 keyAlterationOrder = #`(
605 (6 . ,FLAT) (2 . ,FLAT) (5 . ,FLAT ) (1 . ,FLAT) (4 . ,FLAT) (0 . ,FLAT) (3 . ,FLAT)
606 (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
607 (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
608 (3 . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (1 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
611 barCheckSynchronize = ##f
614 chordNameFunction = #ignatzek-chord-names
615 majorSevenSymbol = #whiteTriangleMarkup
616 chordNameLowercaseMinor = ##f
617 chordNameSeparator = #(make-simple-markup "/")
618 chordNameExceptions = #ignatzekExceptions
619 chordNoteNamer = #'()
620 chordRootNamer = #note-name->markup
621 chordPrefixSpacer = #0
622 chordNameExceptionsFull = #fullJazzExceptions
623 chordNameExceptionsPartial = #partialJazzExceptions
624 noChordSymbol = #(make-simple-markup "N.C.")
626 bassStaffProperties = #'((assign clefGlyph "clefs.F")
627 (assign clefPosition 2)
628 (assign middleCPosition 6)
629 (assign middleCClefPosition 6))
631 stringOneTopmost = ##t
634 %% One may change the string tunings as follows :
635 %% The length of the list must be equal to the number of strings
636 stringTunings = #guitar-tuning
637 tablatureFormat = #fret-number-tablature-format
638 tabStaffLineLayoutFunction = #tablature-position-on-lines
641 figuredBassFormatter = #format-bass-figure
642 metronomeMarkFormatter = #format-metronome-markup
645 %% See also make-voice-props-set
647 (Voice Stem direction ,UP)
648 (Voice Stem font-size -3)
649 (Voice NoteHead font-size -3)
650 (Voice TabNoteHead font-size -4)
651 (Voice Dots font-size -3)
652 (Voice Stem length-fraction 0.8)
653 (Voice Stem no-stem-extend #t)
654 (Voice Beam beam-thickness 0.384)
655 (Voice Beam length-fraction 0.8)
656 (Voice Accidental font-size -4)
657 (Voice AccidentalCautionary font-size -4)
658 (Voice Slur direction ,DOWN)
659 (Voice Script font-size -3)
660 (Voice Fingering font-size -8)
661 (Voice StringNumber font-size -8)
664 keepAliveInterfaces = #'(
665 bass-figure-interface
667 cluster-beacon-interface
668 fret-diagram-interface
669 lyric-syllable-interface
671 tab-note-head-interface
673 percent-repeat-item-interface
674 percent-repeat-interface
676 ;; need this, as stanza numbers are items, and appear only once.
677 stanza-number-interface
679 % \quoteDuring is supposed to quote everything, cueDuring only the essentials
680 quotedEventTypes = #'(StreamEvent)
681 quotedCueEventTypes = #'(
687 instrumentTransposition = #(ly:make-pitch 0 0 0)
689 topLevelAlignment = ##t
698 \type "Engraver_group"
700 \description "A context for printing a figured bass line."
702 \consists "Figured_bass_engraver"
703 \consists "Separating_line_group_engraver"
704 \consists "Hara_kiri_engraver"
706 \override VerticalAxisGroup #'remove-empty = ##t
707 \override VerticalAxisGroup #'remove-first = ##t
708 \override VerticalAxisGroup #'staff-affinity = #UP
709 \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing #'padding = #0.5
710 \override VerticalAxisGroup #'nonstaff-nonstaff-spacing #'padding = #0.5
715 \type "Engraver_group"
717 %% don't want to route anything out of here:
720 \description "Silently discards all musical information given to this
728 \consists "Tab_note_heads_engraver"
729 \consists "Tab_tie_follow_engraver"
731 \remove "Note_heads_engraver"
732 \remove "Fingering_engraver"
733 \remove "New_fingering_engraver"
735 \description "Context for drawing notes in a Tab staff."
737 %% TabStaff increase the staff-space, which in turn
738 %% increases beam thickness and spacing; beams are
739 %% too big. We have to adjust the beam settings:
740 \override Beam #'beam-thickness = #0.32
741 \override Beam #'length-fraction = #0.62
742 %% the same goes for tremolo beams
743 \override StemTremolo #'beam-thickness = #0.32
744 %% NOTE: in lily/stem-tremolo.cc, we have length-fraction = 1,
745 %% and the tablature staff space is scaled (1.5 by default),
746 %% so we use the inversion of the scale factor:
747 \override StemTremolo #'length-fraction = #(lambda (grob)
748 (/ 1 (ly:staff-symbol-staff-space grob)))
749 \override StemTremolo #'beam-width = #stem-tremolo::calc-tab-width
751 %% No accidental in tablature !
752 \remove "Accidental_engraver"
753 %% make the Stems as short as possible to minimize their influence
754 %% on the slur::calc-control-points routine
755 \override Stem #'length = #0
756 \override Stem #'no-stem-extend = ##t
757 \override Stem #'flag-style = #'no-flag
758 \override Stem #'details = #'((lengths 0 0 0 0 0 0)
759 (beamed-lengths 0 0 0)
760 (beamed-minimum-free-lengths 0 0 0)
761 (beamed-extreme-minimum-free-lengths 0 0)
763 %% after all, the stubs of the stems may still be visible, so ...
764 \override Stem #'transparent = ##t
765 %% automatic beams should be suppressed for similar reasons ...
767 %% remove beams, dots and rests ...
768 \override Beam #'stencil = ##f
769 \override StemTremolo #'stencil = ##f
770 \override Dots #'stencil = ##f
771 \override Rest #'stencil = ##f
772 \override MultiMeasureRest #'stencil = ##f
773 \override MultiMeasureRestNumber #'transparent = ##t
774 \override MultiMeasureRestText #'transparent = ##t
775 %% ... all kinds of ties/slurs
776 \override Tie #'stencil = ##f
777 \override RepeatTie #'stencil = ##f
778 \override LaissezVibrerTie #'stencil = ##f
779 \override Slur #'stencil = #slur::draw-tab-slur
780 \override PhrasingSlur #'stencil = ##f
781 %% 'tied to' fret numbers become invisible or parenthesized, respectively)
782 \override Tie #'after-line-breaking = #tie::handle-tab-note-head
783 \override RepeatTie #'after-line-breaking = #repeat-tie::handle-tab-note-head
784 %% ... and all kinds of markups, spanners etc.
785 \override TupletBracket #'stencil = ##f
786 \override TupletNumber #'stencil = ##f
787 \override DynamicText #'transparent = ##t
788 \override DynamicTextSpanner #'stencil = ##f
789 \override TextSpanner #'stencil = ##f
790 \override Hairpin #'transparent = ##t
791 \override Script #'stencil = ##f
792 \override TextScript #'stencil = ##f
793 \override Glissando #'stencil = #glissando::draw-tab-glissando
794 %% the direction for glissando lines will be automatically corrected
795 \override Glissando #'extra-dy = #glissando::calc-tab-extra-dy
796 \override Glissando #'bound-details #'right = #`((attach-dir . ,LEFT)
798 \override Glissando #'bound-details #'left = #`((attach-dir . ,RIGHT)
801 \override TabNoteHead #'glyph-name = #tab-note-head::calc-glyph-name
802 \override TabNoteHead #'stencil = #tab-note-head::whiteout-if-style-set
810 \consists "Tab_staff_symbol_engraver"
812 \description "Context for generating tablature. It accepts only @code{TabVoice}
813 contexts and handles the line spacing, the tablature clef etc. properly."
816 \defaultchild "TabVoice"
818 %% 6 strings, bigger spacing
819 \override StaffSymbol #'staff-space = #1.5
821 %% Don't draw stems over the tablature figures !
822 \override Stem #'avoid-note-head = ##t
824 %% No accidental in tablature !
825 \remove "Accidental_engraver"
826 \remove "Key_engraver"
828 \remove "Ottava_spanner_engraver"
830 \override Clef #'stencil = #clef::print-modern-tab-if-set
832 \override TimeSignature #'stencil = ##f
834 \override Arpeggio #'stencil = ##f
835 %% we ignore collision warnings that may occur due to
836 %% stem overlapping, because we have no stems ;-)
837 \override NoteColumn #'ignore-collision = ##t
838 %% Special "TAB" clef
839 clefGlyph = #"clefs.tab"
845 \name "VaticanaVoice"
847 \description "Same as @code{Voice} context, except that it is
848 accommodated for typesetting Gregorian Chant in the notational style
851 \remove "Slur_engraver"
852 \remove "Stem_engraver"
853 \remove "Ligature_bracket_engraver"
854 \consists "Vaticana_ligature_engraver"
855 \remove "Text_spanner_engraver"
856 \consists "Episema_engraver"
858 %% Set default head for notes outside of \[ \].
859 \override NoteHead #'style = #'vaticana.punctum
861 %% Put some space before and after divisiones.
862 %% FIXME: This does not seem to show any effect.
863 \override Script #'padding = #0.5
865 %% There are no beams in Gregorian Chant notation.
871 \name "VaticanaStaff"
874 \accepts "VaticanaVoice"
875 \defaultchild "VaticanaVoice"
877 \description "Same as @code{Staff} context, except that it is
878 accommodated for typesetting Gregorian Chant in the notational style
881 \remove "Time_signature_engraver"
882 \consists "Custos_engraver"
884 %% We can not remove Bar_engraver; otherwise clefs and custodes will
885 %% not show up any more among other line breaking issues.
886 %% Instead, we make the grob transparent.
887 \override BarLine #'transparent = ##t
889 \override StaffSymbol #'line-count = #4
890 \override StaffSymbol #'thickness = #0.6
892 %% FIXME: unit on StaffSymbol's width should be \linewidth.
893 %% \override StaffSymbol #'width = #60.0
895 %% Choose vaticana do clef on 3rd line as default.
896 clefGlyph = #"clefs.vaticana.do"
898 middleCClefPosition = #1
902 %% Select vaticana style font.
903 \override KeySignature #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
904 \override Accidental #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
905 \override Custos #'style = #'vaticana
906 \override Custos #'neutral-position = #3
907 \override Custos #'neutral-direction = #DOWN
908 \override Dots #'style = #'vaticana
913 \name "GregorianTranscriptionVoice"
915 \consists "Episema_engraver"
917 %% Removing ligature bracket engraver without replacing it by some
918 %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
919 %% warning for every "\[" and "\]". Therefore, we make the grob
920 %% transparent instead.
921 \override LigatureBracket #'transparent = ##t
923 %% Put some space before and after divisiones.
924 %% FIXME: This does not seem to show any effect.
925 \override Script #'padding = #0.5
927 %% There are no beams in Gregorian Chant notation.
934 \name "GregorianTranscriptionStaff"
937 \accepts "GregorianTranscriptionVoice"
938 \defaultchild "GregorianTranscriptionVoice"
940 %% We can not remove Bar_engraver; otherwise clefs and custodes will
941 %% not show up any more among other line breaking issues.
942 %% Instead, we make the grob transparent.
943 \override BarLine #'transparent = ##t
948 \name "MensuralVoice"
950 \description "Same as @code{Voice} context, except that it is
951 accommodated for typesetting a piece in mensural style."
953 \remove "Slur_engraver"
954 \remove "Ligature_bracket_engraver"
955 \consists "Mensural_ligature_engraver"
957 %% Set default head for notes outside of \[ \].
958 \override NoteHead #'style = #'mensural
959 \override Rest #'style = #'mensural
961 %% There are no beams in mensural notation.
967 \name "MensuralStaff"
970 \defaultchild "MensuralVoice"
971 \accepts "MensuralVoice"
972 \description "Same as @code{Staff} context, except that it is
973 accommodated for typesetting a piece in mensural style."
975 \consists "Custos_engraver"
977 %% We can not remove Bar_engraver; otherwise clefs and custodes will
978 %% not show up any more among other line breaking issues.
979 %% Instead, we make the grob transparent.
980 \override BarLine #'transparent = ##t
982 \override StaffSymbol #'thickness = #0.6
984 %% FIXME: unit on StaffSymbol's width should be \linewidth.
985 %% \override StaffSymbol #'width = #60.0
987 %% Choose mensural g clef on 2nd line as default.
988 clefGlyph = #"clefs.mensural.g"
989 middleCClefPosition = #-6
990 middleCPosition = #-6
994 %% Select mensural style font.
995 \override TimeSignature #'style = #'mensural
996 \override KeySignature #'glyph-name-alist = #alteration-mensural-glyph-name-alist
997 \override Accidental #'glyph-name-alist = #alteration-mensural-glyph-name-alist
998 \override Custos #'style = #'mensural
999 \override Custos #'neutral-position = #3
1000 \override Custos #'neutral-direction = #DOWN
1002 %% Accidentals are valid only once (same as
1003 %% #(set-accidental-style 'forget))
1005 autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave -1))
1006 autoCautionaries = #'()
1007 printKeyCancellation = ##f
1011 %% Keep the old definitions in here for compatibility (they erase previous
1012 %% settings to the corresponding context!).
1013 %% For new scores, one should simply insert the \RemoveEmptyStaves settings
1014 %% into the desired context. That's just as easy, requires only one line more
1015 %% (the \*Staff), but preserves previous context mods.
1016 %% TODO: DEPRECATED_2.13.17, remove at some point in the future
1017 RemoveEmptyStaffContext = \context {
1022 AncientRemoveEmptyStaffContext = \context {
1027 RemoveEmptyDrumStaffContext = \context {
1032 RemoveEmptyRhythmicStaffContext = \context {
1037 RemoveEmptyTabStaffContext = \context {