More notes, and major code optimizations.
[opera_libre.git] / definitions / layout.ly
blobf13437aeff66429b1cb185dfea7f39f2883a963a
1 %------------------------------------------------------------------%
2 % Opéra Libre -- layout.ly %
3 % %
4 % (c) Valentin Villenave, 2008 %
5 % %
6 %------------------------------------------------------------------%
8 %%%%%%%%%%%%%%%%%%%%%%%%%%% Score Layout %%%%%%%%%%%%%%%%%%%%%%%%%%%
10 includeLayout = \layout {
11 %% Spacing Variables ----------------------------------------------%
12 indent = 2.0\cm
13 \context {
14 \Staff
15 \remove "Axis_group_engraver"
16 \consists "Hara_kiri_engraver"
17 \accepts "Lyrics"
18 \override Beam #'auto-knee-gap = #'()
19 \override VerticalAxisGroup #'remove-empty = ##t
21 \context { \RhythmicStaff
22 \remove "Time_signature_engraver"
23 \remove "Axis_group_engraver"
24 \override VerticalAxisGroup #'remove-empty = ##t
25 \consists "Hara_kiri_engraver"
27 \context { \DrumStaff
28 \remove "Time_signature_engraver"
29 \remove "Axis_group_engraver"
30 \override VerticalAxisGroup #'remove-empty = ##t
31 \consists "Hara_kiri_engraver"
33 \context {
34 \Score
35 \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 5)
38 %% Notation Rules -------------------------------------------------%
39 \context {
40 \Score
41 \override TimeSignature #'style = #'()
42 \override SystemStartBracket #'collapse-height = #1
43 \override SystemStartBrace #'collapse-height = #1
44 \override PaperColumn #'keep-inside-line = ##t
45 \override NonMusicalPaperColumn #'keep-inside-line = ##t
46 autoBeamSettings = #modern-auto-beam-settings
47 autoAccidentals = #modern-style
48 ignoreMelismata = ##t
51 %% Text inclusion -------------------------------------------------%
52 \context {
53 \type "Engraver_group"
54 \name "TopLine"
55 \consists "Output_property_engraver"
56 \consists "Axis_group_engraver"
57 \consists "Script_engraver"
58 \consists "Dynamic_engraver"
59 \consists "Text_engraver"
60 \consists "Text_spanner_engraver"
61 \consists "Metronome_mark_engraver"
62 \override VerticalAxisGroup #'minimum-Y-extent = #'(-0 . 0 )
64 \context {
65 \Score
66 \remove "Metronome_mark_engraver"
67 \accepts "TopLine"
68 \override RehearsalMark #'side-axis = #Y
69 \override RehearsalMark #'direction = #UP
70 \override RehearsalMark #'outside-staff-priority = #900
71 \override RehearsalMark #'self-alignment-X = #left
72 \override MetronomeMark #'side-axis = #Y
73 \override MetronomeMark #'direction = #DOWN
74 \override TextScript #'outside-staff-priority = #900
75 \override TextSpanner #'outside-staff-priority = #1000
78 \context {
79 \Lyrics
80 \remove "Instrument_name_engraver"
82 %% Look and feel --------------------------------------------------%
83 \context {
84 \Score
85 \override Accidental #'minimum-X-extent = #'(-0.2 . 0 )
86 \override BarLine #'hair-thickness = #1.2
87 \override OttavaBracket #'dash-fraction = #0.3
88 \override OttavaBracket #'dash-period = #0.9
89 \override TextSpanner #'dash-fraction = #0.3
90 \override TextSpanner #'dash-period = #0.9
91 \override LyricText #'self-alignment-X = #-0.5
92 markFormatter = #format-mark-box-letters
93 subdivideBeams = ##t
94 beatLength = #(ly:make-moment 1 8)
97 %% Vocal score layout --------------------------------------------%
98 \context {
99 \Staff
100 \type "Engraver_group"
101 \name "StaffUp"
102 \alias Staff
103 \override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 5)
104 \override StaffSymbol #'staff-space = #(magstep -1)
105 fontSize = #-1
107 \context {
108 \StaffUp
109 \type "Engraver_group"
110 \name "StaffDown"
111 \alias Staff
112 \override VerticalAxisGroup #'minimum-Y-extent = #'(-5 . 3)
114 \context {
115 \type "Engraver_group"
116 \name "Dynamics"
117 \alias Voice
118 \consists "Output_property_engraver"
119 \consists "Axis_group_engraver"
120 \consists "Dynamic_engraver"
121 \consists "Skip_event_swallow_translator"
122 \consists "Piano_pedal_engraver"
123 %\consists "Bar_engraver"
124 %\override BarLine #'transparent = ##t
125 \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1)
126 \override TextScript #'font-size = #2
127 \override TextScript #'font-shape = #'italic
128 \override DynamicText #'extra-offset = #'(0 . 2.5)
129 \override Hairpin #'extra-offset = #'(0 . 2.5)
130 pedalSustainStrings = #'("Ped." "*Ped." "*")
131 pedalUnaCordaStrings = #'("una corda" "" "tre corde")
133 \context {
134 \Staff
135 \type "Engraver_group"
136 \name "StaffPiano"
137 \alias Staff
138 \override VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4)
139 \override StaffSymbol #'staff-space = #(magstep -1)
140 fontSize = #-1
142 \context { \PianoStaff
143 \accepts "StaffUp"
144 \accepts "Dynamics"
145 \accepts "StaffDown"
146 \accepts "StaffPiano"
147 connectArpeggios = ##t % to avoid collisions with pianoDynamics
149 \context {
150 \Score
151 \override RehearsalMark #'font-size = #4
152 %\override TimeSignature #'X-extent = #'(0 . 2)
154 %%-----------------------------------------------------------------%
158 %%%%%%%%%%%%%%%%%%%%%%%%% Libretto Layout %%%%%%%%%%%%%%%%%%%%%%%%%%
160 includeLivretLayout = \layout {
161 indent = 2.0\cm
163 %% Special contexts ----------------------------------------------%
164 \context {
165 \ChoirStaff
166 \remove "System_start_delimiter_engraver"
167 \override SystemStartBar #'stencil = ##f
169 \context {
170 \Staff
171 \remove "Accidental_engraver"
172 \remove "Rest_collision_engraver"
173 \remove "Ledger_line_engraver"
174 \remove "Time_signature_engraver"
175 \remove "Key_engraver"
176 \remove "Clef_engraver"
177 \remove "Ottava_spanner_engraver"
178 \remove "Bar_engraver"
179 \remove "Instrument_name_engraver"
180 \override StaffSymbol #'line-count = #1
181 \override StaffSymbol #'color = #(rgb-color 0.9 0.9 0.9)
182 \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1 )
183 %\consists "Hara_kiri_engraver"
184 %\override VerticalAxisGroup #'remove-empty = ##t
186 \context {
187 \Voice
188 \remove "Grace_engraver"
189 \remove "Tuplet_engraver"
190 \remove "Tie_engraver"
191 \remove "Slur_engraver"
192 \remove "Phrasing_slur_engraver"
193 \remove "Script_engraver"
194 \remove "Dynamic_engraver"
195 \remove "New_dynamic_engraver"
196 \remove "Grace_beam_engraver"
197 \remove "Beam_engraver"
198 \remove "Stem_engraver"
199 \remove "Rest_engraver"
200 \remove "Dots_engraver"
201 \remove "Note_heads_engraver"
202 \remove "Breathing_sign_engraver"
203 \remove "Glissando_engraver"
204 \remove "Trill_spanner_engraver"
205 \remove "Text_engraver"
206 \remove "Text_spanner_engraver"
207 \remove "Multi_measure_rest_engraver"
208 \remove "Arpeggio_engraver"
209 \remove "Pitched_trill_engraver"
211 \context {
212 \Score
213 \override SystemStartBar #'stencil = ##f
216 %% Text inclusion -------------------------------------------------%
217 \context {
218 \type "Engraver_group"
219 \name "TopLine"
220 \consists "Output_property_engraver"
221 \consists "Axis_group_engraver"
223 \context {
224 \Score
225 \remove "Metronome_mark_engraver"
226 \accepts "TopLine"
227 \override PaperColumn #'keep-inside-line = ##t
228 \override NonMusicalPaperColumn #'keep-inside-line = ##t
229 \override RehearsalMark #'side-axis = #Y
230 \override RehearsalMark #'direction = #DOWN
231 \override RehearsalMark #'outside-staff-priority = #900
232 \override RehearsalMark #'self-alignment-X = #left
233 \override MetronomeMark #'side-axis = #Y
234 \override MetronomeMark #'direction = #DOWN
235 \override TextScript #'outside-staff-priority = #900
236 \override TextSpanner #'outside-staff-priority = #1000
237 \override TextSpanner #'direction = #DOWN
240 \context {
241 \Lyrics
242 \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1 )
243 \override InstrumentName #'font-family = #'sans
244 \override InstrumentName #'font-series = #'bold
245 \override InstrumentName #'extra-X-extent = #'(0 . 2 )
246 \override InstrumentName #'extra-X-extent = #'(-1 . 1 )
249 %% Additional tweaks ---------------------------------------------%
250 \context {
251 \Score
252 \override BarNumber #'transparent = ##t
254 %%-----------------------------------------------------------------%