]> git.donarmstrong.com Git - lilypond.git/blob - scm/translator-description.scm
release: 1.3.102
[lilypond.git] / scm / translator-description.scm
1
2 (define (engraver-description name description created-elts properties)
3   (list name description created-elts properties)
4   )
5
6 (define (translator-property-description symbol type? description)
7   (list symbol type? description)
8   )
9
10 (define engraver-description-alist
11   (list
12    (cons
13    'Stem_engraver
14    (engraver-description
15     "Stem_engraver"
16     "Create stems and single-stem tremolos"
17     '(Stem StemTremolo)
18     (list
19      (translator-property-description 'tremoloFlags integer? "")
20      (translator-property-description 'stemLeftBeamCount integer? "")
21      (translator-property-description 'stemRightBeamCount integer? "")    
22      )))
23    
24   (cons
25    'Hyphen_engraver
26    (engraver-description
27     "Hyphen_engraver"
28     "Create lyric hyphens"
29     '(LyricHyphen)
30     (list
31      )))
32
33   (cons
34    'Extender_engraver
35    (engraver-description
36     "Extender_engraver"
37     "Create lyric extenders"
38     '(LyricExtender)
39     (list
40      )))
41
42   
43   (cons
44    'Separating_line_group_engraver
45    (engraver-description
46     "Separating_line_group_engraver"
47     "Objects that generate rods and springs for the spacing problem."
48     '(SeparationItem SeparatingGroupSpanner)
49     (list
50      )))
51
52   (cons
53    'Axis_group_engraver
54    (engraver-description
55     "Axis_group_engraver"
56     "Group all objects created in this context in a VerticalAxisGroup spanner."
57     '(VerticalAxisGroup)
58     (list
59      (translator-property-description 'CONTEXTNAMEVerticalExtent number-pair? "hard coded vertical extent [fixme, naming]")
60      (translator-property-description 'CONTEXTNAMEMinimumVerticalExtent number-pair? "minimum vertical extent [fixme, naming]")
61      (translator-property-description 'CONTEXTNAExtraVerticalExtent number-pair? "extra vertical extent [fixme, naming]")          
62      )))
63
64   (cons
65    'Hara_kiri_engraver
66    (engraver-description
67     "Hara_kiri_engraver"
68     "Like Axis_group_engraver, but make a hara kiri spanner, and add
69 interesting items (ie. note heads, lyric syllables and normal rests)"
70     '(HaraKiriVerticalGroup)
71     '()
72     ))
73
74   
75   (cons
76    'Local_key_engraver
77    (engraver-description
78     "Local_key_engraver"
79     "Make accidentals.  Catches note heads, ties and notices key-change
80    events.  Due to interaction with ties (which don't come together
81    with note heads), this needs to be in a context higher than Tie_engraver.
82    (FIXME)."
83     '(Accidentals)
84     (list
85      (translator-property-description 'localKeySignature list? "the key signature at this point  in the measure")
86      (translator-property-description 'forgetAccidentals boolean? "do
87 not set localKeySignature when a note alterated differently from
88 localKeySignature is found.
89 <p>
90 Causes accidentals to be printed at every note instead of
91 remembered for the duration of a measure.
92 ")
93      (translator-property-description 'noResetKey boolean? "Do not
94 reset local key to the value of keySignature at the start of a measure,
95 as determined by measurePosition.<p>
96     Do not reset the key at the start of a measure.  Accidentals will
97     be printed only once and are in effect until overridden, possibly
98     many measures later.
99 ")
100        
101    )))
102
103   
104   (cons
105    'Volta_engraver
106    (engraver-description
107     "Volta_engraver"
108     "Make volta brackets"
109     '(VoltaBracket)
110     (list
111      (translator-property-description 'repeatCommands list?
112 "This property is read to find any command of the form (volta . X), where X is a string or #f")
113      (translator-property-description 'voltaSpannerDuration moment?
114 "maximum duration of the volta bracket.<p>
115
116     Set to a duration to control the size of the brackets printed by
117 @code{\alternative}.  It specifies the number of whole notes duration
118 to use for the brackets.  This can be used to shrink the length of
119 brackets in the situation where one alternative is very large.  It may
120 have odd effects if the specified duration is longer than the music
121 given in an @code{\alternative}.
122 ")
123        )
124    ))
125
126   (cons
127    'Clef_engraver
128    (engraver-description
129     "Clef_engraver"
130     "Determine and set reference point for pitches"
131     '(Clef OctavateEight)
132     (list
133      (translator-property-description 'supportedClefTypes
134                                       list? "Clef settings supported. The value is an association list contain entries (NAME . (GLYPH . POSITION)), where  NAME is the clef name (alto, baritone, etc.), GLYPH the glyph name, POSITION an integer where the center symbol should go.")
135      (translator-property-description 'clefPosition number? " where the center of the symbol should go")
136      (translator-property-description 'clefGlyph string? "name of the symbol within the music font")
137      (translator-property-description 'centralCPosition number? "place of the central C. ")
138      (translator-property-description 'defaultClef string? "generate this clef at the very start of this staff. If not set, don't generate a clef")
139      (translator-property-description 'explicitClefVisibility procedure? "visibility-lambda function for clefs entered as \clef.")
140      (translator-property-description 'clefPitches list? "alist mapping GLYPHNAME to the position of the central C for that symbol")
141
142      )))
143
144
145   ))