]> git.donarmstrong.com Git - lilypond.git/blob - ly/property-init.ly
Rerun scripts/auxiliar/update-with-convert-ly.sh
[lilypond.git] / ly / property-init.ly
1 % property-init.ly
2
3 \version "2.17.6"
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              'tweaks (list
223                       ;; Set the 'text based on the 'direction
224                       (cons 'text (lambda (grob)
225                                     (if (eq? (ly:grob-property grob 'direction) DOWN)
226                                         (markup #:musicglyph "scripts.dfermata")
227                                         (markup #:musicglyph "scripts.ufermata"))))
228                       (cons 'outside-staff-priority 40)
229                       (cons 'outside-staff-padding 0)))
230
231 %% font sizes
232
233 teeny      = \set fontSize = #-3
234 tiny       = \set fontSize = #-2
235 small      = \set fontSize = #-1
236 normalsize = \set fontSize = #0
237 large      = \set fontSize = #1
238 huge       = \set fontSize = #2
239
240
241 %% glissando
242
243 glissando = #(make-music 'GlissandoEvent)
244
245
246 %% harmonics
247
248 harmonicsOn =
249 #(define-music-function (parser location) ()
250    (_i "Set the default note head style to a diamond-shaped style.")
251    (override-head-style '(NoteHead TabNoteHead) 'harmonic))
252 harmonicsOff = \defaultNoteHeads
253 harmonicNote =
254 #(define-music-function (parser location note) (ly:music?)
255    (_i "Print @var{note} with a diamond-shaped note head.")
256    (style-note-heads 'NoteHead 'harmonic note))
257
258
259 %% hideNotes
260
261 hideNotes = {
262   % hide notes, accidentals, etc.
263   \override Dots.transparent = ##t
264   \override NoteHead.transparent = ##t
265   \override NoteHead.no-ledgers = ##t
266   \override Stem.transparent = ##t
267   \override Flag.transparent = ##t
268   \override Beam.transparent = ##t
269   \override Accidental.transparent = ##t
270   \override Rest.transparent = ##t
271   \override TabNoteHead.transparent = ##t
272 }
273 unHideNotes = {
274   \revert Accidental.transparent
275   \revert Beam.transparent
276   \revert Stem.transparent
277   \revert Flag.transparent
278   \revert NoteHead.transparent
279   \revert NoteHead.no-ledgers
280   \revert Dots.transparent
281   \revert Rest.transparent
282   \revert TabNoteHead.transparent
283 }
284
285
286 %% improvisation
287
288 improvisationOn = {
289   \set squashedPosition = #0
290   \override NoteHead.style = #'slash
291   \override Accidental.stencil = ##f
292   \override AccidentalCautionary.stencil = ##f
293 }
294 improvisationOff = {
295   \unset squashedPosition
296   \revert NoteHead.style
297   \revert Accidental.stencil
298   \revert AccidentalCautionary.stencil
299 }
300
301
302 %% merging
303
304 mergeDifferentlyDottedOn =
305   \override Staff.NoteCollision.merge-differently-dotted = ##t
306 mergeDifferentlyDottedOff =
307   \revert Staff.NoteCollision.merge-differently-dotted
308 mergeDifferentlyHeadedOn =
309   \override Staff.NoteCollision.merge-differently-headed = ##t
310 mergeDifferentlyHeadedOff =
311   \revert Staff.NoteCollision.merge-differently-headed
312
313
314 %% numeric time signature
315
316 numericTimeSignature = \override Staff.TimeSignature.style = #'numbered
317 defaultTimeSignature = \revert Staff.TimeSignature.style
318
319
320 %% palm mutes
321
322 palmMuteOn =
323 #(define-music-function (parser location) ()
324    (_i "Set the default note head style to a triangle-shaped style.")
325    (override-head-style 'NoteHead 'do))
326 palmMuteOff = \defaultNoteHeads
327 palmMute =
328 #(define-music-function (parser location note) (ly:music?)
329    (_i "Print @var{note} with a triangle-shaped note head.")
330    (style-note-heads 'NoteHead 'do note))
331
332
333 %% phrasing slurs
334
335 % directions
336 phrasingSlurUp      = \override PhrasingSlur.direction = #UP
337 phrasingSlurDown    = \override PhrasingSlur.direction = #DOWN
338 phrasingSlurNeutral = \revert PhrasingSlur.direction
339
340 % dash-patterns (make-simple-dash-definition defined at top of file)
341 phrasingSlurDashPattern =
342 #(define-music-function (parser location dash-fraction dash-period)
343    (number? number?)
344    (_i "Set up a custom style of dash pattern for @var{dash-fraction} ratio of
345 line to space repeated at @var{dash-period} interval for phrasing slurs.")
346   #{
347      \override PhrasingSlur.dash-definition =
348        $(make-simple-dash-definition dash-fraction dash-period)
349   #})
350 phrasingSlurDashed =
351   \override PhrasingSlur.dash-definition = #'((0 1 0.4 0.75))
352 phrasingSlurDotted =
353   \override PhrasingSlur.dash-definition = #'((0 1 0.1 0.75))
354 phrasingSlurHalfDashed =
355   \override PhrasingSlur.dash-definition = #'((0 0.5 0.4 0.75)
356                                                 (0.5 1 1 1))
357 phrasingSlurHalfSolid =
358   \override PhrasingSlur.dash-definition = #'((0 0.5 1 1)
359                                                 (0.5 1 0.4 0.75))
360 phrasingSlurSolid =
361   \revert PhrasingSlur.dash-definition
362
363
364 %% point and click
365
366 pointAndClickOn  =
367 #(define-music-function (parser location) ()
368    (_i "Enable generation of code in final-format (e.g. pdf) files to reference the
369 originating lilypond source statement;
370 this is helpful when developing a score but generates bigger final-format files.")
371    (ly:set-option 'point-and-click #t)
372    (make-music 'SequentialMusic 'void #t))
373
374 pointAndClickOff =
375 #(define-music-function (parser location) ()
376    (_i "Suppress generating extra code in final-format (e.g. pdf) files to point
377 back to the lilypond source statement.")
378    (ly:set-option 'point-and-click #f)
379    (make-music 'SequentialMusic 'void #t))
380
381 pointAndClickTypes =
382 #(define-void-function (parser location types) (symbol-list-or-symbol?)
383   (_i "Set a type or list of types (such as @code{#'note-event}) for which point-and-click info is generated.")
384   (ly:set-option 'point-and-click types))
385
386 %% predefined fretboards
387
388 predefinedFretboardsOff =
389   \set predefinedDiagramTable = ##f
390 predefinedFretboardsOn =
391   \set predefinedDiagramTable = #default-fret-table
392
393
394 %% shape note heads
395
396 aikenHeads      = \set shapeNoteStyles = #'#(do re miMirror fa sol la ti)
397 aikenHeadsMinor = \set shapeNoteStyles = #'#(la ti do re miMirror fa sol)
398 funkHeads =
399   \set shapeNoteStyles = #'#(doFunk reFunk miFunk faFunk solFunk laFunk tiFunk)
400 funkHeadsMinor =
401   \set shapeNoteStyles = #'#(laFunk tiFunk doFunk reFunk miFunk faFunk solFunk)
402 sacredHarpHeads = \set shapeNoteStyles = #'#(fa sol la fa sol la mi)
403 sacredHarpHeadsMinor = \set shapeNoteStyles = #'#(la mi fa sol la fa sol)
404 southernHarmonyHeads =
405   \set shapeNoteStyles = #'#(faThin sol laThin faThin sol laThin miThin)
406 southernHarmonyHeadsMinor =
407   \set shapeNoteStyles = #'#(laThin miThin faThin sol laThin faThin sol)
408 walkerHeads =
409   \set shapeNoteStyles = #'#(doWalker reWalker miWalker faWalker solFunk laWalker tiWalker)
410 walkerHeadsMinor =
411   \set shapeNoteStyles = #'#(laWalker tiWalker doWalker reWalker miWalker faWalker solFunk)
412
413
414 %% shifts
415
416 shiftOn   = \override NoteColumn.horizontal-shift = #1
417 shiftOnn  = \override NoteColumn.horizontal-shift = #2
418 shiftOnnn = \override NoteColumn.horizontal-shift = #3
419 shiftOff  = \revert NoteColumn.horizontal-shift
420
421
422 %% slurs
423
424 % directions
425 slurUp         = \override Slur.direction = #UP
426 slurDown       = \override Slur.direction = #DOWN
427 slurNeutral    = \revert Slur.direction
428
429 % dash-patterns (make-simple-dash-definition defined at top of file)
430 slurDashPattern =
431 #(define-music-function (parser location dash-fraction dash-period)
432   (number? number?)
433   (_i "Set up a custom style of dash pattern for @var{dash-fraction}
434 ratio of line to space repeated at @var{dash-period} interval for slurs.")
435   #{
436      \override Slur.dash-definition =
437        $(make-simple-dash-definition dash-fraction dash-period)
438   #})
439 slurDashed     = \override Slur.dash-definition = #'((0 1 0.4 0.75))
440 slurDotted     = \override Slur.dash-definition = #'((0 1 0.1 0.75))
441 slurHalfDashed = \override Slur.dash-definition = #'((0 0.5 0.4 0.75)
442                                                        (0.5 1 1 1))
443 slurHalfSolid  = \override Slur.dash-definition = #'((0 0.5 1 1)
444                                                        (0.5 1 0.4 0.75))
445 slurSolid      = \revert Slur.dash-definition
446
447
448 %% staff switches
449
450 showStaffSwitch = \set followVoice = ##t
451 hideStaffSwitch = \set followVoice = ##f
452
453
454 %% stems
455
456 stemUp      = \override Stem.direction = #UP
457 stemDown    = \override Stem.direction = #DOWN
458 stemNeutral = \revert Stem.direction
459
460
461 %% tablature
462
463 % switch to full notation
464 tabFullNotation = {
465   % time signature
466   \revert TabStaff.TimeSignature.stencil
467   % stems (the half note gets a double stem)
468   \revert TabVoice.Stem.length
469   \revert TabVoice.Stem.no-stem-extend
470   \revert TabVoice.Flag.style
471   \revert TabVoice.Stem.details
472   \revert TabVoice.Stem.stencil
473   \revert TabVoice.Flag.stencil
474   \override TabVoice.Stem.stencil = #tabvoice::draw-double-stem-for-half-notes
475   \override TabVoice.Stem.X-extent = #tabvoice::make-double-stem-width-for-half-notes
476   \set TabVoice.autoBeaming = ##t
477   \revert TabVoice.NoteColumn.ignore-collision
478   % beams, dots
479   \revert TabVoice.Beam.stencil
480   \revert TabVoice.StemTremolo.stencil
481   \revert TabVoice.Dots.stencil
482   \revert TabVoice.Tie.stencil
483   \revert TabVoice.Tie.after-line-breaking
484   \revert TabVoice.RepeatTie.stencil
485   \revert TabVoice.RepeatTie.after-line-breaking
486   \revert TabVoice.LaissezVibrerTie.stencil
487   \revert TabVoice.Slur.stencil
488   \revert TabVoice.PhrasingSlur.stencil
489   % tuplet stuff
490   \revert TabVoice.TupletBracket.stencil
491   \revert TabVoice.TupletNumber.stencil
492   % dynamic signs
493   \revert TabVoice.DynamicText.stencil
494   \revert TabVoice.DynamicTextSpanner.stencil
495   \revert TabVoice.DynamicTextSpanner.stencil
496   \revert TabVoice.Hairpin.stencil
497   % rests
498   \revert TabVoice.Rest.stencil
499   \revert TabVoice.MultiMeasureRest.stencil
500   \revert TabVoice.MultiMeasureRestNumber.stencil
501   \revert TabVoice.MultiMeasureRestText.stencil
502   % markups etc.
503   \revert TabVoice.Glissando.stencil
504   \revert TabVoice.Script.stencil
505   \revert TabVoice.TextScript.stencil
506   \revert TabVoice.TextSpanner.stencil
507   \revert TabStaff.Arpeggio.stencil
508   \revert TabStaff.NoteColumn.ignore-collision
509 }
510
511 %tie/repeat tie behaviour
512 hideSplitTiedTabNotes = {
513   \override TabVoice.TabNoteHead.details.tied-properties.break-visibility = #all-invisible
514   \override TabVoice.TabNoteHead.details.tied-properties.parenthesize = ##f
515   \override TabVoice.TabNoteHead.details.repeat-tied-properties.note-head-visible = ##f
516   \override TabVoice.TabNoteHead.details.repeat-tied-properties.parenthesize = ##f
517 }
518
519 showSplitTiedTabNotes = {
520   \override TabVoice.TabNoteHead.details.tied-properties.break-visibility = #begin-of-line-visible
521   \override TabVoice.TabNoteHead.details.tied-properties.parenthesize = ##t
522   \override TabVoice.TabNoteHead.details.repeat-tied-properties.note-head-visible = ##t
523   \override TabVoice.TabNoteHead.details.repeat-tied-properties.parenthesize = ##t
524 }
525
526 %% text length
527
528 textLengthOn = {
529   \override TextScript.extra-spacing-width = #'(0 . 0)
530   \override TextScript.extra-spacing-height = #'(-inf.0 . +inf.0)
531 }
532 textLengthOff = {
533   \override TextScript.extra-spacing-width = #'(+inf.0 . -inf.0)
534   \override TextScript.extra-spacing-height = #'(0 . 0)
535 }
536
537
538 %% text spanners
539
540 textSpannerUp      = \override TextSpanner.direction = #UP
541 textSpannerDown    = \override TextSpanner.direction = #DOWN
542 textSpannerNeutral = \revert TextSpanner.direction
543
544
545 %% ties
546
547 % directions
548 tieUp      = \override Tie.direction = #UP
549 tieDown    = \override Tie.direction = #DOWN
550 tieNeutral = \revert Tie.direction
551
552 % dash-patterns (make-simple-dash-definition defined at top of file)
553 tieDashPattern =
554 #(define-music-function (parser location dash-fraction dash-period)
555   (number? number?)
556   (_i "Set up a custom style of dash pattern for @var{dash-fraction}
557 ratio of line to space repeated at @var{dash-period} interval for ties.")
558   #{
559      \override Tie.dash-definition =
560        $(make-simple-dash-definition dash-fraction dash-period)
561   #})
562 tieDashed     = \override Tie.dash-definition = #'((0 1 0.4 0.75))
563 tieDotted     = \override Tie.dash-definition = #'((0 1 0.1 0.75))
564 tieHalfDashed = \override Tie.dash-definition = #'((0 0.5 0.4 0.75)
565                                                      (0.5 1 1 1))
566 tieHalfSolid  = \override Tie.dash-definition = #'((0 0.5 1 1)
567                                                      (0.5 1 0.4 0.75))
568 tieSolid      = \revert Tie.dash-definition
569
570
571 %% tuplets
572
573 tupletUp      = \override TupletBracket.direction = #UP
574 tupletDown    = \override TupletBracket.direction = #DOWN
575 tupletNeutral = \revert TupletBracket.direction
576
577
578 %% voice properties
579
580 % dynamic ly:dir?  text script, articulation script ly:dir?
581 voiceOne   = #(context-spec-music (make-voice-props-set 0)  'Voice)
582 voiceTwo   = #(context-spec-music (make-voice-props-set 1)  'Voice)
583 voiceThree = #(context-spec-music (make-voice-props-set 2)  'Voice)
584 voiceFour  = #(context-spec-music (make-voice-props-set 3)  'Voice)
585 oneVoice   = #(context-spec-music (make-voice-props-revert) 'Voice)
586
587
588 %% voice styles
589
590 voiceOneStyle = {
591   \override NoteHead.style = #'diamond
592   \override NoteHead.color = #red
593   \override Stem.color = #red
594   \override Flag.color = #red
595   \override Beam.color = #red
596 }
597 voiceTwoStyle = {
598   \override NoteHead.style = #'triangle
599   \override NoteHead.color = #blue
600   \override Stem.color = #blue
601   \override Flag.color = #blue
602   \override Beam.color = #blue
603 }
604 voiceThreeStyle = {
605   \override NoteHead.style = #'xcircle
606   \override NoteHead.color = #green
607   \override Stem.color = #green
608   \override Flag.color = #green
609   \override Beam.color = #green
610 }
611 voiceFourStyle = {
612   \override NoteHead.style = #'cross
613   \override NoteHead.color = #magenta
614   \override Stem.color = #magenta
615   \override Flag.color = #magenta
616   \override Beam.color = #magenta
617 }
618 voiceNeutralStyle = {
619   \revert NoteHead.style
620   \revert NoteHead.color
621   \revert Stem.color
622   \revert Flag.color
623   \revert Beam.color
624 }
625
626
627 %% volta brackets
628
629 allowVoltaHook =
630 #(define-void-function (parser location bar) (string?)
631                        (allow-volta-hook bar))
632
633 %% x notes
634
635 xNotesOn =
636 #(define-music-function (parser location) ()
637    (_i "Set the default note head style to a cross-shaped style.")
638    (override-head-style '(TabNoteHead NoteHead) 'cross))
639 xNotesOff = \defaultNoteHeads
640 xNote =
641 #(define-music-function (parser location note) (ly:music?)
642    (_i "Print @var{note} with a cross-shaped note head.")
643    (style-note-heads '(TabNoteHead NoteHead) 'cross note))
644
645
646 %% dead notes (these need to come after "x notes")
647
648 % Define aliases of cross-head notes for specific purposes
649 deadNotesOn  = \xNotesOn
650 deadNotesOff = \xNotesOff
651 deadNote     = #xNote