]> git.donarmstrong.com Git - lilypond.git/blob - ly/property-init.ly
Merge branch 'lilypond/translation' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond
[lilypond.git] / ly / property-init.ly
1 % property-init.ly
2
3 \version "2.12.0"
4
5 %% for dashed slurs, phrasing slurs, and ties
6 #(define (make-simple-dash-definition dash-fraction dash-period)
7     (list (list 0 1 dash-fraction dash-period)))
8
9
10 %% arpeggios
11
12 % For drawing vertical chord brackets with \arpeggio
13 % This is a shorthand for the value of the print-function property
14 % of either Staff.Arpeggio or PianoStaff.Arpeggio, depending whether
15 % cross-staff brackets are desired.
16
17 arpeggio = #(make-music 'ArpeggioEvent)
18 arpeggioArrowUp = {
19   \revert Arpeggio  #'stencil
20   \revert Arpeggio #'X-extent
21   \override Arpeggio  #'arpeggio-direction = #UP
22 }
23 arpeggioArrowDown = {
24   \revert Arpeggio #'stencil
25   \revert Arpeggio #'X-extent
26   \override Arpeggio  #'arpeggio-direction = #DOWN
27 }
28 arpeggioNormal = {
29   \revert Arpeggio #'stencil
30   \revert Arpeggio #'X-extent
31   \revert Arpeggio #'arpeggio-direction
32   \revert Arpeggio #'dash-definition
33 }
34 arpeggioBracket = {
35   \revert Arpeggio #'X-extent
36   \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-bracket
37 }
38 arpeggioParenthesis = {
39   \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
40   \override Arpeggio #'X-extent = #ly:grob::stencil-width
41   \revert Arpeggio #'dash-definition
42 }
43 arpeggioParenthesisDashed = {
44   \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur
45   \override Arpeggio #'X-extent = #ly:grob::stencil-width
46   \override Arpeggio #'dash-definition = #'((0 1 0.4 0.75))
47 }
48
49
50 %% auto beaming
51
52 autoBeamOn  = \set autoBeaming = ##t
53 autoBeamOff = \set autoBeaming = ##f
54
55
56 %% balloon length
57
58 balloonLengthOn = {
59   \override BalloonTextItem #'extra-spacing-width = #'(0 . 0)
60   \override BalloonTextItem #'extra-spacing-height = #'(-inf.0 . +inf.0)
61 }
62 balloonLengthOff = {
63   \override BalloonTextItem #'extra-spacing-width = #'(+inf.0 . -inf.0)
64   \override BalloonTextItem #'extra-spacing-height = #'(0 . 0)
65 }
66
67
68 %% bass figures
69
70 bassFigureExtendersOn = {
71   \set useBassFigureExtenders = ##t
72   \set Staff.useBassFigureExtenders = ##t
73 }
74 bassFigureExtendersOff = {
75   \set useBassFigureExtenders = ##f
76   \set Staff.useBassFigureExtenders = ##f
77 }
78 bassFigureStaffAlignmentDown =
79   \override Staff.BassFigureAlignmentPositioning #'direction = #DOWN
80 bassFigureStaffAlignmentUp =
81   \override Staff.BassFigureAlignmentPositioning #'direction = #UP
82 bassFigureStaffAlignmentNeutral =
83   \revert Staff.BassFigureAlignmentPositioning #'direction
84
85
86 %% cadenzas
87
88 cadenzaOn  = \set Timing.timing = ##f
89 cadenzaOff = {
90   \set Timing.timing = ##t
91   \set Timing.measurePosition = #ZERO-MOMENT
92 }
93
94
95 %% chord names
96
97 frenchChords = {
98   \set chordRootNamer = #(chord-name->italian-markup #t)
99   \set chordPrefixSpacer = #0.4
100 }
101 germanChords = {
102   \set chordRootNamer = #(chord-name->german-markup #t)
103   \set chordNoteNamer = #note-name->german-markup
104 }
105 semiGermanChords = {
106   \set chordRootNamer = #(chord-name->german-markup #f)
107   \set chordNoteNamer = #note-name->german-markup
108 }
109 italianChords = {
110   \set chordRootNamer = #(chord-name->italian-markup #f)
111   \set chordPrefixSpacer = #0.4
112 }
113
114
115 %% compressFullBarRests
116
117 compressFullBarRests = \set Score.skipBars = ##t
118 expandFullBarRests   = \set Score.skipBars = ##f
119
120
121 %% dots
122
123 dotsUp      = \override Dots #'direction = #UP
124 dotsDown    = \override Dots #'direction = #DOWN
125 dotsNeutral = \revert Dots #'direction
126
127
128 %% dynamics
129
130 dynamicUp = {
131   \override DynamicText #'direction = #UP
132   \override DynamicLineSpanner #'direction = #UP
133 }
134 dynamicDown = {
135   \override DynamicText #'direction = #DOWN
136   \override DynamicLineSpanner #'direction = #DOWN
137 }
138 dynamicNeutral = {
139   \revert DynamicText #'direction
140   \revert DynamicLineSpanner #'direction
141 }
142
143
144 %% easy heads
145
146 easyHeadsOn = {
147   \override NoteHead #'stencil = #note-head::brew-ez-stencil
148   \override NoteHead #'font-size = #-8
149   \override NoteHead #'font-family = #'sans
150   \override NoteHead #'font-series = #'bold
151 }
152 easyHeadsOff = {
153   \revert NoteHead #'stencil
154   \revert NoteHead #'font-size
155   \revert NoteHead #'font-family
156   \revert NoteHead #'font-series
157 }
158
159
160 %% endincipit
161
162 %% End the incipit and print a ``normal line start''.
163 endincipit = \context Staff {
164   \partial 16 s16  % Hack to handle e.g. \bar ".|" \endincipit
165   \once \override Staff.Clef #'full-size-change = ##t
166   \once \override Staff.Clef #'non-default = ##t
167   \bar ""
168 }
169
170
171 %% fermata markup
172
173 fermataMarkup =
174 #(make-music 'MultiMeasureTextEvent
175    'tweaks (list
176              ; Set the 'text based on the 'direction
177              (cons 'text (lambda (grob)
178                (if (eq? (ly:grob-property grob 'direction) DOWN)
179                  (markup #:musicglyph "scripts.dfermata")
180                  (markup #:musicglyph "scripts.ufermata"))))
181              (cons 'outside-staff-priority 40)))
182
183
184 %% font sizes
185
186 teeny      = \set fontSize = #-3
187 tiny       = \set fontSize = #-2
188 small      = \set fontSize = #-1
189 normalsize = \set fontSize = #0
190 large      = \set fontSize = #1
191 huge       = \set fontSize = #2
192
193
194 %% glissando
195
196 glissando = #(make-music 'GlissandoEvent)
197
198
199 %% harmonics
200
201 harmonicsOn  = \override NoteHead #'style = #'harmonic
202 harmonicsOff = \revert NoteHead #'style
203
204
205 %% hideNotes
206
207 hideNotes = {
208   % hide notes, accidentals, etc.
209   \override Dots #'transparent = ##t
210   \override NoteHead #'transparent = ##t
211   \override NoteHead #'no-ledgers = ##t
212   \override Stem #'transparent = ##t
213   \override Beam #'transparent = ##t
214   \override Accidental #'transparent = ##t
215 }
216 unHideNotes = {
217   \revert Accidental #'transparent
218   \revert Beam #'transparent
219   \revert Stem #'transparent
220   \revert NoteHead #'transparent
221   \revert NoteHead #'no-ledgers
222   \revert Dots #'transparent
223 }
224
225
226 %% improvisation
227
228 improvisationOn = {
229   \set squashedPosition = #0
230   \override NoteHead #'style = #'slash
231   \override Accidental #'stencil = ##f
232 }
233 improvisationOff = {
234   \unset squashedPosition
235   \revert NoteHead #'style
236   \revert Accidental #'stencil
237 }
238
239
240 %% merging
241
242 mergeDifferentlyDottedOn =
243   \override Staff.NoteCollision #'merge-differently-dotted = ##t
244 mergeDifferentlyDottedOff =
245   \revert Staff.NoteCollision #'merge-differently-dotted
246 mergeDifferentlyHeadedOn =
247   \override Staff.NoteCollision #'merge-differently-headed = ##t
248 mergeDifferentlyHeadedOff =
249   \revert Staff.NoteCollision #'merge-differently-headed
250
251
252 %% numeric time signature
253
254 numericTimeSignature = \override Staff.TimeSignature #'style = #'()
255 defaultTimeSignature = \revert Staff.TimeSignature #'style
256
257
258 %% palm mutes
259
260 palmMuteOn =
261 #(define-music-function (parser location) ()
262    (override-head-style 'NoteHead 'do))
263 palmMuteOff =
264 #(define-music-function (parser location) ()
265    (revert-head-style 'NoteHead))
266 palmMute =
267 #(define-music-function (parser location note) (ly:music?)
268     (style-note-heads 'NoteHead 'do note))
269
270
271 %% phrasing slurs
272
273 % directions
274 phrasingSlurUp      = \override PhrasingSlur #'direction = #UP
275 phrasingSlurDown    = \override PhrasingSlur #'direction = #DOWN
276 phrasingSlurNeutral = \revert PhrasingSlur #'direction
277
278 % dash-patterns (make-simple-dash-definition defined at top of file)
279 phrasingSlurDashPattern =
280 #(define-music-function (parser location dash-fraction dash-period)
281   (number? number?)
282   #{
283      \override PhrasingSlur #'dash-definition =
284        $(make-simple-dash-definition dash-fraction dash-period)
285   #})
286 phrasingSlurDashed =
287   \override PhrasingSlur #'dash-definition = #'((0 1 0.4 0.75))
288 phrasingSlurDotted =
289   \override PhrasingSlur #'dash-definition = #'((0 1 0.1 0.75))
290 phrasingSlurHalfDashed =
291   \override PhrasingSlur #'dash-definition = #'((0 0.5 0.4 0.75)
292                                                 (0.5 1 1 1))
293 phrasingSlurHalfSolid =
294   \override PhrasingSlur #'dash-definition = #'((0 0.5 1 1)
295                                                 (0.5 1 0.4 0.75))
296 phrasingSlurSolid =
297   \revert PhrasingSlur #'dash-definition
298
299
300 %% point and click
301
302 pointAndClickOn  =
303 #(define-music-function (parser location) ()
304    (ly:set-option 'point-and-click #t)
305    (make-music 'SequentialMusic 'void #t))
306 pointAndClickOff =
307 #(define-music-function (parser location) ()
308    (ly:set-option 'point-and-click #f)
309    (make-music 'SequentialMusic 'void #t))
310
311
312 %% predefined fretboards
313
314 predefinedFretboardsOff =
315   \set FretBoards.predefinedDiagramTable = ##f
316 predefinedFretboardsOn =
317   \set FretBoards.predefinedDiagramTable = #fretboard-table
318
319
320 %% shape note heads
321
322 aikenHeads      = \set shapeNoteStyles = #'#(do re mi fa #f la ti)
323 sacredHarpHeads = \set shapeNoteStyles = #'#(fa #f la fa #f la mi)
324
325
326 %% shifts
327
328 shiftOn   = \override NoteColumn #'horizontal-shift = #1
329 shiftOnn  = \override NoteColumn #'horizontal-shift = #2
330 shiftOnnn = \override NoteColumn #'horizontal-shift = #3
331 shiftOff  = \revert NoteColumn #'horizontal-shift
332
333
334 %% slurs
335
336 % directions
337 slurUp         = \override Slur #'direction = #UP
338 slurDown       = \override Slur #'direction = #DOWN
339 slurNeutral    = \revert Slur #'direction
340
341 % dash-patterns (make-simple-dash-definition defined at top of file)
342 slurDashPattern =
343 #(define-music-function (parser location dash-fraction dash-period)
344   (number? number?)
345   #{
346      \override Slur #'dash-definition =
347        $(make-simple-dash-definition dash-fraction dash-period)
348   #})
349 slurDashed     = \override Slur #'dash-definition = #'((0 1 0.4 0.75))
350 slurDotted     = \override Slur #'dash-definition = #'((0 1 0.1 0.75))
351 slurHalfDashed = \override Slur #'dash-definition = #'((0 0.5 0.4 0.75)
352                                                        (0.5 1 1 1))
353 slurHalfSolid  = \override Slur #'dash-definition = #'((0 0.5 1 1)
354                                                        (0.5 1 0.4 0.75))
355 slurSolid      = \revert Slur #'dash-definition
356
357
358 %% staff switches
359
360 showStaffSwitch = \set followVoice = ##t
361 hideStaffSwitch = \set followVoice = ##f
362
363
364 %% stems
365
366 stemUp      = \override Stem #'direction = #UP
367 stemDown    = \override Stem #'direction = #DOWN
368 stemNeutral = \revert Stem #'direction
369
370
371 %% tabFullNotation
372
373 tabFullNotation = {
374   % time signature
375   \revert TabStaff.TimeSignature #'stencil
376   % stems (the half note gets a double stem)
377   \override TabVoice.Stem #'stencil = #tabvoice::draw-double-stem-for-half-notes
378   % beams, dots
379   \revert TabVoice.Beam #'stencil
380   \revert TabVoice.Dots #'stencil
381   \revert TabVoice.Tie #'stencil
382   \revert TabVoice.Tie #'after-line-breaking
383   \revert TabVoice.RepeatTie #'stencil
384   \revert TabVoice.RepeatTie #'after-line-breaking
385   \revert TabVoice.LaissezVibrerTie #'stencil
386   \revert TabVoice.Slur #'stencil
387   \revert PhrasingSlur #'stencil
388   % tuplet stuff
389   \revert TabVoice.TupletBracket #'stencil
390   \revert TabVoice.TupletNumber #'stencil
391   % dynamic signs
392   \revert DynamicText #'transparent
393   \revert DynamicTextSpanner #'stencil
394   \revert TabVoice.DynamicTextSpanner #'stencil
395   \revert TabVoice.Hairpin #'transparent
396   % rests
397   \revert TabVoice.Rest #'stencil
398   \revert TabVoice.MultiMeasureRest #'stencil
399   % markups etc.
400   \revert TabVoice.Script #'stencil
401   \revert TabVoice.TextScript #'stencil
402   \revert TabStaff.Arpeggio #'stencil
403 }
404
405
406 %% text length
407
408 textLengthOn = {
409   \override TextScript #'extra-spacing-width = #'(0 . 0)
410   \override TextScript #'extra-spacing-height = #'(-inf.0 . +inf.0)
411 }
412 textLengthOff = {
413   \override TextScript #'extra-spacing-width = #'(+inf.0 . -inf.0)
414   \override TextScript #'extra-spacing-height = #'(0 . 0)
415 }
416
417
418 %% text spanners
419
420 textSpannerUp      = \override TextSpanner #'direction = #UP
421 textSpannerDown    = \override TextSpanner #'direction = #DOWN
422 textSpannerNeutral = \revert TextSpanner #'direction
423
424
425 %% ties
426
427 % directions
428 tieUp      = \override Tie #'direction = #UP
429 tieDown    = \override Tie #'direction = #DOWN
430 tieNeutral = \revert Tie #'direction
431
432 % dash-patterns (make-simple-dash-definition defined at top of file)
433 tieDashPattern =
434 #(define-music-function (parser location dash-fraction dash-period)
435   (number? number?)
436   #{
437      \override Tie #'dash-definition =
438        $(make-simple-dash-definition dash-fraction dash-period)
439   #})
440 tieDashed     = \override Tie #'dash-definition = #'((0 1 0.4 0.75))
441 tieDotted     = \override Tie #'dash-definition = #'((0 1 0.1 0.75))
442 tieHalfDashed = \override Tie #'dash-definition = #'((0 0.5 0.4 0.75)
443                                                      (0.5 1 1 1))
444 tieHalfSolid  = \override Tie #'dash-definition = #'((0 0.5 1 1)
445                                                      (0.5 1 0.4 0.75))
446 tieSolid      = \revert Tie #'dash-definition
447
448
449 %% tuplets
450
451 tupletUp      = \override TupletBracket #'direction = #UP
452 tupletDown    = \override TupletBracket #'direction = #DOWN
453 tupletNeutral = \revert TupletBracket #'direction
454
455
456 %% voice properties
457
458 % dynamic ly:dir?  text script, articulation script ly:dir?
459 voiceOne   = #(context-spec-music (make-voice-props-set 0)  'Voice)
460 voiceTwo   = #(context-spec-music (make-voice-props-set 1)  'Voice)
461 voiceThree = #(context-spec-music (make-voice-props-set 2)  'Voice)
462 voiceFour  = #(context-spec-music (make-voice-props-set 3)  'Voice)
463 oneVoice   = #(context-spec-music (make-voice-props-revert) 'Voice)
464
465
466 %% voice styles
467
468 voiceOneStyle = {
469   \override NoteHead #'style = #'diamond
470   \override NoteHead #'color = #red
471   \override Stem #'color = #red
472   \override Beam #'color = #red
473 }
474 voiceTwoStyle = {
475   \override NoteHead #'style = #'triangle
476   \override NoteHead #'color = #blue
477   \override Stem #'color = #blue
478   \override Beam #'color = #blue
479 }
480 voiceThreeStyle = {
481   \override NoteHead #'style = #'xcircle
482   \override NoteHead #'color = #green
483   \override Stem #'color = #green
484   \override Beam #'color = #green
485 }
486 voiceFourStyle = {
487   \override NoteHead #'style = #'cross
488   \override NoteHead #'color = #magenta
489   \override Stem #'color = #magenta
490   \override Beam #'color = #magenta
491 }
492 voiceNeutralStyle = {
493   \revert NoteHead #'style
494   \revert NoteHead #'color
495   \revert Stem #'color
496   \revert Beam #'color
497 }
498
499
500 %% x notes
501
502 xNotesOn =
503 #(define-music-function (parser location) ()
504    (override-head-style '(TabNoteHead NoteHead) 'cross))
505 xNotesOff =
506 #(define-music-function (parser location) ()
507    (revert-head-style '(TabNoteHead NoteHead)))
508 xNote =
509 #(define-music-function (parser location note) (ly:music?)
510    (style-note-heads '(TabNoteHead NoteHead) 'cross note))
511
512
513 %% dead notes (these need to come after "x notes")
514
515 % Define aliases of cross-head notes for specific purposes
516 deadNotesOn  = \xNotesOn
517 deadNotesOff = \xNotesOff
518 deadNote     = #xNote