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 "Ligature_bracket_engraver"
162 \consists "Breathing_sign_engraver"
163 % \consists "Rest_engraver"
164 \consists "Stem_engraver"
165 \consists "Beam_engraver"
166 \consists "Grace_beam_engraver"
167 \consists "Auto_beam_engraver"
168 \consists "New_fingering_engraver"
169 \consists "Chord_tremolo_engraver"
170 \consists "Percent_repeat_engraver"
171 \consists "Slash_repeat_engraver"
172 \consists "Melisma_engraver"
175 Must come before text_engraver, but after note_column engraver.
178 \consists "Text_engraver"
179 \consists "Dynamic_engraver"
180 \consists "Fingering_engraver"
182 \consists "Script_engraver"
183 \consists "Script_column_engraver"
184 \consists "Rhythmic_column_engraver"
185 \consists "Phrasing_slur_engraver"
186 \consists "Cluster_engraver"
187 \consists "Slur_engraver"
188 \consists "Tie_engraver"
189 \consists "New_tie_engraver"
190 \consists "Tuplet_engraver"
191 \consists "A2_engraver"
193 \consists "Skip_event_swallow_translator"
194 \accepts Thread % bug if you leave out this!
197 ThreadContext = \translator{
198 \type Engraver_group_engraver
200 localKeySignature = #'()
202 Handles note heads, and is contained in the Voice context. You
203 have to instantiate this explicitly if you want to adjust the
204 style of individual note heads.
206 \consists "Font_size_engraver"
207 \consists "Thread_devnull_engraver"
208 \consists "Note_heads_engraver"
209 \consists "Rest_engraver"
212 \consists "Note_head_line_engraver"
213 \consists "Output_property_engraver"
219 GrandStaffContext=\translator{
220 \type "Engraver_group_engraver"
222 localKeySignature = #'()
224 \description " A group of staffs, with a brace on the left
225 side, grouping the staves together. The bar lines of the
226 contained staves are connected vertically. "
228 \consists "Span_bar_engraver"
229 \consists "Span_arpeggio_engraver"
230 \consists "System_start_delimiter_engraver"
231 systemStartDelimiter = #'SystemStartBrace
236 PianoStaffContext = \translator{
241 Just like @code{GrandStaff} but with @code{minVerticalAlign} set
242 equal to @code{maxVerticalAlign} so that interstaff beaming and
243 slurring can be used."
244 verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
245 VerticalAlignment \override #'forced-distance = #12
246 VerticalAlignment \override #'self-alignment-Y = #0
248 \consists "Vertical_align_engraver"
249 \consists "Instrument_name_engraver"
254 % \consistsend "Axis_group_engraver"
257 InnerStaffGroupContext= \translator {
258 \type "Engraver_group_engraver"
259 \name InnerStaffGroup
260 localKeySignature = #'()
262 \consists "Span_bar_engraver"
263 \consists "Span_arpeggio_engraver"
264 \consists "Output_property_engraver"
265 systemStartDelimiter = #'SystemStartBracket
267 \consists "System_start_delimiter_engraver"
269 \accepts "RhythmicStaff"
270 \accepts "GrandStaff"
271 \accepts "PianoStaff"
274 \accepts "ChordNames"
277 StaffGroupContext = \translator {
278 \InnerStaffGroupContext
283 " Groups staffs while adding a bracket on the left side,
284 grouping the staves together. The bar lines of the contained
285 staves are connected vertically.
288 \accepts "InnerChoirStaff"
289 \accepts "ChoirStaff"
290 \accepts "InnerStaffGroup"
291 \accepts "FiguredBass"
296 LyricsVoiceContext= \translator{
297 \type "Engraver_group_engraver"
298 \consistsend "Hara_kiri_engraver"
299 minimumVerticalExtent = #'(-1.2 . 1.2)
300 extraVerticalExtent = ##f
304 Corresponds to a voice with lyrics. Handles the printing of a
305 single line of lyrics.
309 \consists "Separating_line_group_engraver"
310 \consists "Lyric_engraver"
311 \consists "Extender_engraver"
312 \consists "Hyphen_engraver"
313 \consists "Stanza_number_engraver"
314 \consists "Skip_event_swallow_translator"
315 phrasingPunctuation = #".,:!?\""
318 NoteNamesContext = \translator {
319 \type "Engraver_group_engraver"
321 \consistsend "Axis_group_engraver"
323 minimumVerticalExtent = ##f
324 extraVerticalExtent = ##f
328 \consists "Note_name_engraver"
329 \consists "Separating_line_group_engraver"
332 LyricsContext = \translator {
333 \type "Engraver_group_engraver"
335 \description "Typesets lyrics."
336 %% To get folded repeats right.
337 \consists Vertical_align_engraver
339 \consistsend "Hara_kiri_engraver"
340 minimumVerticalExtent = ##f
341 extraVerticalExtent = ##f
344 \accepts "LyricsVoice"
348 ChordNamesContext = \translator {
349 \type "Engraver_group_engraver"
351 \description " Typesets chord names."
353 \consists "Rest_swallow_translator"
354 \consists "Output_property_engraver"
355 \consists "Separating_line_group_engraver"
356 \consists "Chord_name_engraver"
357 \consists "Skip_event_swallow_translator"
358 \consistsend "Hara_kiri_engraver"
359 minimumVerticalExtent = #'(0 . 2.5)
360 extraVerticalExtent = ##f
365 HaraKiriStaffContext = \translator {
367 \remove "Axis_group_engraver"
368 \consistsend "Hara_kiri_engraver"
369 \consists "Instrument_name_engraver"
372 % hara kiri & auto knee don't work together.
373 Beam \override #'auto-knee-gap = #'()
377 The HaraKiriStaffContexts doesn't override \name,
378 so it is still named `Staff'.
380 %\translator { \HaraKiriStaffContext }
386 ScoreContext = \translator {
389 localKeySignature = #'()
391 \description "This is the top level notation context. No
392 other context can contain a @code{Score} context. This context
393 handles the administration of time signatures. It also makes sure
394 that items such as clefs, time signatures, and key-signatures are
395 aligned across staves.
397 You cannot explicitly instantiate a Score context (since it is
398 not contained in any other context). It is instantiated
399 automatically when an output definition (a @code{\score} or
400 @code{\paper} block) is processed."
402 \consists "Repeat_acknowledge_engraver"
403 \consists "Staff_collecting_engraver"
405 % move the alias along with the engraver.
407 %% TODO? add this alias from Timing_engraver::initialize() ?
408 \consists "Timing_engraver"
411 \consists "Output_property_engraver"
412 \consists "System_start_delimiter_engraver"
413 \consists "Mark_engraver"
414 \consists "Metronome_mark_engraver"
415 \consists "Break_align_engraver"
416 \consists "Spacing_engraver"
417 \consists "Vertical_align_engraver"
418 \consists "Lyric_phrasing_engraver"
419 \consists "Bar_number_engraver"
420 \consists "Span_arpeggio_engraver"
424 \accepts "StaffContainer"
425 \accepts "StaffGroup"
426 \accepts "RhythmicStaff"
428 \accepts "ChordNames"
429 \accepts "GrandStaff"
430 \accepts "ChoirStaff"
431 \accepts "PianoStaff"
433 \accepts "FiguredBass"
436 soloIIText = #"Solo II"
439 splitInterval = #'(0 . 1)
440 changeMoment = #`(,(ly:make-moment 0 0) . ,(ly:make-moment 1 512))
441 systemStartDelimiter =#'SystemStartBar
444 clefGlyph = #"clefs-G"
446 centralCPosition = #-6
448 automaticPhrasing = ##t
449 automaticMelismata = ##t
451 defaultBarType = #"|"
452 barNumberVisibility = #default-bar-number-visibility
454 explicitClefVisibility = #all-visible
455 explicitKeySignatureVisibility = #all-visible
456 autoBeamSettings = #default-auto-beam-settings
458 scriptDefinitions = #default-script-alist
460 verticalAlignmentChildCallback = #Align_interface::alignment_callback
462 pedalSustainStrings = #'("Ped." "*Ped." "*")
463 pedalUnaCordaStrings = #'("una corda" "" "tre corde")
465 %% These are in ordinary italic font, including the *,
466 %% but they are unlikely to be used,
467 %% as the default pedal-style for SostenutoPedal is 'mixed':
468 %% i.e. Sost. Ped_____________________
469 pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
471 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 = #'(
496 barCheckSynchronize = ##t
499 chordNameFunction = #ignatzek-chord-names
500 majorSevenSymbol = #whiteTriangleMarkup
501 chordNameSeparator = #(make-simple-markup "/")
502 chordNameExceptions = #ignatzekExceptions
503 chordNoteNamer = #'()
504 chordRootNamer = #note-name->markup
507 stringOneTopmost = ##t
510 %% One may change the strings tuning as following :
511 %% The lenght of the list must be equal to the number of string
512 stringTunings = #guitar-tunings
513 tablatureFormat = #fret-number-tablature-format
516 bassFigureFormatFunction = #make-bass-figure-markup
517 metronomeMarkFormatter = #make-metronome-markup
519 \grobdescriptions #all-grob-descriptions
522 OrchestralScoreContext= \translator {
526 EasyNotation = \translator {
528 NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
533 FiguredBassContext = \translator {
534 \type "Engraver_group_engraver"
536 \consists "Figured_bass_engraver"
537 \consists "Rest_swallow_translator"
538 \consists "Note_swallow_translator"
539 \consists "Separating_line_group_engraver"
541 \consistsend "Hara_kiri_engraver"
544 TabVoiceContext = \translator {
548 \consists "Tab_note_heads_engraver"
550 Slur \override #'font-family = #'roman
551 Slur \override #'molecule-callback = #hammer-molecule-callback
552 Slur \override #'direction = #-1
554 % Draws all stems/beams out of the staff (and not in the middle of the staff !)
555 % This feature is now disabled because most of the tab does not use it.
556 %Beam \override #'damping = #100000
557 %Stem \override #'up-to-staff = ##t
559 % No accidental in tablature !
560 \remove Accidental_engraver
563 TabStaffContext = \translator {
569 \description "Context for generating tablature. [DOCME]"
574 StaffSymbol \override #'line-count = #6
575 StaffSymbol \override #'staff-space = #1.5
577 % Don't draw stems over the tablature figures !
578 Stem \override #'avoid-note-head = ##t
580 % No accidental in tablature !
581 \remove Accidental_engraver
585 clefGlyph = #"clefs-tab"