6 % setup for Request->Element conversion. Guru-only
9 StaffContext=\translator {
10 \type "Engraver_group_engraver"
13 \description "Handles clefs, bar lines, keys, accidentals. It can contain
14 @code{Voice} contexts."
17 \consists "Output_property_engraver"
19 \consists "Bar_engraver"
20 % Bar_engraver must be first so default bars aren't overwritten
22 \consists "Font_size_engraver"
24 % \consists "Repeat_engraver"
25 \consists "Volta_engraver"
26 \consists "Separating_line_group_engraver"
27 SeparatingGroupSpanner \override #'spacing-procedure
28 = #Separating_group_spanner::set_spacing_rods_and_seqs
29 \consists "Dot_column_engraver"
31 % perhaps move to Voice context?
32 \consists "Ottava_spanner_engraver"
33 \consists "Clef_engraver"
34 \consists "Key_engraver"
35 \consists "Time_signature_engraver"
36 \consists "Staff_symbol_engraver"
37 \consists "Collision_engraver"
38 \consists "Rest_collision_engraver"
39 \consists "Accidental_engraver"
40 \consists "Piano_pedal_engraver"
41 \consists "Instrument_name_engraver"
42 \consists "Grob_pq_engraver"
43 \consists "Forbid_line_break_engraver"
44 \consistsend "Axis_group_engraver"
46 minimumVerticalExtent = #'(-6 . 6)
47 extraVerticalExtent = ##f
49 localKeySignature = #'()
51 % explicitly set instrument, so we don't get
52 % weird effects when doing instrument names for
62 StaffContainerContext = \translator {
63 \type Engraver_group_engraver
64 \consists "Axis_group_engraver"
65 minimumVerticalExtent = ##f
66 extraVerticalExtent = ##f
68 localKeySignature = #'()
74 InnerChoirStaffContext = \translator {
75 \type "Engraver_group_engraver"
77 \consists "System_start_delimiter_engraver"
78 systemStartDelimiter = #'SystemStartBracket
79 localKeySignature = #'()
82 \accepts "RhythmicStaff"
89 ChoirStaffContext = \translator {
90 \InnerChoirStaffContext
93 \description "Identical to @code{StaffGroup} except that the
94 contained staves are not connected vertically."
96 \accepts "InnerChoirStaff"
97 \accepts "InnerStaffGroup"
101 RhythmicStaffContext=\translator{
102 \type "Engraver_group_engraver"
104 \consists "Output_property_engraver"
107 A context like @code{Staff} but for printing rhythms. Pitches are
108 ignored; the notes are printed on one line.
110 minimumVerticalExtent = ##f
111 extraVerticalExtent = ##f
113 localKeySignature = #'()
115 \consists "Pitch_squash_engraver"
116 \consists "Separating_line_group_engraver"
120 BarLine \override #'bar-size = #4
121 VoltaBracket \override #'minimum-space = #15 % urg, in \pt
122 VoltaBracket \override #'padding = #5 % urg, in \pt
123 StaffSymbol \override #'line-count = #1
125 Stem \override #'neutral-direction = #1
126 Beam \override #'neutral-direction = #1
127 % \consists "Repeat_engraver"
128 \consists "Dot_column_engraver"
129 \consists "Volta_engraver"
130 \consists "Bar_engraver"
131 \consists "Time_signature_engraver"
132 \consists "Staff_symbol_engraver"
133 \consists "Instrument_name_engraver"
134 \consistsend "Axis_group_engraver"
139 VoiceContext = \translator {
140 \type "Engraver_group_engraver"
144 Corresponds to a voice on a staff. This context handles the
145 conversion of dynamic signs, stems, beams, super- and subscripts,
146 slurs, ties, and rests.
148 You have to instantiate this explicitly if you want to have
149 multiple voices on the same staff."
151 localKeySignature = #'()
152 \consists "Font_size_engraver"
154 % must come before all
155 \consists "Voice_devnull_engraver"
156 \consists "Output_property_engraver"
157 \consists "Arpeggio_engraver"
158 \consists "Multi_measure_rest_engraver"
159 \consists "Text_spanner_engraver"
160 \consists "Grob_pq_engraver"
162 \consists "Note_head_line_engraver"
163 \consists "Glissando_engraver"
164 \consists "Ligature_bracket_engraver"
165 \consists "Breathing_sign_engraver"
166 % \consists "Rest_engraver"
167 \consists "Stem_engraver"
168 \consists "Beam_engraver"
169 \consists "Grace_beam_engraver"
170 \consists "Auto_beam_engraver"
171 \consists "New_fingering_engraver"
172 \consists "Chord_tremolo_engraver"
173 \consists "Percent_repeat_engraver"
174 \consists "Slash_repeat_engraver"
175 \consists "Melisma_engraver"
178 Must come before text_engraver, but after note_column engraver.
181 \consists "Text_engraver"
182 \consists "Dynamic_engraver"
183 \consists "Fingering_engraver"
185 \consists "Script_engraver"
186 \consists "Script_column_engraver"
187 \consists "Rhythmic_column_engraver"
188 \consists "Phrasing_slur_engraver"
189 \consists "Cluster_spanner_engraver"
190 \consists "Slur_engraver"
191 \consists "Tie_engraver"
192 \consists "New_tie_engraver"
193 \consists "Tuplet_engraver"
194 \consists "A2_engraver"
196 \consists "Skip_event_swallow_translator"
197 \accepts Thread % bug if you leave out this!
200 ThreadContext = \translator{
201 \type Engraver_group_engraver
203 localKeySignature = #'()
205 Handles note heads, and is contained in the Voice context. You
206 have to instantiate this explicitly if you want to adjust the
207 style of individual note heads.
209 \consists "Font_size_engraver"
210 \consists "Thread_devnull_engraver"
211 \consists "Note_heads_engraver"
212 \consists "Rest_engraver"
215 \consists "Output_property_engraver"
221 GrandStaffContext=\translator{
222 \type "Engraver_group_engraver"
224 localKeySignature = #'()
226 \description " A group of staffs, with a brace on the left
227 side, grouping the staves together. The bar lines of the
228 contained staves are connected vertically. "
230 \consists "Span_bar_engraver"
231 \consists "Span_arpeggio_engraver"
232 \consists "System_start_delimiter_engraver"
233 systemStartDelimiter = #'SystemStartBrace
238 PianoStaffContext = \translator{
243 Just like @code{GrandStaff} but with @code{minVerticalAlign} set
244 equal to @code{maxVerticalAlign} so that interstaff beaming and
245 slurring can be used."
246 verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
247 VerticalAlignment \override #'forced-distance = #12
248 VerticalAlignment \override #'self-alignment-Y = #0
250 \consists "Vertical_align_engraver"
251 \consists "Instrument_name_engraver"
256 % \consistsend "Axis_group_engraver"
259 InnerStaffGroupContext= \translator {
260 \type "Engraver_group_engraver"
261 \name InnerStaffGroup
262 localKeySignature = #'()
264 \consists "Span_bar_engraver"
265 \consists "Span_arpeggio_engraver"
266 \consists "Output_property_engraver"
267 systemStartDelimiter = #'SystemStartBracket
269 \consists "System_start_delimiter_engraver"
271 \accepts "RhythmicStaff"
272 \accepts "GrandStaff"
273 \accepts "PianoStaff"
276 \accepts "ChordNames"
279 StaffGroupContext = \translator {
280 \InnerStaffGroupContext
285 " Groups staffs while adding a bracket on the left side,
286 grouping the staves together. The bar lines of the contained
287 staves are connected vertically.
290 \accepts "InnerChoirStaff"
291 \accepts "ChoirStaff"
292 \accepts "InnerStaffGroup"
293 \accepts "FiguredBass"
298 LyricsVoiceContext= \translator{
299 \type "Engraver_group_engraver"
300 \consistsend "Hara_kiri_engraver"
301 minimumVerticalExtent = #'(-1.2 . 2.4)
302 extraVerticalExtent = ##f
306 Corresponds to a voice with lyrics. Handles the printing of a
307 single line of lyrics.
311 \consists "Separating_line_group_engraver"
312 \consists "Lyric_engraver"
313 \consists "Extender_engraver"
314 \consists "Hyphen_engraver"
315 \consists "Stanza_number_engraver"
316 \consists "Skip_event_swallow_translator"
317 phrasingPunctuation = #".,:!?\""
318 SeparationItem \set #'padding = #0.5
320 NoteNamesContext = \translator {
321 \type "Engraver_group_engraver"
323 \consistsend "Axis_group_engraver"
325 minimumVerticalExtent = ##f
326 extraVerticalExtent = ##f
330 \consists "Note_name_engraver"
331 \consists "Separating_line_group_engraver"
334 LyricsContext = \translator {
335 \type "Engraver_group_engraver"
337 \description "Typesets lyrics."
338 %% To get folded repeats right.
339 \consists Vertical_align_engraver
341 \consistsend "Hara_kiri_engraver"
342 minimumVerticalExtent = ##f
343 extraVerticalExtent = ##f
346 \accepts "LyricsVoice"
350 ChordNamesContext = \translator {
351 \type "Engraver_group_engraver"
353 \description " Typesets chord names."
355 \consists "Rest_swallow_translator"
356 \consists "Output_property_engraver"
357 \consists "Separating_line_group_engraver"
358 \consists "Chord_name_engraver"
359 \consists "Skip_event_swallow_translator"
360 \consistsend "Hara_kiri_engraver"
361 minimumVerticalExtent = #'(0 . 2.5)
362 extraVerticalExtent = ##f
367 RemoveEmptyStaffContext = \translator {
369 \remove "Axis_group_engraver"
370 \consistsend "Hara_kiri_engraver"
371 \consists "Instrument_name_engraver"
374 % hara kiri & auto knee don't work together.
375 Beam \override #'auto-knee-gap = #'()
378 HaraKiriStaffContext = \translator { \RemoveEmptyStaffContext }
380 ScoreContext = \translator {
383 localKeySignature = #'()
385 \description "This is the top level notation context. No
386 other context can contain a @code{Score} context. This context
387 handles the administration of time signatures. It also makes sure
388 that items such as clefs, time signatures, and key-signatures are
389 aligned across staves.
391 You cannot explicitly instantiate a Score context (since it is
392 not contained in any other context). It is instantiated
393 automatically when an output definition (a @code{\score} or
394 @code{\paper} block) is processed."
396 \consists "Repeat_acknowledge_engraver"
397 \consists "Staff_collecting_engraver"
399 % move the alias along with the engraver.
401 %% TODO? add this alias from Timing_engraver::initialize() ?
402 \consists "Timing_engraver"
405 \consists "Output_property_engraver"
406 \consists "System_start_delimiter_engraver"
407 \consists "Mark_engraver"
408 \consists "Metronome_mark_engraver"
409 \consists "Break_align_engraver"
410 \consists "Spacing_engraver"
411 \consists "Vertical_align_engraver"
412 \consists "Lyric_phrasing_engraver"
413 \consists "Bar_number_engraver"
414 \consists "Span_arpeggio_engraver"
418 \accepts "StaffContainer"
419 \accepts "StaffGroup"
420 \accepts "RhythmicStaff"
422 \accepts "ChordNames"
423 \accepts "GrandStaff"
424 \accepts "ChoirStaff"
425 \accepts "PianoStaff"
427 \accepts "FiguredBass"
430 soloIIText = #"Solo II"
433 splitInterval = #'(0 . 1)
434 changeMoment = #`(,(ly:make-moment 0 0) . ,(ly:make-moment 1 512))
435 systemStartDelimiter =#'SystemStartBar
438 clefGlyph = #"clefs-G"
440 centralCPosition = #-6
442 automaticPhrasing = ##t
443 automaticMelismata = ##t
445 defaultBarType = #"|"
446 barNumberVisibility = #default-bar-number-visibility
449 explicitClefVisibility = #all-visible
450 explicitKeySignatureVisibility = #all-visible
451 autoBeamSettings = #default-auto-beam-settings
453 scriptDefinitions = #default-script-alist
455 verticalAlignmentChildCallback = #Align_interface::alignment_callback
457 pedalSustainStrings = #'("Ped." "*Ped." "*")
458 pedalSustainStyle = #'text
459 pedalUnaCordaStrings = #'("una corda" "" "tre corde")
460 pedalUnaCordaStyle = #'text
462 %% These are in ordinary italic font, including the *,
463 %% but they are unlikely to be used,
464 %% as the default pedal-style for SostenutoPedal is 'mixed':
465 %% i.e. Sost. Ped_____________________
466 pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
467 pedalSostenutoStyle = #'mixed
470 tupletNumberFormatFunction = #denominator-tuplet-formatter
475 autoAccidentals = #'(Staff (same-octave . 0))
476 autoCautionaries = #'()
478 keyAccidentalOrder = #'(
479 (6 . -1) (2 . -1) (5 . -1 ) (1 . -1) (4 . -1) (0 . -1) (3 . -1)
480 (3 . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
481 (6 . -2) (2 . -2) (5 . -2 ) (1 . -2) (4 . -2) (0 . -2) (3 . -2)
482 (3 . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
484 breakAlignOrder = #'(
495 barCheckSynchronize = ##t
498 chordNameFunction = #ignatzek-chord-names
499 majorSevenSymbol = #whiteTriangleMarkup
500 chordNameSeparator = #(make-simple-markup "/")
501 chordNameExceptions = #ignatzekExceptions
502 chordNoteNamer = #'()
503 chordRootNamer = #note-name->markup
505 chordNameExceptionsFull = #fullJazzExceptions
506 chordNameExceptionsPartial = #partialJazzExceptions
509 stringOneTopmost = ##t
512 %% One may change the strings tuning as following :
513 %% The lenght of the list must be equal to the number of string
514 stringTunings = #guitar-tunings
515 tablatureFormat = #fret-number-tablature-format
518 bassFigureFormatFunction = #make-bass-figure-markup
519 metronomeMarkFormatter = #make-metronome-markup
521 \grobdescriptions #all-grob-descriptions
524 OrchestralScoreContext= \translator {
528 EasyNotation = \translator {
530 NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
535 FiguredBassContext = \translator {
536 \type "Engraver_group_engraver"
538 \consists "Figured_bass_engraver"
539 \consists "Rest_swallow_translator"
540 \consists "Note_swallow_translator"
541 \consists "Separating_line_group_engraver"
543 \consistsend "Hara_kiri_engraver"
546 TabVoiceContext = \translator {
550 \consists "Tab_note_heads_engraver"
552 Slur \override #'font-family = #'roman
553 Slur \override #'molecule-callback = #hammer-molecule-callback
554 Slur \override #'direction = #-1
556 % Draws all stems/beams out of the staff (and not in the middle of the staff !)
557 % This feature is now disabled because most of the tab does not use it.
558 %Beam \override #'damping = #100000
559 %Stem \override #'up-to-staff = ##t
561 % No accidental in tablature !
562 \remove Accidental_engraver
565 TabStaffContext = \translator {
571 \description "Context for generating tablature. [DOCME]"
576 StaffSymbol \override #'line-count = #6
577 StaffSymbol \override #'staff-space = #1.5
579 % Don't draw stems over the tablature figures !
580 Stem \override #'avoid-note-head = ##t
582 % No accidental in tablature !
583 \remove Accidental_engraver
587 clefGlyph = #"clefs-tab"