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
202 #(make-music 'MultiMeasureTextEvent
203 ;; Set the 'text based on the 'direction
204 'text (make-fermata-markup)
205 'tweaks '((outside-staff-priority . 40)
206 (outside-staff-padding . 0)))
210 teeny = \set fontSize = #-3
211 tiny = \set fontSize = #-2
212 small = \set fontSize = #-1
213 normalsize = \set fontSize = #0
214 large = \set fontSize = #1
215 huge = \set fontSize = #2
220 glissando = #(make-music 'GlissandoEvent)
226 #(define-music-function (parser location) ()
227 (_i "Set the default note head style to a diamond-shaped style.")
228 (override-head-style '(NoteHead TabNoteHead) 'harmonic))
229 harmonicsOff = \defaultNoteHeads
231 #(define-music-function (parser location note) (ly:music?)
232 (_i "Print @var{note} with a diamond-shaped note head.")
233 (style-note-heads 'NoteHead 'harmonic note))
239 % hide notes, accidentals, etc.
240 \override Dots.transparent = ##t
241 \override NoteHead.transparent = ##t
242 \override NoteHead.no-ledgers = ##t
243 % assume that any Beam inherits transparency from its parent Stem
244 \override Stem.transparent = ##t
245 \override Accidental.transparent = ##t
246 \override Rest.transparent = ##t
247 \override TabNoteHead.transparent = ##t
250 \revert Accidental.transparent
251 \revert Stem.transparent
252 \revert NoteHead.transparent
253 \revert NoteHead.no-ledgers
254 \revert Dots.transparent
255 \revert Rest.transparent
256 \revert TabNoteHead.transparent
263 \set squashedPosition = #0
264 \override NoteHead.style = #'slash
265 \override TabNoteHead.style = #'slash
266 \override Accidental.stencil = ##f
267 \override AccidentalCautionary.stencil = ##f
270 \unset squashedPosition
271 \revert NoteHead.style
272 \revert TabNoteHead.style
273 \revert Accidental.stencil
274 \revert AccidentalCautionary.stencil
280 #(define-music-function (parser location incipit-music) (ly:music?)
281 (_i "Output @var{incipit-music} before the main staff as an indication of
282 its appearance in the original music.")
284 \once \override Staff.InstrumentName.stencil =
286 (let* ((instrument-name (ly:grob-property grob 'long-text))
287 (align-x (ly:grob-property grob 'self-alignment-X 0))
288 (align-y (ly:grob-property grob 'self-alignment-Y 0)))
289 (set! (ly:grob-property grob 'long-text)
293 \new MensuralStaff \with {
294 \override InstrumentName.self-alignment-X = #align-x
295 \override InstrumentName.self-alignment-Y = #align-y
296 instrumentName = #instrument-name
302 $(ly:grob-layout grob)
303 indent-incipit-default = 15\mm
304 line-width = #(primitive-eval
305 '(or (false-if-exception indent)
306 indent-incipit-default))
307 indent = #(primitive-eval
308 '(or (false-if-exception (- line-width incipit-width))
315 \remove "Default_bar_line_engraver"
321 (set! (ly:grob-property grob 'self-alignment-Y) #f)
322 (set! (ly:grob-property grob 'self-alignment-X) RIGHT)
323 (system-start-text::print grob)))
329 \override NoteHead.style = #'kievan
330 \override Stem.X-offset = #stem::kievan-offset-callback
331 \override Stem.stencil = ##f
332 \override Flag.stencil = ##f
333 \override Rest.style = #'mensural
334 \override Accidental.glyph-name-alist = #alteration-kievan-glyph-name-alist
335 \override Dots.style = #'kievan
336 \override Slur.stencil = ##f
337 \override Stem.length = #0.0
338 \override Beam.positions = #beam::get-kievan-positions
339 \override Beam.quantized-positions = #beam::get-kievan-quantized-positions
340 \override NoteHead.duration-log = #note-head::calc-kievan-duration-log
343 \revert NoteHead.style
344 \revert Stem.X-offset
347 \revert Accidental.glyph-name-alist
352 \revert Beam.positions
353 \revert Beam.quantized-positions
354 \revert NoteHead.duration-log
357 %% line and page breaking controls
359 autoLineBreaksOff = {
360 \overrideProperty Score.NonMusicalPaperColumn.line-break-permission ##f
361 \override Score.NonMusicalPaperColumn.line-break-permission = ##f
364 \overrideProperty Score.NonMusicalPaperColumn.line-break-permission #'allow
365 \override Score.NonMusicalPaperColumn.line-break-permission = #'allow
368 \override Score.NonMusicalPaperColumn.page-break-permission = ##f
370 \override Score.NonMusicalPaperColumn.page-break-permission = #'allow
371 autoBreaksOff = { \autoLineBreaksOff \autoPageBreaksOff }
372 autoBreaksOn = { \autoLineBreaksOn \autoPageBreaksOn }
377 mergeDifferentlyDottedOn =
378 \override Staff.NoteCollision.merge-differently-dotted = ##t
379 mergeDifferentlyDottedOff =
380 \revert Staff.NoteCollision.merge-differently-dotted
381 mergeDifferentlyHeadedOn =
382 \override Staff.NoteCollision.merge-differently-headed = ##t
383 mergeDifferentlyHeadedOff =
384 \revert Staff.NoteCollision.merge-differently-headed
387 %% numeric time signature
389 numericTimeSignature = \override Staff.TimeSignature.style = #'numbered
390 defaultTimeSignature = \revert Staff.TimeSignature.style
396 #(define-music-function (parser location) ()
397 (_i "Set the default note head style to a triangle-shaped style.")
398 (override-head-style 'NoteHead 'do))
399 palmMuteOff = \defaultNoteHeads
401 #(define-music-function (parser location note) (ly:music?)
402 (_i "Print @var{note} with a triangle-shaped note head.")
403 (style-note-heads 'NoteHead 'do note))
409 phrasingSlurUp = \override PhrasingSlur.direction = #UP
410 phrasingSlurDown = \override PhrasingSlur.direction = #DOWN
411 phrasingSlurNeutral = \revert PhrasingSlur.direction
413 % dash-patterns (make-simple-dash-definition defined at top of file)
414 phrasingSlurDashPattern =
415 #(define-music-function (parser location dash-fraction dash-period)
417 (_i "Set up a custom style of dash pattern for @var{dash-fraction} ratio of
418 line to space repeated at @var{dash-period} interval for phrasing slurs.")
420 \override PhrasingSlur.dash-definition =
421 $(make-simple-dash-definition dash-fraction dash-period)
424 \override PhrasingSlur.dash-definition = #'((0 1 0.4 0.75))
426 \override PhrasingSlur.dash-definition = #'((0 1 0.1 0.75))
427 phrasingSlurHalfDashed =
428 \override PhrasingSlur.dash-definition = #'((0 0.5 0.4 0.75)
430 phrasingSlurHalfSolid =
431 \override PhrasingSlur.dash-definition = #'((0 0.5 1 1)
434 \revert PhrasingSlur.dash-definition
440 #(define-void-function (parser location) ()
441 (_i "Enable generation of code in final-format (e.g. pdf) files to reference the
442 originating lilypond source statement;
443 this is helpful when developing a score but generates bigger final-format files.")
444 (ly:set-option 'point-and-click #t))
447 #(define-void-function (parser location) ()
448 (_i "Suppress generating extra code in final-format (e.g. pdf) files to point
449 back to the lilypond source statement.")
450 (ly:set-option 'point-and-click #f))
453 #(define-void-function (parser location types) (symbol-list-or-symbol?)
454 (_i "Set a type or list of types (such as @code{#'note-event}) for which point-and-click info is generated.")
455 (ly:set-option 'point-and-click types))
457 %% predefined fretboards
459 predefinedFretboardsOff =
460 \set predefinedDiagramTable = ##f
461 predefinedFretboardsOn =
462 \set predefinedDiagramTable = #default-fret-table
467 aikenHeads = \set shapeNoteStyles = ##(do re miMirror fa sol la ti)
468 aikenHeadsMinor = \set shapeNoteStyles = ##(la ti do re miMirror fa sol)
470 \set shapeNoteStyles = ##(doFunk reFunk miFunk faFunk solFunk laFunk tiFunk)
472 \set shapeNoteStyles = ##(laFunk tiFunk doFunk reFunk miFunk faFunk solFunk)
473 sacredHarpHeads = \set shapeNoteStyles = ##(fa sol la fa sol la mi)
474 sacredHarpHeadsMinor = \set shapeNoteStyles = ##(la mi fa sol la fa sol)
475 southernHarmonyHeads =
476 \set shapeNoteStyles = ##(faThin sol laThin faThin sol laThin miThin)
477 southernHarmonyHeadsMinor =
478 \set shapeNoteStyles = ##(laThin miThin faThin sol laThin faThin sol)
480 \set shapeNoteStyles = ##(doWalker reWalker miWalker faWalker solFunk laWalker tiWalker)
482 \set shapeNoteStyles = ##(laWalker tiWalker doWalker reWalker miWalker faWalker solFunk)
487 shiftOff = \override NoteColumn.horizontal-shift = #0
488 shiftOn = \override NoteColumn.horizontal-shift = #1
489 shiftOnn = \override NoteColumn.horizontal-shift = #2
490 shiftOnnn = \override NoteColumn.horizontal-shift = #3
496 slurUp = \override Slur.direction = #UP
497 slurDown = \override Slur.direction = #DOWN
498 slurNeutral = \revert Slur.direction
500 % dash-patterns (make-simple-dash-definition defined at top of file)
502 #(define-music-function (parser location dash-fraction dash-period)
504 (_i "Set up a custom style of dash pattern for @var{dash-fraction}
505 ratio of line to space repeated at @var{dash-period} interval for slurs.")
507 \override Slur.dash-definition =
508 $(make-simple-dash-definition dash-fraction dash-period)
510 slurDashed = \override Slur.dash-definition = #'((0 1 0.4 0.75))
511 slurDotted = \override Slur.dash-definition = #'((0 1 0.1 0.75))
512 slurHalfDashed = \override Slur.dash-definition = #'((0 0.5 0.4 0.75)
514 slurHalfSolid = \override Slur.dash-definition = #'((0 0.5 1 1)
516 slurSolid = \revert Slur.dash-definition
521 showStaffSwitch = \set followVoice = ##t
522 hideStaffSwitch = \set followVoice = ##f
527 stemUp = \override Stem.direction = #UP
528 stemDown = \override Stem.direction = #DOWN
529 stemNeutral = \revert Stem.direction
534 romanStringNumbers = {
535 \override StringNumber.number-type = #'roman-upper
536 \override StringNumber.stencil = #ly:text-interface::print
537 \override StringNumber.font-encoding = #'latin1
538 \override StringNumber.font-shape = #'italic
540 arabicStringNumbers = {
541 \revert StringNumber.number-type
542 \revert StringNumber.stencil
543 \revert StringNumber.font-encoding
544 \revert StringNumber.font-shape
550 % switch to full notation
553 \revert TabStaff.TimeSignature.stencil
554 % stems (the half note gets a double stem)
555 \revert TabStaff.Stem.length
556 \revert TabStaff.Stem.no-stem-extend
557 \revert TabStaff.Flag.style
558 \revert TabStaff.Stem.details
559 \revert TabStaff.Stem.stencil
560 \revert TabStaff.Flag.stencil
561 \override TabStaff.Stem.stencil = #tabvoice::draw-double-stem-for-half-notes
562 \override TabStaff.Stem.X-extent = #tabvoice::make-double-stem-width-for-half-notes
563 \set TabStaff.autoBeaming = ##t
564 \revert TabStaff.NoteColumn.ignore-collision
566 \revert TabStaff.Beam.stencil
567 \revert TabStaff.StemTremolo.stencil
568 \revert TabStaff.Dots.stencil
569 \revert TabStaff.Tie.stencil
570 \revert TabStaff.Tie.after-line-breaking
571 \revert TabStaff.RepeatTie.stencil
572 \revert TabStaff.RepeatTie.after-line-breaking
573 \revert TabStaff.LaissezVibrerTie.stencil
574 \revert TabStaff.Slur.stencil
575 \revert TabStaff.PhrasingSlur.stencil
577 \revert TabStaff.TupletBracket.stencil
578 \revert TabStaff.TupletNumber.stencil
580 \revert TabStaff.DynamicText.stencil
581 \revert TabStaff.DynamicTextSpanner.stencil
582 \revert TabStaff.DynamicTextSpanner.stencil
583 \revert TabStaff.Hairpin.stencil
585 \revert TabStaff.Rest.stencil
586 \revert TabStaff.MultiMeasureRest.stencil
587 \revert TabStaff.MultiMeasureRestNumber.stencil
588 \revert TabStaff.MultiMeasureRestText.stencil
590 \revert TabStaff.Glissando.stencil
591 \revert TabStaff.Script.stencil
592 \revert TabStaff.TextScript.stencil
593 \revert TabStaff.TextSpanner.stencil
594 \revert TabStaff.Arpeggio.stencil
595 \revert TabStaff.NoteColumn.ignore-collision
598 %tie/repeat tie behaviour
599 hideSplitTiedTabNotes = {
600 \override TabVoice.TabNoteHead.details.tied-properties.break-visibility = #all-invisible
601 \override TabVoice.TabNoteHead.details.tied-properties.parenthesize = ##f
602 \override TabVoice.TabNoteHead.details.repeat-tied-properties.note-head-visible = ##f
603 \override TabVoice.TabNoteHead.details.repeat-tied-properties.parenthesize = ##f
606 showSplitTiedTabNotes = {
607 \override TabVoice.TabNoteHead.details.tied-properties.break-visibility = #begin-of-line-visible
608 \override TabVoice.TabNoteHead.details.tied-properties.parenthesize = ##t
609 \override TabVoice.TabNoteHead.details.repeat-tied-properties.note-head-visible = ##t
610 \override TabVoice.TabNoteHead.details.repeat-tied-properties.parenthesize = ##t
616 % 0.4 staff-space between adjacent texts
617 \override TextScript.extra-spacing-width = #'(-0.0 . 0.4)
618 \override TextScript.extra-spacing-height = #'(-inf.0 . +inf.0)
622 \override TextScript.extra-spacing-width = #'(+inf.0 . -inf.0)
623 \override TextScript.extra-spacing-height = #'(0 . 0)
627 \override Score.MetronomeMark.extra-spacing-width = #'(0 . 1.0)
628 \override Score.RehearsalMark.extra-spacing-width = #'(-0.5 . 0.5)
629 % Raise as much as four staff-spaces before pushing notecolumns right
630 \override Score.MetronomeMark.extra-spacing-height = #'(4 . 4)
631 \override Score.RehearsalMark.extra-spacing-height = #'(4 . 4)
635 \override Score.MetronomeMark.extra-spacing-width = #'(+inf.0 . -inf.0)
636 \override Score.RehearsalMark.extra-spacing-width = #'(+inf.0 . -inf.0)
637 \revert Score.MetronomeMark.extra-spacing-height
638 \revert Score.RehearsalMark.extra-spacing-height
643 textSpannerUp = \override TextSpanner.direction = #UP
644 textSpannerDown = \override TextSpanner.direction = #DOWN
645 textSpannerNeutral = \revert TextSpanner.direction
651 tieUp = \override Tie.direction = #UP
652 tieDown = \override Tie.direction = #DOWN
653 tieNeutral = \revert Tie.direction
655 % dash-patterns (make-simple-dash-definition defined at top of file)
657 #(define-music-function (parser location dash-fraction dash-period)
659 (_i "Set up a custom style of dash pattern for @var{dash-fraction}
660 ratio of line to space repeated at @var{dash-period} interval for ties.")
662 \override Tie.dash-definition =
663 $(make-simple-dash-definition dash-fraction dash-period)
665 tieDashed = \override Tie.dash-definition = #'((0 1 0.4 0.75))
666 tieDotted = \override Tie.dash-definition = #'((0 1 0.1 0.75))
667 tieHalfDashed = \override Tie.dash-definition = #'((0 0.5 0.4 0.75)
669 tieHalfSolid = \override Tie.dash-definition = #'((0 0.5 1 1)
671 tieSolid = \revert Tie.dash-definition
676 tupletUp = \override TupletBracket.direction = #UP
677 tupletDown = \override TupletBracket.direction = #DOWN
678 tupletNeutral = \revert TupletBracket.direction
683 % dynamic ly:dir? text script, articulation script ly:dir?
684 voiceOne = #(context-spec-music (make-voice-props-set 0) 'Voice)
685 voiceTwo = #(context-spec-music (make-voice-props-set 1) 'Voice)
686 voiceThree = #(context-spec-music (make-voice-props-set 2) 'Voice)
687 voiceFour = #(context-spec-music (make-voice-props-set 3) 'Voice)
688 oneVoice = #(context-spec-music (make-voice-props-revert) 'Voice)
694 \override NoteHead.style = #'diamond
695 \override NoteHead.color = #red
696 \override Stem.color = #red
697 \override Beam.color = #red
700 \override NoteHead.style = #'triangle
701 \override NoteHead.color = #blue
702 \override Stem.color = #blue
703 \override Beam.color = #blue
706 \override NoteHead.style = #'xcircle
707 \override NoteHead.color = #green
708 \override Stem.color = #green
709 \override Beam.color = #green
712 \override NoteHead.style = #'cross
713 \override NoteHead.color = #magenta
714 \override Stem.color = #magenta
715 \override Beam.color = #magenta
717 voiceNeutralStyle = {
718 \revert NoteHead.style
719 \revert NoteHead.color
728 #(define-void-function (parser location bar) (string?)
729 (allow-volta-hook bar))
734 #(define-music-function (parser location) ()
735 (_i "Set the default note head style to a cross-shaped style.")
736 (override-head-style '(TabNoteHead NoteHead) 'cross))
737 xNotesOff = \defaultNoteHeads
739 #(define-music-function (parser location note) (ly:music?)
740 (_i "Print @var{note} with a cross-shaped note head.")
741 (style-note-heads '(TabNoteHead NoteHead) 'cross note))
744 %% dead notes (these need to come after "x notes")
746 % Define aliases of cross-head notes for specific purposes
747 deadNotesOn = \xNotesOn
748 deadNotesOff = \xNotesOff