]> git.donarmstrong.com Git - lilypond.git/blob - ly/engraver-init.ly
* scm/define-music-types.scm (music-descriptions): idem.
[lilypond.git] / ly / engraver-init.ly
1 \version "1.9.1"
2
3
4
5 %
6 % setup for Request->Element conversion. Guru-only
7 %
8
9 StaffContext=\translator {
10         \type "Engraver_group_engraver"
11         \name Staff
12
13         \description "Handles clefs, bar lines, keys, accidentals.  It can contain
14 @code{Voice} contexts."
15
16         
17         \consists "Output_property_engraver"    
18         
19         \consists "Bar_engraver"
20  % Bar_engraver must be first so default bars aren't overwritten
21 % with empty ones.
22         \consists "Font_size_engraver"
23
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"
30
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"
45
46         minimumVerticalExtent = #'(-6 . 6)
47         extraVerticalExtent = ##f
48         verticalExtent = ##f 
49         localKeySignature = #'()
50
51         % explicitly set instrument, so we don't get 
52         % weird effects when doing instrument names for
53         % piano staves
54
55         instrument = #'()
56         instr = #'()
57           
58         \accepts "Voice"
59 }
60
61
62 StaffContainerContext = \translator {
63         \type Engraver_group_engraver
64         \consists "Axis_group_engraver"
65         minimumVerticalExtent = ##f
66         extraVerticalExtent = ##f
67         verticalExtent = ##f 
68         localKeySignature = #'()
69
70         \accepts Staff
71         \name StaffContainer
72 }
73
74 InnerChoirStaffContext = \translator {
75         \type "Engraver_group_engraver"
76         \name InnerChoirStaff
77         \consists "System_start_delimiter_engraver"
78         systemStartDelimiter = #'SystemStartBracket
79         localKeySignature = #'()
80
81         \accepts "Staff"
82         \accepts "RhythmicStaff"
83         \accepts "GrandStaff"
84         \accepts "PianoStaff"
85         \accepts "Lyrics"
86         \accepts "ChordNames"
87 }
88
89 ChoirStaffContext = \translator {
90         \InnerChoirStaffContext
91         \name ChoirStaff
92         
93         \description "Identical to @code{StaffGroup} except that the
94     contained staves are not connected vertically."
95         
96         \accepts "InnerChoirStaff"
97         \accepts "InnerStaffGroup"
98 }
99
100
101 RhythmicStaffContext=\translator{
102         \type "Engraver_group_engraver"
103         
104         \consists "Output_property_engraver"    
105
106 \description  "
107     A context like @code{Staff} but for printing rhythms.  Pitches are
108     ignored; the notes are printed on one line.  
109 "
110         minimumVerticalExtent = ##f
111         extraVerticalExtent = ##f
112         verticalExtent = ##f 
113         localKeySignature = #'()
114
115         \consists "Pitch_squash_engraver"
116         \consists "Separating_line_group_engraver"      
117         \name RhythmicStaff
118         \alias "Staff"
119         
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 
124
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"
135         \accepts "Voice"
136 }
137
138
139 VoiceContext = \translator {
140         \type "Engraver_group_engraver"
141         \name Voice
142
143 \description "
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.
147
148     You have to instantiate this explicitly if you want to have
149     multiple voices on the same staff."
150
151         localKeySignature = #'()
152         \consists "Font_size_engraver"
153         
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"
161
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"
176
177 %{
178  Must come before text_engraver, but after note_column engraver.
179
180 %}
181         \consists "Text_engraver"
182         \consists "Dynamic_engraver"
183         \consists "Fingering_engraver"
184
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 "Tuplet_engraver"
193         \consists "A2_engraver"
194
195         \consists "Skip_event_swallow_translator"
196         \accepts Thread % bug if you leave out this!
197 }
198
199 ThreadContext = \translator{
200         \type Engraver_group_engraver
201         \name Thread
202         localKeySignature = #'()
203 \description "
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.
207 "
208         \consists "Font_size_engraver"  
209         \consists "Thread_devnull_engraver"
210         \consists "Note_heads_engraver"
211         \consists "Rest_engraver"
212
213         % why here ? 
214         \consists "Output_property_engraver"    
215
216 }
217
218
219
220 GrandStaffContext=\translator{
221         \type "Engraver_group_engraver"
222         \name GrandStaff
223         localKeySignature = #'()
224         
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.  "
228
229         \consists "Span_bar_engraver"
230         \consists "Span_arpeggio_engraver"
231         \consists "System_start_delimiter_engraver"
232         systemStartDelimiter = #'SystemStartBrace
233
234         \accepts "Staff"
235 }
236
237 PianoStaffContext = \translator{
238         \GrandStaffContext
239         \name "PianoStaff"
240         \alias "GrandStaff"
241 \description "
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
248
249         \consists "Vertical_align_engraver"
250         \consists "Instrument_name_engraver"
251         
252         instrument = #'()
253         instr = #'()
254         
255 %       \consistsend "Axis_group_engraver"
256 }
257
258 InnerStaffGroupContext= \translator {
259         \type "Engraver_group_engraver"
260         \name InnerStaffGroup
261         localKeySignature = #'()
262
263         \consists "Span_bar_engraver"
264         \consists "Span_arpeggio_engraver"
265         \consists "Output_property_engraver"    
266         systemStartDelimiter = #'SystemStartBracket
267
268         \consists "System_start_delimiter_engraver"
269         \accepts "Staff"
270         \accepts "RhythmicStaff"
271         \accepts "GrandStaff"
272         \accepts "PianoStaff"
273         \accepts "TabStaff"     
274         \accepts "Lyrics"
275         \accepts "ChordNames"
276 }
277
278 StaffGroupContext = \translator {
279         \InnerStaffGroupContext
280         \name StaffGroup
281         
282         \description
283
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.
287 "
288         
289         \accepts "InnerChoirStaff"
290         \accepts "ChoirStaff"
291         \accepts "InnerStaffGroup"
292         \accepts "FiguredBass"
293 }
294
295
296 % UGH! JUNKME
297 LyricsVoiceContext= \translator{
298         \type "Engraver_group_engraver"
299         \consistsend "Hara_kiri_engraver"
300         minimumVerticalExtent = #'(-1.2 . 2.4)
301         extraVerticalExtent = ##f
302         verticalExtent = ##f
303
304         \description "
305     Corresponds to a voice with lyrics.  Handles the printing of a
306     single line of lyrics.
307 "
308         
309         \name LyricsVoice 
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 = #".,:!?\""
317         SeparationItem \set #'padding = #0.5
318 }
319 NoteNamesContext = \translator {
320         \type "Engraver_group_engraver"
321         \name NoteNames
322         \consistsend "Axis_group_engraver"
323
324         minimumVerticalExtent = ##f
325         extraVerticalExtent = ##f
326         verticalExtent = ##f 
327
328         
329         \consists "Note_name_engraver"
330         \consists "Separating_line_group_engraver"
331 }
332
333 LyricsContext = \translator {
334         \type "Engraver_group_engraver"
335         \name Lyrics
336         \description  "Typesets lyrics."
337         %% To get folded repeats right.
338         \consists Vertical_align_engraver 
339
340         \consistsend "Hara_kiri_engraver"
341         minimumVerticalExtent = ##f
342         extraVerticalExtent = ##f
343         verticalExtent = ##f 
344         
345         \accepts "LyricsVoice"
346 }
347
348
349 ChordNamesContext = \translator {
350         \type "Engraver_group_engraver"
351         \name ChordNames
352 \description "    Typesets chord names."
353         
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
362         verticalExtent = ##f 
363 }
364
365
366 RemoveEmptyStaffContext = \translator {
367         \StaffContext
368         \remove "Axis_group_engraver"
369         \consistsend "Hara_kiri_engraver"
370         \consists "Instrument_name_engraver"
371         \accepts "Voice"
372
373         % hara kiri & auto knee don't work together.
374         Beam \override #'auto-knee-gap = #'()
375 }
376
377 RemoveEmptyStaffContext = \translator {
378         \RemoveEmptyStaffContext
379         \accepts "VaticanaVoice"
380         \accepts "GregorianTranscriptionVoice"
381 }
382
383 ScoreContext = \translator {
384         \type Score_engraver
385         \name Score
386         localKeySignature = #'()
387
388         \description "This is the top level notation context.  No
389     other context can contain a @code{Score} context.  This context
390     handles the administration of time signatures.  It also makes sure
391     that items such as clefs, time signatures, and key-signatures are
392     aligned across staves.
393
394     You cannot explicitly instantiate a Score context (since it is
395     not contained in any other context).  It is instantiated
396     automatically when an output definition (a @code{\score} or
397     @code{\paper} block) is processed."
398         
399         \consists "Repeat_acknowledge_engraver"
400         \consists "Staff_collecting_engraver"
401
402         % move the alias along with the engraver.
403
404         %% TODO? add this alias from Timing_engraver::initialize() ? 
405         \consists "Timing_engraver"
406         \alias "Timing"
407         
408         \consists "Output_property_engraver"
409         \consists "System_start_delimiter_engraver"
410         \consists "Mark_engraver"       
411         \consists "Metronome_mark_engraver"     
412         \consists "Break_align_engraver"
413         \consists "Spacing_engraver"
414         \consists "Vertical_align_engraver"
415         \consists "Lyric_phrasing_engraver"
416         \consists "Bar_number_engraver"
417         \consists "Span_arpeggio_engraver"
418
419         \accepts "Staff"
420         \accepts "TabStaff"
421         \accepts "VaticanaStaff"
422         \accepts "GregorianTranscriptionStaff"
423         \accepts "StaffContainer"
424         \accepts "StaffGroup"
425         \accepts "RhythmicStaff"
426         \accepts "Lyrics"
427         \accepts "ChordNames"
428         \accepts "GrandStaff"
429         \accepts "ChoirStaff"
430         \accepts "PianoStaff"
431         \accepts "NoteNames"
432         \accepts "FiguredBass"
433
434         soloText = #"Solo"
435         soloIIText = #"Solo II"
436         aDueText = #"a2"
437         soloADue = ##t
438         splitInterval = #'(0 . 1)
439         changeMoment = #`(,(ly:make-moment 0 0) . ,(ly:make-moment 1 512))
440         systemStartDelimiter =#'SystemStartBar
441
442
443         clefGlyph = #"clefs-G"
444         clefPosition = #-2
445         centralCPosition = #-6
446         
447         automaticPhrasing = ##t
448         automaticMelismata = ##t
449         
450         defaultBarType = #"|"
451         barNumberVisibility = #default-bar-number-visibility
452         automaticBars = ##t
453         
454         explicitClefVisibility = #all-visible
455         explicitKeySignatureVisibility = #all-visible
456         autoBeamSettings = #default-auto-beam-settings
457         autoBeaming = ##t
458         scriptDefinitions = #default-script-alist
459
460         verticalAlignmentChildCallback = #Align_interface::alignment_callback
461
462         pedalSustainStrings = #'("Ped." "*Ped." "*")
463         pedalSustainStyle = #'text
464         pedalUnaCordaStrings = #'("una corda" "" "tre corde")
465         pedalUnaCordaStyle = #'text
466
467         %% These are in ordinary italic font, including the *,
468         %% but they are unlikely to be used, 
469         %% as the default pedal-style for SostenutoPedal is 'mixed':
470         %% i.e.  Sost. Ped_____________________ 
471         pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") 
472         pedalSostenutoStyle = #'mixed
473
474         
475         tupletNumberFormatFunction = #denominator-tuplet-formatter
476         
477         subdivideBeams = ##f
478         allowBeamBreak = ##f
479         extraNatural = ##t
480         autoAccidentals = #'(Staff (same-octave . 0))
481         autoCautionaries = #'()  
482
483        keyAccidentalOrder = #'(
484          (6 . -1) (2  . -1) (5 . -1 ) (1  . -1) (4  . -1) (0  . -1) (3  . -1)
485          (3  . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
486          (6 . -2) (2  . -2) (5 . -2 ) (1  . -2) (4  . -2) (0  . -2) (3 . -2)
487          (3  . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2)
488         )
489         breakAlignOrder = #'(
490           instrument-name
491           left-edge
492           ambitus
493           breathing-sign
494           clef
495           staff-bar
496           key-signature
497           time-signature
498           custos
499         )
500         barCheckSynchronize = ##t
501
502         %% chord names:
503         chordNameFunction = #ignatzek-chord-names
504         majorSevenSymbol = #whiteTriangleMarkup
505         chordNameSeparator = #(make-simple-markup  "/")
506         chordNameExceptions = #ignatzekExceptions
507         chordNoteNamer = #'()
508         chordRootNamer = #note-name->markup
509
510         chordNameExceptionsFull = #fullJazzExceptions
511         chordNameExceptionsPartial = #partialJazzExceptions
512         
513         %% tablature:
514         stringOneTopmost = ##t
515         highStringOne = ##t
516
517         %% One may change the strings tuning as following :
518         %% The lenght of the list must be equal to the number of string
519         stringTunings   = #guitar-tunings
520         tablatureFormat = #fret-number-tablature-format
521
522         %%
523         bassFigureFormatFunction = #make-bass-figure-markup
524         metronomeMarkFormatter = #make-metronome-markup
525
526         \grobdescriptions #all-grob-descriptions
527 }
528
529 OrchestralScoreContext= \translator {
530         \ScoreContext
531 }
532
533 EasyNotation =  \translator {
534         \ScoreContext
535         NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
536 }
537
538
539
540 FiguredBassContext = \translator {
541         \type "Engraver_group_engraver"
542         \name FiguredBass 
543         \consists "Figured_bass_engraver"
544         \consists "Rest_swallow_translator"
545         \consists "Note_swallow_translator"
546         \consists "Separating_line_group_engraver"
547         
548         \consistsend "Hara_kiri_engraver"
549 }
550
551 TabVoiceContext =   \translator {
552       \VoiceContext
553       \name "TabVoice"
554       \denies "Thread"
555       \consists "Tab_note_heads_engraver"
556       \remove "Fingering_engraver"
557       \remove "New_fingering_engraver"
558       
559       Slur \override #'font-family       = #'roman
560       Slur \override #'molecule-callback = #hammer-molecule-callback
561       Slur \override #'direction    = #-1
562
563       % Draws all stems/beams out of the staff (and not in the middle of the staff !)
564       % This feature is now disabled because most of the tab does not use it.
565       %Beam \override #'damping = #100000
566       %Stem \override #'up-to-staff = ##t
567
568       % No accidental in tablature !
569       \remove Accidental_engraver
570 }
571
572 TabStaffContext = \translator {
573       \StaffContext
574       \alias "Staff"
575       \name "TabStaff"
576       \denies "Voice"
577
578       \description "Context for generating tablature. [DOCME]"
579       
580       \accepts "TabVoice"
581       
582       % 6 strings
583       StaffSymbol \override #'line-count  = #6
584       StaffSymbol \override #'staff-space = #1.5
585
586      % Don't draw stems over the tablature figures !
587       Stem \override #'avoid-note-head = ##t
588       
589       % No accidental in tablature !
590       \remove Accidental_engraver
591       \remove Key_engraver
592
593       % Special "TAB" clef
594       clefGlyph = #"clefs-tab"
595       clefPosition = #0
596 }
597
598 % TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
599 % but this does not work (is this a bug or intended behaviour?):
600 %
601 % If I try to do so, I get "error: unknown escaped string:
602 % `\VaticanaStaffContext'" in params-init.ly.  If I also move
603 % "\translator { \Vaticana*Context }" from params-init.ly to the end
604 % of gregorian-init.ly, then I get "error: parse error, unexpected
605 % TRANSLATOR: \translator { \VaticanaStaffContext }" in
606 % gregorian-init.ly. --jr
607
608 VaticanaVoiceContext = \translator {
609   \VoiceContext
610   \name "VaticanaVoice"
611   \alias "Voice"
612   \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
613
614   % We can not remove Slur_engraver, since \addlyrics depends on it.
615   % Instead, we make the grob transparent.
616   % Unfortunately, this gives us a lot of warnings ("Degenerate bow:
617   % infinite steepness reqd"), since in ligatures, all note heads are in
618   % the same paper column such that the (transparent) slurs eventually may
619   % start and end in the same column.
620   Slur \override #'transparent = ##t
621
622   % We can not remove Stem_engraver, since slurs depend on stems.  If
623   % we try anyway, lily will crash in slur.scm:16:6: "Wrong type argument
624   % in position 1 (expecting grob): ()".
625   % As a workaround, we make the grob transparent.
626   Stem \set #'transparent = ##t
627
628   % Since we do not remove stems, but only make it transparent, we have
629   % to set the length to 0.0.  Otherwise, articulation marks (such as
630   % ictus, circulus or accentus) may be vertically placed quite away from
631   % the note head.
632   Stem \set #'length = #'0.0
633
634   \remove "Ligature_bracket_engraver"
635   \consists "Vaticana_ligature_engraver"
636
637   % Set default head for notes outside of \[ \].
638   NoteHead \set #'style = #'vaticana_punctum
639
640   % Put some space before and after divisiones.
641   % FIXME: This does not seem to show any effect.
642   Script \set #'padding = #0.5
643
644   % There are no beams in Gregorian Chant notation.
645   autobeaming = ##f
646
647   % Prepare TextSpanner for \episem{Initium|Finis} use.
648   TextSpanner \set #'style = #'line
649   TextSpanner \set #'edge-height = #'(0 . 0)
650   TextSpanner \set #'padding = #0.5
651   TextSpanner \set #'enclose-bounds = ##t
652   TextSpanner \set #'edge-text = #'("" . "")
653 }
654
655 VaticanaStaffContext = \translator {
656   \StaffContext
657   \name "VaticanaStaff"
658   \alias "Staff"
659   \denies "Voice"
660   \accepts "VaticanaVoice"
661   \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
662
663   \remove "Time_signature_engraver"
664   \consists "Custos_engraver"
665
666   % We can not remove Bar_engraver; otherwise clefs and custodes will
667   % not show up any more among other line breaking issues.
668   % Instead, we make the grob transparent.
669   BarLine \set #'transparent = ##t
670
671   StaffSymbol \set #'line-count = #4
672
673   % FIXME: unit on StaffSymbol's width should be \linewidth.
674   % StaffSymbol \set #'width = #60.0
675
676   % Choose vaticana do clef on 3rd line as default.
677   clefGlyph = #"clefs-vaticana_do"
678   centralCPosition = #1
679   clefPosition = #1
680   clefOctavation = #0
681
682   % Select vaticana style font.
683   KeySignature \set #'style = #'vaticana
684   Accidental \set #'style = #'vaticana
685   Custos \set #'style = #'vaticana
686   Custos \set #'neutral-position = #3
687   Custos \set #'neutral-direction = #-1
688   Custos \set #'adjust-if-on-staffline = ##t
689
690   % Score.timing = ##f
691   % Score.barAlways = ##t
692 }
693
694 GregorianTranscriptionVoiceContext = \translator {
695   \VoiceContext
696   \name "GregorianTranscriptionVoice"
697   \alias "Voice"
698
699   % Removing ligature bracket engraver without replacing it by some
700   % other ligature engraver would cause a "Junking event: `LigatureEvent'"
701   % warning for every "\[" and "\]".  Therefore, we make the grob
702   % transparent instead.
703   LigatureBracket \set #'transparent = ##t
704
705   % We can not remove Slur_engraver, since \addlyrics depends on it.
706   % Instead, we make the grob transparent.
707   % Unfortunately, this gives us a lot of warnings ("Degenerate bow:
708   % infinite steepness reqd"), since in ligatures, all note heads are in
709   % the same paper column such that the (transparent) slurs eventually may
710   % start and end in the same column.
711   Slur \override #'transparent = ##t
712
713   % We can not remove Stem_engraver, since slurs depend on stems.  If
714   % we try anyway, lily will crash in slur.scm:16:6: "Wrong type argument
715   % in position 1 (expecting grob): ()".
716   % As a workaround, we make the grob transparent.
717   Stem \set #'transparent = ##t
718
719   % Since we do not remove stems, but only make it transparent, we have
720   % to set the length to 0.0.  Otherwise, articulation marks (such as
721   % ictus, circulus or accentus) may be vertically placed quite away from
722   % the note head.
723   Stem \set #'length = #'0.0
724
725   % Put some space before and after divisiones.
726   % FIXME: This does not seem to show any effect.
727   Script \set #'padding = #0.5
728
729   % There are no beams in Gregorian Chant notation.
730   autobeaming = ##f
731
732   % Prepare TextSpanner for \episem{Initium|Finis} use.
733   TextSpanner \set #'style = #'line
734   TextSpanner \set #'edge-height = #'(0 . 0)
735   TextSpanner \set #'padding = #0.5
736   TextSpanner \set #'enclose-bounds = ##t
737   TextSpanner \set #'edge-text = #'("" . "")
738 }
739
740 GregorianTranscriptionStaffContext = \translator {
741   \StaffContext
742   \name "GregorianTranscriptionStaff"
743   \alias "Staff"
744   \denies "Voice"
745   \accepts "GregorianTranscriptionVoice"
746
747   % We can not remove Bar_engraver; otherwise clefs and custodes will
748   % not show up any more among other line breaking issues.
749   % Instead, we make the grob transparent.
750   BarLine \set #'transparent = ##t
751 }