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"
143 Corresponds to a voice on a staff. This context handles the
144 conversion of dynamic signs, stems, beams, super- and subscripts,
145 slurs, ties, and rests.
147 You have to instantiate this explicitly if you want to have
148 multiple voices on the same staff."
150 localKeySignature = #'()
151 \consists "Font_size_engraver"
153 % must come before all
154 \consists "Voice_devnull_engraver"
155 \consists "Output_property_engraver"
156 \consists "Arpeggio_engraver"
157 \consists "Multi_measure_rest_engraver"
158 \consists "Text_spanner_engraver"
159 \consists "Grob_pq_engraver"
161 \consists "Note_head_line_engraver"
162 \consists "Glissando_engraver"
163 \consists "Ligature_bracket_engraver"
164 \consists "Breathing_sign_engraver"
165 % \consists "Rest_engraver"
166 \consists "Stem_engraver"
167 \consists "Beam_engraver"
168 \consists "Grace_beam_engraver"
169 \consists "Auto_beam_engraver"
170 \consists "New_fingering_engraver"
171 \consists "Chord_tremolo_engraver"
172 \consists "Percent_repeat_engraver"
173 \consists "Slash_repeat_engraver"
174 \consists "Melisma_engraver"
177 Must come before text_engraver, but after note_column engraver.
180 \consists "Text_engraver"
181 \consists "Dynamic_engraver"
182 \consists "Fingering_engraver"
184 \consists "Script_engraver"
185 \consists "Script_column_engraver"
186 \consists "Rhythmic_column_engraver"
187 \consists "Phrasing_slur_engraver"
188 \consists "Cluster_engraver"
189 \consists "Slur_engraver"
190 \consists "Tie_engraver"
191 \consists "New_tie_engraver"
192 \consists "Tuplet_engraver"
193 \consists "A2_engraver"
195 \consists "Skip_event_swallow_translator"
196 \accepts Thread % bug if you leave out this!
199 ThreadContext = \translator{
200 \type Engraver_group_engraver
202 localKeySignature = #'()
204 Handles note heads, and is contained in the Voice context. You
205 have to instantiate this explicitly if you want to adjust the
206 style of individual note heads.
208 \consists "Font_size_engraver"
209 \consists "Thread_devnull_engraver"
210 \consists "Note_heads_engraver"
211 \consists "Rest_engraver"
214 \consists "Output_property_engraver"
220 GrandStaffContext=\translator{
221 \type "Engraver_group_engraver"
223 localKeySignature = #'()
225 \description " A group of staffs, with a brace on the left
226 side, grouping the staves together. The bar lines of the
227 contained staves are connected vertically. "
229 \consists "Span_bar_engraver"
230 \consists "Span_arpeggio_engraver"
231 \consists "System_start_delimiter_engraver"
232 systemStartDelimiter = #'SystemStartBrace
237 PianoStaffContext = \translator{
242 Just like @code{GrandStaff} but with @code{minVerticalAlign} set
243 equal to @code{maxVerticalAlign} so that interstaff beaming and
244 slurring can be used."
245 verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
246 VerticalAlignment \override #'forced-distance = #12
247 VerticalAlignment \override #'self-alignment-Y = #0
249 \consists "Vertical_align_engraver"
250 \consists "Instrument_name_engraver"
255 % \consistsend "Axis_group_engraver"
258 InnerStaffGroupContext= \translator {
259 \type "Engraver_group_engraver"
260 \name InnerStaffGroup
261 localKeySignature = #'()
263 \consists "Span_bar_engraver"
264 \consists "Span_arpeggio_engraver"
265 \consists "Output_property_engraver"
266 systemStartDelimiter = #'SystemStartBracket
268 \consists "System_start_delimiter_engraver"
270 \accepts "RhythmicStaff"
271 \accepts "GrandStaff"
272 \accepts "PianoStaff"
275 \accepts "ChordNames"
278 StaffGroupContext = \translator {
279 \InnerStaffGroupContext
284 " Groups staffs while adding a bracket on the left side,
285 grouping the staves together. The bar lines of the contained
286 staves are connected vertically.
289 \accepts "InnerChoirStaff"
290 \accepts "ChoirStaff"
291 \accepts "InnerStaffGroup"
292 \accepts "FiguredBass"
297 LyricsVoiceContext= \translator{
298 \type "Engraver_group_engraver"
299 \consistsend "Hara_kiri_engraver"
300 minimumVerticalExtent = #'(-1.2 . 1.2)
301 extraVerticalExtent = ##f
305 Corresponds to a voice with lyrics. Handles the printing of a
306 single line of lyrics.
310 \consists "Separating_line_group_engraver"
311 \consists "Lyric_engraver"
312 \consists "Extender_engraver"
313 \consists "Hyphen_engraver"
314 \consists "Stanza_number_engraver"
315 \consists "Skip_event_swallow_translator"
316 phrasingPunctuation = #".,:!?\""
319 NoteNamesContext = \translator {
320 \type "Engraver_group_engraver"
322 \consistsend "Axis_group_engraver"
324 minimumVerticalExtent = ##f
325 extraVerticalExtent = ##f
329 \consists "Note_name_engraver"
330 \consists "Separating_line_group_engraver"
333 LyricsContext = \translator {
334 \type "Engraver_group_engraver"
336 \description "Typesets lyrics."
337 %% To get folded repeats right.
338 \consists Vertical_align_engraver
340 \consistsend "Hara_kiri_engraver"
341 minimumVerticalExtent = ##f
342 extraVerticalExtent = ##f
345 \accepts "LyricsVoice"
349 ChordNamesContext = \translator {
350 \type "Engraver_group_engraver"
352 \description " Typesets chord names."
354 \consists "Rest_swallow_translator"
355 \consists "Output_property_engraver"
356 \consists "Separating_line_group_engraver"
357 \consists "Chord_name_engraver"
358 \consists "Skip_event_swallow_translator"
359 \consistsend "Hara_kiri_engraver"
360 minimumVerticalExtent = #'(0 . 2.5)
361 extraVerticalExtent = ##f
366 RemoveEmptyStaffContext = \translator {
368 \remove "Axis_group_engraver"
369 \consistsend "Hara_kiri_engraver"
370 \consists "Instrument_name_engraver"
373 % hara kiri & auto knee don't work together.
374 Beam \override #'auto-knee-gap = #'()
377 HaraKiriStaffContext = \translator { \RemoveEmptyStaffContext }
379 ScoreContext = \translator {
382 localKeySignature = #'()
384 \description "This is the top level notation context. No
385 other context can contain a @code{Score} context. This context
386 handles the administration of time signatures. It also makes sure
387 that items such as clefs, time signatures, and key-signatures are
388 aligned across staves.
390 You cannot explicitly instantiate a Score context (since it is
391 not contained in any other context). It is instantiated
392 automatically when an output definition (a @code{\score} or
393 @code{\paper} block) is processed."
395 \consists "Repeat_acknowledge_engraver"
396 \consists "Staff_collecting_engraver"
398 % move the alias along with the engraver.
400 %% TODO? add this alias from Timing_engraver::initialize() ?
401 \consists "Timing_engraver"
404 \consists "Output_property_engraver"
405 \consists "System_start_delimiter_engraver"
406 \consists "Mark_engraver"
407 \consists "Metronome_mark_engraver"
408 \consists "Break_align_engraver"
409 \consists "Spacing_engraver"
410 \consists "Vertical_align_engraver"
411 \consists "Lyric_phrasing_engraver"
412 \consists "Bar_number_engraver"
413 \consists "Span_arpeggio_engraver"
417 \accepts "StaffContainer"
418 \accepts "StaffGroup"
419 \accepts "RhythmicStaff"
421 \accepts "ChordNames"
422 \accepts "GrandStaff"
423 \accepts "ChoirStaff"
424 \accepts "PianoStaff"
426 \accepts "FiguredBass"
429 soloIIText = #"Solo II"
432 splitInterval = #'(0 . 1)
433 changeMoment = #`(,(ly:make-moment 0 0) . ,(ly:make-moment 1 512))
434 systemStartDelimiter =#'SystemStartBar
437 clefGlyph = #"clefs-G"
439 centralCPosition = #-6
441 automaticPhrasing = ##t
442 automaticMelismata = ##t
444 defaultBarType = #"|"
445 barNumberVisibility = #default-bar-number-visibility
447 explicitClefVisibility = #all-visible
448 explicitKeySignatureVisibility = #all-visible
449 autoBeamSettings = #default-auto-beam-settings
451 scriptDefinitions = #default-script-alist
453 verticalAlignmentChildCallback = #Align_interface::alignment_callback
455 pedalSustainStrings = #'("Ped." "*Ped." "*")
456 pedalUnaCordaStrings = #'("una corda" "" "tre corde")
458 %% These are in ordinary italic font, including the *,
459 %% but they are unlikely to be used,
460 %% as the default pedal-style for SostenutoPedal is 'mixed':
461 %% i.e. Sost. Ped_____________________
462 pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
464 tupletNumberFormatFunction = #denominator-tuplet-formatter
469 autoAccidentals = #'(Staff (same-octave . 0))
470 autoCautionaries = #'()
472 keyAccidentalOrder = #'(
473 (6 . -1) (2 . -1) (5 . -1 ) (1 . -1) (4 . -1) (0 . -1) (3 . -1)
474 (3 . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
475 (6 . -2) (2 . -2) (5 . -2 ) (1 . -2) (4 . -2) (0 . -2) (3 . -2)
476 (3 . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
478 breakAlignOrder = #'(
490 barCheckSynchronize = ##t
493 chordNameFunction = #ignatzek-chord-names
494 majorSevenSymbol = #whiteTriangleMarkup
495 chordNameSeparator = #(make-simple-markup "/")
496 chordNameExceptions = #ignatzekExceptions
497 chordNoteNamer = #'()
498 chordRootNamer = #note-name->markup
501 stringOneTopmost = ##t
504 %% One may change the strings tuning as following :
505 %% The lenght of the list must be equal to the number of string
506 stringTunings = #guitar-tunings
507 tablatureFormat = #fret-number-tablature-format
510 bassFigureFormatFunction = #make-bass-figure-markup
511 metronomeMarkFormatter = #make-metronome-markup
513 \grobdescriptions #all-grob-descriptions
516 OrchestralScoreContext= \translator {
520 EasyNotation = \translator {
522 NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
527 FiguredBassContext = \translator {
528 \type "Engraver_group_engraver"
530 \consists "Figured_bass_engraver"
531 \consists "Rest_swallow_translator"
532 \consists "Note_swallow_translator"
533 \consists "Separating_line_group_engraver"
535 \consistsend "Hara_kiri_engraver"
538 TabVoiceContext = \translator {
542 \consists "Tab_note_heads_engraver"
544 Slur \override #'font-family = #'roman
545 Slur \override #'molecule-callback = #hammer-molecule-callback
546 Slur \override #'direction = #-1
548 % Draws all stems/beams out of the staff (and not in the middle of the staff !)
549 % This feature is now disabled because most of the tab does not use it.
550 %Beam \override #'damping = #100000
551 %Stem \override #'up-to-staff = ##t
553 % No accidental in tablature !
554 \remove Accidental_engraver
557 TabStaffContext = \translator {
563 \description "Context for generating tablature. [DOCME]"
568 StaffSymbol \override #'line-count = #6
569 StaffSymbol \override #'staff-space = #1.5
571 % Don't draw stems over the tablature figures !
572 Stem \override #'avoid-note-head = ##t
574 % No accidental in tablature !
575 \remove Accidental_engraver
579 clefGlyph = #"clefs-tab"