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)))
9 %% common definition for all note head styles reverting
10 %% (palm mute, harmonics, dead notes, ...)
12 #(define-music-function (parser location) ()
13 (_i "Revert to the default note head style.")
14 (revert-head-style '(NoteHead TabNoteHead)))
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." )
25 ((1) (set-accidental-style (car style)))
26 ((2) (set-accidental-style (cadr style) (car style)))
28 (ly:parser-error parser (_ "not an accidental style")
30 (make-music 'Music))))
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.
39 arpeggio = #(make-music 'ArpeggioEvent)
41 \revert Arpeggio.stencil
42 \revert Arpeggio.X-extent
43 \override Arpeggio.arpeggio-direction = #UP
46 \revert Arpeggio.stencil
47 \revert Arpeggio.X-extent
48 \override Arpeggio.arpeggio-direction = #DOWN
51 \revert Arpeggio.stencil
52 \revert Arpeggio.X-extent
53 \revert Arpeggio.arpeggio-direction
54 \revert Arpeggio.dash-definition
57 \revert Arpeggio.X-extent
58 \override Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket
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
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))
74 autoBeamOn = \set autoBeaming = ##t
75 autoBeamOff = \set autoBeaming = ##f
81 \override BalloonTextItem.extra-spacing-width = #'(0 . 0)
82 \override BalloonTextItem.extra-spacing-height = #'(-inf.0 . +inf.0)
85 \override BalloonTextItem.extra-spacing-width = #'(+inf.0 . -inf.0)
86 \override BalloonTextItem.extra-spacing-height = #'(0 . 0)
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)
104 (caddr glyph-list))))
109 bassFigureExtendersOn = {
110 \set useBassFigureExtenders = ##t
111 \set Staff.useBassFigureExtenders = ##t
113 bassFigureExtendersOff = {
114 \set useBassFigureExtenders = ##f
115 \set Staff.useBassFigureExtenders = ##f
117 bassFigureStaffAlignmentDown =
118 \override Staff.BassFigureAlignmentPositioning.direction = #DOWN
119 bassFigureStaffAlignmentUp =
120 \override Staff.BassFigureAlignmentPositioning.direction = #UP
121 bassFigureStaffAlignmentNeutral =
122 \revert Staff.BassFigureAlignmentPositioning.direction
127 cadenzaOn = \set Timing.timing = ##f
129 cadenzaOff = \set Timing.timing = ##t
134 \set chordRootNamer = #(chord-name->italian-markup #t)
135 \set chordPrefixSpacer = #0.4
138 \set chordRootNamer = #(chord-name->german-markup #t)
139 \set chordNoteNamer = #note-name->german-markup
142 \set chordRootNamer = #(chord-name->german-markup #f)
143 \set chordNoteNamer = #note-name->german-markup
146 \set chordRootNamer = #(chord-name->italian-markup #f)
147 \set chordPrefixSpacer = #0.4
150 \set chordNameExceptions = #powerChordExceptions
154 %% compressFullBarRests
156 compressFullBarRests = \set Score.skipBars = ##t
157 expandFullBarRests = \set Score.skipBars = ##f
162 dotsUp = \override Dots.direction = #UP
163 dotsDown = \override Dots.direction = #DOWN
164 dotsNeutral = \revert Dots.direction
170 \override DynamicText.direction = #UP
171 \override DynamicLineSpanner.direction = #UP
174 \override DynamicText.direction = #DOWN
175 \override DynamicLineSpanner.direction = #DOWN
178 \revert DynamicText.direction
179 \revert DynamicLineSpanner.direction
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
192 \revert NoteHead.stencil
193 \revert NoteHead.font-size
194 \revert NoteHead.font-family
195 \revert NoteHead.font-series
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
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)))
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
231 glissando = #(make-music 'GlissandoEvent)
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
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))
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
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
274 \set squashedPosition = #0
275 \override NoteHead.style = #'slash
276 \override TabNoteHead.style = #'slash
277 \override Accidental.stencil = ##f
278 \override AccidentalCautionary.stencil = ##f
281 \unset squashedPosition
282 \revert NoteHead.style
283 \revert TabNoteHead.style
284 \revert Accidental.stencil
285 \revert AccidentalCautionary.stencil
290 \override NoteHead.style = #'kievan
291 \override Stem.X-offset = #stem::kievan-offset-callback
292 \override Stem.stencil = ##f
293 \override Flag.stencil = ##f
294 \override Rest.style = #'mensural
295 \override Accidental.glyph-name-alist = #alteration-kievan-glyph-name-alist
296 \override Dots.style = #'kievan
297 \override Slur.stencil = ##f
298 \override Stem.length = #0.0
299 \override Beam.positions = #beam::get-kievan-positions
300 \override Beam.quantized-positions = #beam::get-kievan-quantized-positions
301 \override NoteHead.duration-log = #note-head::calc-kievan-duration-log
304 \revert NoteHead.style
305 \revert Stem.X-offset
308 \revert Accidental.glyph-name-alist
313 \revert Beam.positions
314 \revert Beam.quantized-positions
315 \revert NoteHead.duration-log
320 mergeDifferentlyDottedOn =
321 \override Staff.NoteCollision.merge-differently-dotted = ##t
322 mergeDifferentlyDottedOff =
323 \revert Staff.NoteCollision.merge-differently-dotted
324 mergeDifferentlyHeadedOn =
325 \override Staff.NoteCollision.merge-differently-headed = ##t
326 mergeDifferentlyHeadedOff =
327 \revert Staff.NoteCollision.merge-differently-headed
330 %% numeric time signature
332 numericTimeSignature = \override Staff.TimeSignature.style = #'numbered
333 defaultTimeSignature = \revert Staff.TimeSignature.style
339 #(define-music-function (parser location) ()
340 (_i "Set the default note head style to a triangle-shaped style.")
341 (override-head-style 'NoteHead 'do))
342 palmMuteOff = \defaultNoteHeads
344 #(define-music-function (parser location note) (ly:music?)
345 (_i "Print @var{note} with a triangle-shaped note head.")
346 (style-note-heads 'NoteHead 'do note))
352 phrasingSlurUp = \override PhrasingSlur.direction = #UP
353 phrasingSlurDown = \override PhrasingSlur.direction = #DOWN
354 phrasingSlurNeutral = \revert PhrasingSlur.direction
356 % dash-patterns (make-simple-dash-definition defined at top of file)
357 phrasingSlurDashPattern =
358 #(define-music-function (parser location dash-fraction dash-period)
360 (_i "Set up a custom style of dash pattern for @var{dash-fraction} ratio of
361 line to space repeated at @var{dash-period} interval for phrasing slurs.")
363 \override PhrasingSlur.dash-definition =
364 $(make-simple-dash-definition dash-fraction dash-period)
367 \override PhrasingSlur.dash-definition = #'((0 1 0.4 0.75))
369 \override PhrasingSlur.dash-definition = #'((0 1 0.1 0.75))
370 phrasingSlurHalfDashed =
371 \override PhrasingSlur.dash-definition = #'((0 0.5 0.4 0.75)
373 phrasingSlurHalfSolid =
374 \override PhrasingSlur.dash-definition = #'((0 0.5 1 1)
377 \revert PhrasingSlur.dash-definition
383 #(define-void-function (parser location) ()
384 (_i "Enable generation of code in final-format (e.g. pdf) files to reference the
385 originating lilypond source statement;
386 this is helpful when developing a score but generates bigger final-format files.")
387 (ly:set-option 'point-and-click #t))
390 #(define-void-function (parser location) ()
391 (_i "Suppress generating extra code in final-format (e.g. pdf) files to point
392 back to the lilypond source statement.")
393 (ly:set-option 'point-and-click #f))
396 #(define-void-function (parser location types) (symbol-list-or-symbol?)
397 (_i "Set a type or list of types (such as @code{#'note-event}) for which point-and-click info is generated.")
398 (ly:set-option 'point-and-click types))
400 %% predefined fretboards
402 predefinedFretboardsOff =
403 \set predefinedDiagramTable = ##f
404 predefinedFretboardsOn =
405 \set predefinedDiagramTable = #default-fret-table
410 aikenHeads = \set shapeNoteStyles = ##(do re miMirror fa sol la ti)
411 aikenHeadsMinor = \set shapeNoteStyles = ##(la ti do re miMirror fa sol)
413 \set shapeNoteStyles = ##(doFunk reFunk miFunk faFunk solFunk laFunk tiFunk)
415 \set shapeNoteStyles = ##(laFunk tiFunk doFunk reFunk miFunk faFunk solFunk)
416 sacredHarpHeads = \set shapeNoteStyles = ##(fa sol la fa sol la mi)
417 sacredHarpHeadsMinor = \set shapeNoteStyles = ##(la mi fa sol la fa sol)
418 southernHarmonyHeads =
419 \set shapeNoteStyles = ##(faThin sol laThin faThin sol laThin miThin)
420 southernHarmonyHeadsMinor =
421 \set shapeNoteStyles = ##(laThin miThin faThin sol laThin faThin sol)
423 \set shapeNoteStyles = ##(doWalker reWalker miWalker faWalker solFunk laWalker tiWalker)
425 \set shapeNoteStyles = ##(laWalker tiWalker doWalker reWalker miWalker faWalker solFunk)
430 shiftOn = \override NoteColumn.horizontal-shift = #1
431 shiftOnn = \override NoteColumn.horizontal-shift = #2
432 shiftOnnn = \override NoteColumn.horizontal-shift = #3
433 shiftOff = \revert NoteColumn.horizontal-shift
439 slurUp = \override Slur.direction = #UP
440 slurDown = \override Slur.direction = #DOWN
441 slurNeutral = \revert Slur.direction
443 % dash-patterns (make-simple-dash-definition defined at top of file)
445 #(define-music-function (parser location dash-fraction dash-period)
447 (_i "Set up a custom style of dash pattern for @var{dash-fraction}
448 ratio of line to space repeated at @var{dash-period} interval for slurs.")
450 \override Slur.dash-definition =
451 $(make-simple-dash-definition dash-fraction dash-period)
453 slurDashed = \override Slur.dash-definition = #'((0 1 0.4 0.75))
454 slurDotted = \override Slur.dash-definition = #'((0 1 0.1 0.75))
455 slurHalfDashed = \override Slur.dash-definition = #'((0 0.5 0.4 0.75)
457 slurHalfSolid = \override Slur.dash-definition = #'((0 0.5 1 1)
459 slurSolid = \revert Slur.dash-definition
464 showStaffSwitch = \set followVoice = ##t
465 hideStaffSwitch = \set followVoice = ##f
470 stemUp = \override Stem.direction = #UP
471 stemDown = \override Stem.direction = #DOWN
472 stemNeutral = \revert Stem.direction
477 % switch to full notation
480 \revert TabStaff.TimeSignature.stencil
481 % stems (the half note gets a double stem)
482 \revert TabStaff.Stem.length
483 \revert TabStaff.Stem.no-stem-extend
484 \revert TabStaff.Flag.style
485 \revert TabStaff.Stem.details
486 \revert TabStaff.Stem.stencil
487 \revert TabStaff.Flag.stencil
488 \override TabStaff.Stem.stencil = #tabvoice::draw-double-stem-for-half-notes
489 \override TabStaff.Stem.X-extent = #tabvoice::make-double-stem-width-for-half-notes
490 \set TabStaff.autoBeaming = ##t
491 \revert TabStaff.NoteColumn.ignore-collision
493 \revert TabStaff.Beam.stencil
494 \revert TabStaff.StemTremolo.stencil
495 \revert TabStaff.Dots.stencil
496 \revert TabStaff.Tie.stencil
497 \revert TabStaff.Tie.after-line-breaking
498 \revert TabStaff.RepeatTie.stencil
499 \revert TabStaff.RepeatTie.after-line-breaking
500 \revert TabStaff.LaissezVibrerTie.stencil
501 \revert TabStaff.Slur.stencil
502 \revert TabStaff.PhrasingSlur.stencil
504 \revert TabStaff.TupletBracket.stencil
505 \revert TabStaff.TupletNumber.stencil
507 \revert TabStaff.DynamicText.stencil
508 \revert TabStaff.DynamicTextSpanner.stencil
509 \revert TabStaff.DynamicTextSpanner.stencil
510 \revert TabStaff.Hairpin.stencil
512 \revert TabStaff.Rest.stencil
513 \revert TabStaff.MultiMeasureRest.stencil
514 \revert TabStaff.MultiMeasureRestNumber.stencil
515 \revert TabStaff.MultiMeasureRestText.stencil
517 \revert TabStaff.Glissando.stencil
518 \revert TabStaff.Script.stencil
519 \revert TabStaff.TextScript.stencil
520 \revert TabStaff.TextSpanner.stencil
521 \revert TabStaff.Arpeggio.stencil
522 \revert TabStaff.NoteColumn.ignore-collision
525 %tie/repeat tie behaviour
526 hideSplitTiedTabNotes = {
527 \override TabVoice.TabNoteHead.details.tied-properties.break-visibility = #all-invisible
528 \override TabVoice.TabNoteHead.details.tied-properties.parenthesize = ##f
529 \override TabVoice.TabNoteHead.details.repeat-tied-properties.note-head-visible = ##f
530 \override TabVoice.TabNoteHead.details.repeat-tied-properties.parenthesize = ##f
533 showSplitTiedTabNotes = {
534 \override TabVoice.TabNoteHead.details.tied-properties.break-visibility = #begin-of-line-visible
535 \override TabVoice.TabNoteHead.details.tied-properties.parenthesize = ##t
536 \override TabVoice.TabNoteHead.details.repeat-tied-properties.note-head-visible = ##t
537 \override TabVoice.TabNoteHead.details.repeat-tied-properties.parenthesize = ##t
543 % 0.4 staff-space between adjacent texts
544 \override TextScript.extra-spacing-width = #'(-0.0 . 0.4)
545 \override TextScript.extra-spacing-height = #'(-inf.0 . +inf.0)
549 \override TextScript.extra-spacing-width = #'(+inf.0 . -inf.0)
550 \override TextScript.extra-spacing-height = #'(0 . 0)
554 \override Score.MetronomeMark.extra-spacing-width = #'(0 . 1.0)
555 \override Score.RehearsalMark.extra-spacing-width = #'(-0.5 . 0.5)
556 % Raise as much as four staff-spaces before pushing notecolumns right
557 \override Score.MetronomeMark.extra-spacing-height = #'(4 . 4)
558 \override Score.RehearsalMark.extra-spacing-height = #'(4 . 4)
562 \override Score.MetronomeMark.extra-spacing-width = #'(+inf.0 . -inf.0)
563 \override Score.RehearsalMark.extra-spacing-width = #'(+inf.0 . -inf.0)
564 \revert Score.MetronomeMark.extra-spacing-height
565 \revert Score.RehearsalMark.extra-spacing-height
570 textSpannerUp = \override TextSpanner.direction = #UP
571 textSpannerDown = \override TextSpanner.direction = #DOWN
572 textSpannerNeutral = \revert TextSpanner.direction
578 tieUp = \override Tie.direction = #UP
579 tieDown = \override Tie.direction = #DOWN
580 tieNeutral = \revert Tie.direction
582 % dash-patterns (make-simple-dash-definition defined at top of file)
584 #(define-music-function (parser location dash-fraction dash-period)
586 (_i "Set up a custom style of dash pattern for @var{dash-fraction}
587 ratio of line to space repeated at @var{dash-period} interval for ties.")
589 \override Tie.dash-definition =
590 $(make-simple-dash-definition dash-fraction dash-period)
592 tieDashed = \override Tie.dash-definition = #'((0 1 0.4 0.75))
593 tieDotted = \override Tie.dash-definition = #'((0 1 0.1 0.75))
594 tieHalfDashed = \override Tie.dash-definition = #'((0 0.5 0.4 0.75)
596 tieHalfSolid = \override Tie.dash-definition = #'((0 0.5 1 1)
598 tieSolid = \revert Tie.dash-definition
603 tupletUp = \override TupletBracket.direction = #UP
604 tupletDown = \override TupletBracket.direction = #DOWN
605 tupletNeutral = \revert TupletBracket.direction
610 % dynamic ly:dir? text script, articulation script ly:dir?
611 voiceOne = #(context-spec-music (make-voice-props-set 0) 'Voice)
612 voiceTwo = #(context-spec-music (make-voice-props-set 1) 'Voice)
613 voiceThree = #(context-spec-music (make-voice-props-set 2) 'Voice)
614 voiceFour = #(context-spec-music (make-voice-props-set 3) 'Voice)
615 oneVoice = #(context-spec-music (make-voice-props-revert) 'Voice)
621 \override NoteHead.style = #'diamond
622 \override NoteHead.color = #red
623 \override Stem.color = #red
624 \override Beam.color = #red
627 \override NoteHead.style = #'triangle
628 \override NoteHead.color = #blue
629 \override Stem.color = #blue
630 \override Beam.color = #blue
633 \override NoteHead.style = #'xcircle
634 \override NoteHead.color = #green
635 \override Stem.color = #green
636 \override Beam.color = #green
639 \override NoteHead.style = #'cross
640 \override NoteHead.color = #magenta
641 \override Stem.color = #magenta
642 \override Beam.color = #magenta
644 voiceNeutralStyle = {
645 \revert NoteHead.style
646 \revert NoteHead.color
655 #(define-void-function (parser location bar) (string?)
656 (allow-volta-hook bar))
661 #(define-music-function (parser location) ()
662 (_i "Set the default note head style to a cross-shaped style.")
663 (override-head-style '(TabNoteHead NoteHead) 'cross))
664 xNotesOff = \defaultNoteHeads
666 #(define-music-function (parser location note) (ly:music?)
667 (_i "Print @var{note} with a cross-shaped note head.")
668 (style-note-heads '(TabNoteHead NoteHead) 'cross note))
671 %% dead notes (these need to come after "x notes")
673 % Define aliases of cross-head notes for specific purposes
674 deadNotesOn = \xNotesOn
675 deadNotesOff = \xNotesOff