]> git.donarmstrong.com Git - lilypond.git/blob - ly/property-init.ly
Merge branch 'master' into translation
[lilypond.git] / ly / property-init.ly
1 % property-init.ly
2
3 \version "2.17.24"
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 %% common definition for all note head styles reverting
10 %% (palm mute, harmonics, dead notes, ...)
11 defaultNoteHeads =
12 #(define-music-function (parser location) ()
13    (_i "Revert to the default note head style.")
14    (revert-head-style '(NoteHead TabNoteHead)))
15
16 accidentalStyle =
17 #(define-music-function
18    (parser location style) (symbol-list?)
19    (_i "Set accidental style to symbol list @var{style} in the form
20 @samp{piano-cautionary}.  If @var{style} has a form like
21 @samp{Staff.piano-cautionary}, the settings are applied to that
22 context.  Otherwise, the context defaults to @samp{Staff}, except for
23 piano styles, which use @samp{GrandStaff} as a context." )
24    (case (length style)
25     ((1) (set-accidental-style (car style)))
26     ((2) (set-accidental-style (cadr style) (car style)))
27     (else
28      (ly:parser-error parser (_ "not an accidental style")
29       location)
30      (make-music 'Music))))
31
32 %% arpeggios
33
34 % For drawing vertical chord brackets with \arpeggio
35 % This is a shorthand for the value of the print-function property
36 % of either Staff.Arpeggio or PianoStaff.Arpeggio, depending whether
37 % cross-staff brackets are desired.
38
39 arpeggio = #(make-music 'ArpeggioEvent)
40 arpeggioArrowUp = {
41   \revert Arpeggio.stencil
42   \revert Arpeggio.X-extent
43   \override Arpeggio.arpeggio-direction = #UP
44 }
45 arpeggioArrowDown = {
46   \revert Arpeggio.stencil
47   \revert Arpeggio.X-extent
48   \override Arpeggio.arpeggio-direction = #DOWN
49 }
50 arpeggioNormal = {
51   \revert Arpeggio.stencil
52   \revert Arpeggio.X-extent
53   \revert Arpeggio.arpeggio-direction
54   \revert Arpeggio.dash-definition
55 }
56 arpeggioBracket = {
57   \revert Arpeggio.X-extent
58   \override Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket
59 }
60 arpeggioParenthesis = {
61   \override Arpeggio.stencil = #ly:arpeggio::brew-chord-slur
62   \override Arpeggio.X-extent = #ly:grob::stencil-width
63   \revert Arpeggio.dash-definition
64 }
65 arpeggioParenthesisDashed = {
66   \override Arpeggio.stencil = #ly:arpeggio::brew-chord-slur
67   \override Arpeggio.X-extent = #ly:grob::stencil-width
68   \override Arpeggio.dash-definition = #'((0 1 0.4 0.75))
69 }
70
71
72 %% auto beaming
73
74 autoBeamOn  = \set autoBeaming = ##t
75 autoBeamOff = \set autoBeaming = ##f
76
77
78 %% balloon length
79
80 balloonLengthOn = {
81   \override BalloonTextItem.extra-spacing-width = #'(0 . 0)
82   \override BalloonTextItem.extra-spacing-height = #'(-inf.0 . +inf.0)
83 }
84 balloonLengthOff = {
85   \override BalloonTextItem.extra-spacing-width = #'(+inf.0 . -inf.0)
86   \override BalloonTextItem.extra-spacing-height = #'(0 . 0)
87 }
88
89
90 %% bar lines
91
92 defineBarLine =
93 #(define-void-function
94    (parser location bar glyph-list) (string? list?)
95    (_i "Define bar line settings for bar line @var{bar}.
96      The list @var{glyph-list} must have three entries which define
97      the appearance at the end of line, at the beginning of the next line,
98      and the span bar, respectively." )
99   (if (not (= (length glyph-list) 3))
100       (ly:error (_ "Argument list for bar '~a' must have three components.") bar)
101       (define-bar-line bar
102                        (car glyph-list)
103                        (cadr glyph-list)
104                        (caddr glyph-list))))
105
106
107 %% bass figures
108
109 bassFigureExtendersOn = {
110   \set useBassFigureExtenders = ##t
111   \set Staff.useBassFigureExtenders = ##t
112 }
113 bassFigureExtendersOff = {
114   \set useBassFigureExtenders = ##f
115   \set Staff.useBassFigureExtenders = ##f
116 }
117 bassFigureStaffAlignmentDown =
118   \override Staff.BassFigureAlignmentPositioning.direction = #DOWN
119 bassFigureStaffAlignmentUp =
120   \override Staff.BassFigureAlignmentPositioning.direction = #UP
121 bassFigureStaffAlignmentNeutral =
122   \revert Staff.BassFigureAlignmentPositioning.direction
123
124
125 %% cadenzas
126
127 cadenzaOn  = {
128   \set Timing.timing = ##f
129   \set Timing.autoBeaming = ##f
130 }
131
132 cadenzaOff = {
133   \set Timing.timing = ##t
134   \set Timing.measurePosition = #ZERO-MOMENT
135   \set Timing.autoBeaming = ##t
136 }
137
138
139 %% chord names
140
141 frenchChords = {
142   \set chordRootNamer = #(chord-name->italian-markup #t)
143   \set chordPrefixSpacer = #0.4
144 }
145 germanChords = {
146   \set chordRootNamer = #(chord-name->german-markup #t)
147   \set chordNoteNamer = #note-name->german-markup
148 }
149 semiGermanChords = {
150   \set chordRootNamer = #(chord-name->german-markup #f)
151   \set chordNoteNamer = #note-name->german-markup
152 }
153 italianChords = {
154   \set chordRootNamer = #(chord-name->italian-markup #f)
155   \set chordPrefixSpacer = #0.4
156 }
157 powerChords = {
158   \set chordNameExceptions = #powerChordExceptions
159 }
160
161
162 %% compressFullBarRests
163
164 compressFullBarRests = \set Score.skipBars = ##t
165 expandFullBarRests   = \set Score.skipBars = ##f
166
167
168 %% dots
169
170 dotsUp      = \override Dots.direction = #UP
171 dotsDown    = \override Dots.direction = #DOWN
172 dotsNeutral = \revert Dots.direction
173
174
175 %% dynamics
176
177 dynamicUp = {
178   \override DynamicText.direction = #UP
179   \override DynamicLineSpanner.direction = #UP
180 }
181 dynamicDown = {
182   \override DynamicText.direction = #DOWN
183   \override DynamicLineSpanner.direction = #DOWN
184 }
185 dynamicNeutral = {
186   \revert DynamicText.direction
187   \revert DynamicLineSpanner.direction
188 }
189
190
191 %% easy heads
192
193 easyHeadsOn = {
194   \override NoteHead.stencil = #note-head::brew-ez-stencil
195   \override NoteHead.font-size = #-8
196   \override NoteHead.font-family = #'sans
197   \override NoteHead.font-series = #'bold
198 }
199 easyHeadsOff = {
200   \revert NoteHead.stencil
201   \revert NoteHead.font-size
202   \revert NoteHead.font-family
203   \revert NoteHead.font-series
204 }
205
206
207 %% endincipit
208
209 %% End the incipit and print a ``normal line start''.
210 endincipit = \context Staff {
211   \partial 16 s16  % Hack to handle e.g. \bar ".|" \endincipit
212   \once \override Staff.Clef.full-size-change = ##t
213   \once \override Staff.Clef.non-default = ##t
214   \bar ""
215 }
216
217
218 %% fermata markup
219
220 fermataMarkup =
221 #(make-music 'MultiMeasureTextEvent
222              ;; Set the 'text based on the 'direction
223              'text (make-fermata-markup)
224              'tweaks '((outside-staff-priority . 40)
225                        (outside-staff-padding . 0)))
226
227 %% font sizes
228
229 teeny      = \set fontSize = #-3
230 tiny       = \set fontSize = #-2
231 small      = \set fontSize = #-1
232 normalsize = \set fontSize = #0
233 large      = \set fontSize = #1
234 huge       = \set fontSize = #2
235
236
237 %% glissando
238
239 glissando = #(make-music 'GlissandoEvent)
240
241
242 %% harmonics
243
244 harmonicsOn =
245 #(define-music-function (parser location) ()
246    (_i "Set the default note head style to a diamond-shaped style.")
247    (override-head-style '(NoteHead TabNoteHead) 'harmonic))
248 harmonicsOff = \defaultNoteHeads
249 harmonicNote =
250 #(define-music-function (parser location note) (ly:music?)
251    (_i "Print @var{note} with a diamond-shaped note head.")
252    (style-note-heads 'NoteHead 'harmonic note))
253
254
255 %% hideNotes
256
257 hideNotes = {
258   % hide notes, accidentals, etc.
259   \override Dots.transparent = ##t
260   \override NoteHead.transparent = ##t
261   \override NoteHead.no-ledgers = ##t
262   % assume that any Beam inherits transparency from its parent Stem
263   \override Stem.transparent = ##t
264   \override Accidental.transparent = ##t
265   \override Rest.transparent = ##t
266   \override TabNoteHead.transparent = ##t
267 }
268 unHideNotes = {
269   \revert Accidental.transparent
270   \revert Stem.transparent
271   \revert NoteHead.transparent
272   \revert NoteHead.no-ledgers
273   \revert Dots.transparent
274   \revert Rest.transparent
275   \revert TabNoteHead.transparent
276 }
277
278
279 %% improvisation
280
281 improvisationOn = {
282   \set squashedPosition = #0
283   \override NoteHead.style = #'slash
284   \override Accidental.stencil = ##f
285   \override AccidentalCautionary.stencil = ##f
286 }
287 improvisationOff = {
288   \unset squashedPosition
289   \revert NoteHead.style
290   \revert Accidental.stencil
291   \revert AccidentalCautionary.stencil
292 }
293
294 %% kievan
295 kievanOn = {
296  \override NoteHead.style = #'kievan
297  \override Stem.X-offset = #stem::kievan-offset-callback
298  \override Stem.stencil = ##f
299  \override Flag.stencil = ##f
300  \override Rest.style = #'mensural
301  \override Accidental.glyph-name-alist = #alteration-kievan-glyph-name-alist
302  \override Dots.style = #'kievan
303  \override Slur.stencil = ##f
304  \override Stem.length = #0.0
305  \override Beam.positions = #beam::get-kievan-positions
306  \override Beam.quantized-positions = #beam::get-kievan-quantized-positions
307  \override NoteHead.duration-log = #note-head::calc-kievan-duration-log
308 }
309 kievanOff = {
310  \revert NoteHead.style
311  \revert Stem.X-offset
312  \revert Stem.stencil
313  \revert Rest.style
314  \revert Accidental.glyph-name-alist
315  \revert Dots.style
316  \revert Slur.stencil
317  \revert Flag.stencil
318  \revert Stem.length
319  \revert Beam.positions
320  \revert Beam.quantized-positions
321  \revert NoteHead.duration-log
322 }
323
324 %% merging
325
326 mergeDifferentlyDottedOn =
327   \override Staff.NoteCollision.merge-differently-dotted = ##t
328 mergeDifferentlyDottedOff =
329   \revert Staff.NoteCollision.merge-differently-dotted
330 mergeDifferentlyHeadedOn =
331   \override Staff.NoteCollision.merge-differently-headed = ##t
332 mergeDifferentlyHeadedOff =
333   \revert Staff.NoteCollision.merge-differently-headed
334
335
336 %% numeric time signature
337
338 numericTimeSignature = \override Staff.TimeSignature.style = #'numbered
339 defaultTimeSignature = \revert Staff.TimeSignature.style
340
341
342 %% palm mutes
343
344 palmMuteOn =
345 #(define-music-function (parser location) ()
346    (_i "Set the default note head style to a triangle-shaped style.")
347    (override-head-style 'NoteHead 'do))
348 palmMuteOff = \defaultNoteHeads
349 palmMute =
350 #(define-music-function (parser location note) (ly:music?)
351    (_i "Print @var{note} with a triangle-shaped note head.")
352    (style-note-heads 'NoteHead 'do note))
353
354
355 %% phrasing slurs
356
357 % directions
358 phrasingSlurUp      = \override PhrasingSlur.direction = #UP
359 phrasingSlurDown    = \override PhrasingSlur.direction = #DOWN
360 phrasingSlurNeutral = \revert PhrasingSlur.direction
361
362 % dash-patterns (make-simple-dash-definition defined at top of file)
363 phrasingSlurDashPattern =
364 #(define-music-function (parser location dash-fraction dash-period)
365    (number? number?)
366    (_i "Set up a custom style of dash pattern for @var{dash-fraction} ratio of
367 line to space repeated at @var{dash-period} interval for phrasing slurs.")
368   #{
369      \override PhrasingSlur.dash-definition =
370        $(make-simple-dash-definition dash-fraction dash-period)
371   #})
372 phrasingSlurDashed =
373   \override PhrasingSlur.dash-definition = #'((0 1 0.4 0.75))
374 phrasingSlurDotted =
375   \override PhrasingSlur.dash-definition = #'((0 1 0.1 0.75))
376 phrasingSlurHalfDashed =
377   \override PhrasingSlur.dash-definition = #'((0 0.5 0.4 0.75)
378                                                 (0.5 1 1 1))
379 phrasingSlurHalfSolid =
380   \override PhrasingSlur.dash-definition = #'((0 0.5 1 1)
381                                                 (0.5 1 0.4 0.75))
382 phrasingSlurSolid =
383   \revert PhrasingSlur.dash-definition
384
385
386 %% point and click
387
388 pointAndClickOn  =
389 #(define-void-function (parser location) ()
390    (_i "Enable generation of code in final-format (e.g. pdf) files to reference the
391 originating lilypond source statement;
392 this is helpful when developing a score but generates bigger final-format files.")
393    (ly:set-option 'point-and-click #t))
394
395 pointAndClickOff =
396 #(define-void-function (parser location) ()
397    (_i "Suppress generating extra code in final-format (e.g. pdf) files to point
398 back to the lilypond source statement.")
399    (ly:set-option 'point-and-click #f))
400
401 pointAndClickTypes =
402 #(define-void-function (parser location types) (symbol-list-or-symbol?)
403   (_i "Set a type or list of types (such as @code{#'note-event}) for which point-and-click info is generated.")
404   (ly:set-option 'point-and-click types))
405
406 %% predefined fretboards
407
408 predefinedFretboardsOff =
409   \set predefinedDiagramTable = ##f
410 predefinedFretboardsOn =
411   \set predefinedDiagramTable = #default-fret-table
412
413
414 %% shape note heads
415
416 aikenHeads      = \set shapeNoteStyles = ##(do re miMirror fa sol la ti)
417 aikenHeadsMinor = \set shapeNoteStyles = ##(la ti do re miMirror fa sol)
418 funkHeads =
419   \set shapeNoteStyles = ##(doFunk reFunk miFunk faFunk solFunk laFunk tiFunk)
420 funkHeadsMinor =
421   \set shapeNoteStyles = ##(laFunk tiFunk doFunk reFunk miFunk faFunk solFunk)
422 sacredHarpHeads = \set shapeNoteStyles = ##(fa sol la fa sol la mi)
423 sacredHarpHeadsMinor = \set shapeNoteStyles = ##(la mi fa sol la fa sol)
424 southernHarmonyHeads =
425   \set shapeNoteStyles = ##(faThin sol laThin faThin sol laThin miThin)
426 southernHarmonyHeadsMinor =
427   \set shapeNoteStyles = ##(laThin miThin faThin sol laThin faThin sol)
428 walkerHeads =
429   \set shapeNoteStyles = ##(doWalker reWalker miWalker faWalker solFunk laWalker tiWalker)
430 walkerHeadsMinor =
431   \set shapeNoteStyles = ##(laWalker tiWalker doWalker reWalker miWalker faWalker solFunk)
432
433
434 %% shifts
435
436 shiftOn   = \override NoteColumn.horizontal-shift = #1
437 shiftOnn  = \override NoteColumn.horizontal-shift = #2
438 shiftOnnn = \override NoteColumn.horizontal-shift = #3
439 shiftOff  = \revert NoteColumn.horizontal-shift
440
441
442 %% slurs
443
444 % directions
445 slurUp         = \override Slur.direction = #UP
446 slurDown       = \override Slur.direction = #DOWN
447 slurNeutral    = \revert Slur.direction
448
449 % dash-patterns (make-simple-dash-definition defined at top of file)
450 slurDashPattern =
451 #(define-music-function (parser location dash-fraction dash-period)
452   (number? number?)
453   (_i "Set up a custom style of dash pattern for @var{dash-fraction}
454 ratio of line to space repeated at @var{dash-period} interval for slurs.")
455   #{
456      \override Slur.dash-definition =
457        $(make-simple-dash-definition dash-fraction dash-period)
458   #})
459 slurDashed     = \override Slur.dash-definition = #'((0 1 0.4 0.75))
460 slurDotted     = \override Slur.dash-definition = #'((0 1 0.1 0.75))
461 slurHalfDashed = \override Slur.dash-definition = #'((0 0.5 0.4 0.75)
462                                                        (0.5 1 1 1))
463 slurHalfSolid  = \override Slur.dash-definition = #'((0 0.5 1 1)
464                                                        (0.5 1 0.4 0.75))
465 slurSolid      = \revert Slur.dash-definition
466
467
468 %% staff switches
469
470 showStaffSwitch = \set followVoice = ##t
471 hideStaffSwitch = \set followVoice = ##f
472
473
474 %% stems
475
476 stemUp      = \override Stem.direction = #UP
477 stemDown    = \override Stem.direction = #DOWN
478 stemNeutral = \revert Stem.direction
479
480
481 %% tablature
482
483 % switch to full notation
484 tabFullNotation = {
485   % time signature
486   \revert TabStaff.TimeSignature.stencil
487   % stems (the half note gets a double stem)
488   \revert TabStaff.Stem.length
489   \revert TabStaff.Stem.no-stem-extend
490   \revert TabStaff.Flag.style
491   \revert TabStaff.Stem.details
492   \revert TabStaff.Stem.stencil
493   \revert TabStaff.Flag.stencil
494   \override TabStaff.Stem.stencil = #tabvoice::draw-double-stem-for-half-notes
495   \override TabStaff.Stem.X-extent = #tabvoice::make-double-stem-width-for-half-notes
496   \set TabStaff.autoBeaming = ##t
497   \revert TabStaff.NoteColumn.ignore-collision
498   % beams, dots
499   \revert TabStaff.Beam.stencil
500   \revert TabStaff.StemTremolo.stencil
501   \revert TabStaff.Dots.stencil
502   \revert TabStaff.Tie.stencil
503   \revert TabStaff.Tie.after-line-breaking
504   \revert TabStaff.RepeatTie.stencil
505   \revert TabStaff.RepeatTie.after-line-breaking
506   \revert TabStaff.LaissezVibrerTie.stencil
507   \revert TabStaff.Slur.stencil
508   \revert TabStaff.PhrasingSlur.stencil
509   % tuplet stuff
510   \revert TabStaff.TupletBracket.stencil
511   \revert TabStaff.TupletNumber.stencil
512   % dynamic signs
513   \revert TabStaff.DynamicText.stencil
514   \revert TabStaff.DynamicTextSpanner.stencil
515   \revert TabStaff.DynamicTextSpanner.stencil
516   \revert TabStaff.Hairpin.stencil
517   % rests
518   \revert TabStaff.Rest.stencil
519   \revert TabStaff.MultiMeasureRest.stencil
520   \revert TabStaff.MultiMeasureRestNumber.stencil
521   \revert TabStaff.MultiMeasureRestText.stencil
522   % markups etc.
523   \revert TabStaff.Glissando.stencil
524   \revert TabStaff.Script.stencil
525   \revert TabStaff.TextScript.stencil
526   \revert TabStaff.TextSpanner.stencil
527   \revert TabStaff.Arpeggio.stencil
528   \revert TabStaff.NoteColumn.ignore-collision
529 }
530
531 %tie/repeat tie behaviour
532 hideSplitTiedTabNotes = {
533   \override TabVoice.TabNoteHead.details.tied-properties.break-visibility = #all-invisible
534   \override TabVoice.TabNoteHead.details.tied-properties.parenthesize = ##f
535   \override TabVoice.TabNoteHead.details.repeat-tied-properties.note-head-visible = ##f
536   \override TabVoice.TabNoteHead.details.repeat-tied-properties.parenthesize = ##f
537 }
538
539 showSplitTiedTabNotes = {
540   \override TabVoice.TabNoteHead.details.tied-properties.break-visibility = #begin-of-line-visible
541   \override TabVoice.TabNoteHead.details.tied-properties.parenthesize = ##t
542   \override TabVoice.TabNoteHead.details.repeat-tied-properties.note-head-visible = ##t
543   \override TabVoice.TabNoteHead.details.repeat-tied-properties.parenthesize = ##t
544 }
545
546 %% text length
547
548 textLengthOn = {
549   % 0.4 staff-space between adjacent texts
550   \override TextScript.extra-spacing-width = #'(-0.0 . 0.4)
551   \override TextScript.extra-spacing-height = #'(-inf.0 . +inf.0)
552 }
553
554 textLengthOff = {
555   \override TextScript.extra-spacing-width = #'(+inf.0 . -inf.0)
556   \override TextScript.extra-spacing-height = #'(0 . 0)
557 }
558
559 markLengthOn = {
560   \override Score.MetronomeMark.extra-spacing-width = #'(0 . 1.0)
561   \override Score.RehearsalMark.extra-spacing-width = #'(-0.5 . 0.5)
562   % Raise as much as four staff-spaces before pushing notecolumns right
563   \override Score.MetronomeMark.extra-spacing-height = #'(4 . 4)
564   \override Score.RehearsalMark.extra-spacing-height = #'(4 . 4)
565 }
566
567 markLengthOff = {
568   \override Score.MetronomeMark.extra-spacing-width = #'(+inf.0 . -inf.0)
569   \override Score.RehearsalMark.extra-spacing-width = #'(+inf.0 . -inf.0)
570   \revert Score.MetronomeMark.extra-spacing-height
571   \revert Score.RehearsalMark.extra-spacing-height
572 }
573
574 %% text spanners
575
576 textSpannerUp      = \override TextSpanner.direction = #UP
577 textSpannerDown    = \override TextSpanner.direction = #DOWN
578 textSpannerNeutral = \revert TextSpanner.direction
579
580
581 %% ties
582
583 % directions
584 tieUp      = \override Tie.direction = #UP
585 tieDown    = \override Tie.direction = #DOWN
586 tieNeutral = \revert Tie.direction
587
588 % dash-patterns (make-simple-dash-definition defined at top of file)
589 tieDashPattern =
590 #(define-music-function (parser location dash-fraction dash-period)
591   (number? number?)
592   (_i "Set up a custom style of dash pattern for @var{dash-fraction}
593 ratio of line to space repeated at @var{dash-period} interval for ties.")
594   #{
595      \override Tie.dash-definition =
596        $(make-simple-dash-definition dash-fraction dash-period)
597   #})
598 tieDashed     = \override Tie.dash-definition = #'((0 1 0.4 0.75))
599 tieDotted     = \override Tie.dash-definition = #'((0 1 0.1 0.75))
600 tieHalfDashed = \override Tie.dash-definition = #'((0 0.5 0.4 0.75)
601                                                      (0.5 1 1 1))
602 tieHalfSolid  = \override Tie.dash-definition = #'((0 0.5 1 1)
603                                                      (0.5 1 0.4 0.75))
604 tieSolid      = \revert Tie.dash-definition
605
606
607 %% tuplets
608
609 tupletUp      = \override TupletBracket.direction = #UP
610 tupletDown    = \override TupletBracket.direction = #DOWN
611 tupletNeutral = \revert TupletBracket.direction
612
613
614 %% voice properties
615
616 % dynamic ly:dir?  text script, articulation script ly:dir?
617 voiceOne   = #(context-spec-music (make-voice-props-set 0)  'Voice)
618 voiceTwo   = #(context-spec-music (make-voice-props-set 1)  'Voice)
619 voiceThree = #(context-spec-music (make-voice-props-set 2)  'Voice)
620 voiceFour  = #(context-spec-music (make-voice-props-set 3)  'Voice)
621 oneVoice   = #(context-spec-music (make-voice-props-revert) 'Voice)
622
623
624 %% voice styles
625
626 voiceOneStyle = {
627   \override NoteHead.style = #'diamond
628   \override NoteHead.color = #red
629   \override Stem.color = #red
630   \override Beam.color = #red
631 }
632 voiceTwoStyle = {
633   \override NoteHead.style = #'triangle
634   \override NoteHead.color = #blue
635   \override Stem.color = #blue
636   \override Beam.color = #blue
637 }
638 voiceThreeStyle = {
639   \override NoteHead.style = #'xcircle
640   \override NoteHead.color = #green
641   \override Stem.color = #green
642   \override Beam.color = #green
643 }
644 voiceFourStyle = {
645   \override NoteHead.style = #'cross
646   \override NoteHead.color = #magenta
647   \override Stem.color = #magenta
648   \override Beam.color = #magenta
649 }
650 voiceNeutralStyle = {
651   \revert NoteHead.style
652   \revert NoteHead.color
653   \revert Stem.color
654   \revert Beam.color
655 }
656
657
658 %% volta brackets
659
660 allowVoltaHook =
661 #(define-void-function (parser location bar) (string?)
662                        (allow-volta-hook bar))
663
664 %% x notes
665
666 xNotesOn =
667 #(define-music-function (parser location) ()
668    (_i "Set the default note head style to a cross-shaped style.")
669    (override-head-style '(TabNoteHead NoteHead) 'cross))
670 xNotesOff = \defaultNoteHeads
671 xNote =
672 #(define-music-function (parser location note) (ly:music?)
673    (_i "Print @var{note} with a cross-shaped note head.")
674    (style-note-heads '(TabNoteHead NoteHead) 'cross note))
675
676
677 %% dead notes (these need to come after "x notes")
678
679 % Define aliases of cross-head notes for specific purposes
680 deadNotesOn  = \xNotesOn
681 deadNotesOff = \xNotesOff
682 deadNote     = #xNote