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