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 RemoveEmptyStaffContext = \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 = #'()
376 HaraKiriStaffContext = \translator { \RemoveEmptyStaffContext }
378 ScoreContext = \translator {
381 localKeySignature = #'()
383 \description "This is the top level notation context. No
384 other context can contain a @code{Score} context. This context
385 handles the administration of time signatures. It also makes sure
386 that items such as clefs, time signatures, and key-signatures are
387 aligned across staves.
389 You cannot explicitly instantiate a Score context (since it is
390 not contained in any other context). It is instantiated
391 automatically when an output definition (a @code{\score} or
392 @code{\paper} block) is processed."
394 \consists "Repeat_acknowledge_engraver"
395 \consists "Staff_collecting_engraver"
397 % move the alias along with the engraver.
399 %% TODO? add this alias from Timing_engraver::initialize() ?
400 \consists "Timing_engraver"
403 \consists "Output_property_engraver"
404 \consists "System_start_delimiter_engraver"
405 \consists "Mark_engraver"
406 \consists "Metronome_mark_engraver"
407 \consists "Break_align_engraver"
408 \consists "Spacing_engraver"
409 \consists "Vertical_align_engraver"
410 \consists "Lyric_phrasing_engraver"
411 \consists "Bar_number_engraver"
412 \consists "Span_arpeggio_engraver"
416 \accepts "StaffContainer"
417 \accepts "StaffGroup"
418 \accepts "RhythmicStaff"
420 \accepts "ChordNames"
421 \accepts "GrandStaff"
422 \accepts "ChoirStaff"
423 \accepts "PianoStaff"
425 \accepts "FiguredBass"
428 soloIIText = #"Solo II"
431 splitInterval = #'(0 . 1)
432 changeMoment = #`(,(ly:make-moment 0 0) . ,(ly:make-moment 1 512))
433 systemStartDelimiter =#'SystemStartBar
436 clefGlyph = #"clefs-G"
438 centralCPosition = #-6
440 automaticPhrasing = ##t
441 automaticMelismata = ##t
443 defaultBarType = #"|"
444 barNumberVisibility = #default-bar-number-visibility
446 explicitClefVisibility = #all-visible
447 explicitKeySignatureVisibility = #all-visible
448 autoBeamSettings = #default-auto-beam-settings
450 scriptDefinitions = #default-script-alist
452 verticalAlignmentChildCallback = #Align_interface::alignment_callback
454 pedalSustainStrings = #'("Ped." "*Ped." "*")
455 pedalUnaCordaStrings = #'("una corda" "" "tre corde")
457 %% These are in ordinary italic font, including the *,
458 %% but they are unlikely to be used,
459 %% as the default pedal-style for SostenutoPedal is 'mixed':
460 %% i.e. Sost. Ped_____________________
461 pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
463 tupletNumberFormatFunction = #denominator-tuplet-formatter
466 forbidBeamBreak = ##t
468 autoAccidentals = #'(Staff (same-octave . 0))
469 autoCautionaries = #'()
471 keyAccidentalOrder = #'(
472 (6 . -1) (2 . -1) (5 . -1 ) (1 . -1) (4 . -1) (0 . -1) (3 . -1)
473 (3 . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
474 (6 . -2) (2 . -2) (5 . -2 ) (1 . -2) (4 . -2) (0 . -2) (3 . -2)
475 (3 . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
477 breakAlignOrder = #'(
489 barCheckSynchronize = ##t
492 chordNameFunction = #ignatzek-chord-names
493 majorSevenSymbol = #whiteTriangleMarkup
494 chordNameSeparator = #(make-simple-markup "/")
495 chordNameExceptions = #ignatzekExceptions
496 chordNoteNamer = #'()
497 chordRootNamer = #note-name->markup
500 stringOneTopmost = ##t
503 %% One may change the strings tuning as following :
504 %% The lenght of the list must be equal to the number of string
505 stringTunings = #guitar-tunings
506 tablatureFormat = #fret-number-tablature-format
509 bassFigureFormatFunction = #make-bass-figure-markup
510 metronomeMarkFormatter = #make-metronome-markup
512 \grobdescriptions #all-grob-descriptions
515 OrchestralScoreContext= \translator {
519 EasyNotation = \translator {
521 NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
526 FiguredBassContext = \translator {
527 \type "Engraver_group_engraver"
529 \consists "Figured_bass_engraver"
530 \consists "Rest_swallow_translator"
531 \consists "Note_swallow_translator"
532 \consists "Separating_line_group_engraver"
534 \consistsend "Hara_kiri_engraver"
537 TabVoiceContext = \translator {
541 \consists "Tab_note_heads_engraver"
543 Slur \override #'font-family = #'roman
544 Slur \override #'molecule-callback = #hammer-molecule-callback
545 Slur \override #'direction = #-1
547 % Draws all stems/beams out of the staff (and not in the middle of the staff !)
548 % This feature is now disabled because most of the tab does not use it.
549 %Beam \override #'damping = #100000
550 %Stem \override #'up-to-staff = ##t
552 % No accidental in tablature !
553 \remove Accidental_engraver
556 TabStaffContext = \translator {
562 \description "Context for generating tablature. [DOCME]"
567 StaffSymbol \override #'line-count = #6
568 StaffSymbol \override #'staff-space = #1.5
570 % Don't draw stems over the tablature figures !
571 Stem \override #'avoid-note-head = ##t
573 % No accidental in tablature !
574 \remove Accidental_engraver
578 clefGlyph = #"clefs-tab"