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