X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Fproperty-init.ly;h=1ab7d5e5d9d86db0fbe2728196af2ea6d0061f1c;hb=ad6a4515fb0908ca8e64aede4151004a6efaaaef;hp=9f9d1d27853525fd67e3e9ada73d588bda8f58fc;hpb=d4695990e1da37b5552f25305b65cabe660a167c;p=lilypond.git diff --git a/ly/property-init.ly b/ly/property-init.ly index 9f9d1d2785..1ab7d5e5d9 100644 --- a/ly/property-init.ly +++ b/ly/property-init.ly @@ -1,77 +1,154 @@ % property-init.ly -\version "2.11.52" +\version "2.12.0" -stemUp = \override Stem #'direction = #UP -stemDown = \override Stem #'direction = #DOWN -stemNeutral= \revert Stem #'direction +%% for dashed slurs, phrasing slurs, and ties +#(define (make-simple-dash-definition dash-fraction dash-period) + (list (list 0 1 dash-fraction dash-period))) -slurUp = \override Slur #'direction = #UP -slurDown = \override Slur #'direction = #DOWN -slurNeutral = \revert Slur #'direction -%% There's also dash, but setting dash period/length should be fixed. -slurDashed = { - \override Slur #'dash-period = #0.75 - \override Slur #'dash-fraction = #0.4 +%% arpeggios + +% For drawing vertical chord brackets with \arpeggio +% This is a shorthand for the value of the print-function property +% of either Staff.Arpeggio or PianoStaff.Arpeggio, depending whether +% cross-staff brackets are desired. + +arpeggio = #(make-music 'ArpeggioEvent) +arpeggioArrowUp = { + \revert Arpeggio #'stencil + \revert Arpeggio #'X-extent + \override Arpeggio #'arpeggio-direction = #UP +} +arpeggioArrowDown = { + \revert Arpeggio #'stencil + \revert Arpeggio #'X-extent + \override Arpeggio #'arpeggio-direction = #DOWN +} +arpeggioNormal = { + \revert Arpeggio #'stencil + \revert Arpeggio #'X-extent + \revert Arpeggio #'arpeggio-direction + \revert Arpeggio #'dash-definition +} +arpeggioBracket = { + \revert Arpeggio #'X-extent + \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-bracket } -slurDotted = { - \override Slur #'dash-period = #0.75 - \override Slur #'dash-fraction = #0.1 +arpeggioParenthesis = { + \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur + \override Arpeggio #'X-extent = #ly:grob::stencil-width + \revert Arpeggio #'dash-definition } -slurSolid = { - \revert Slur #'dash-period - \revert Slur #'dash-fraction +arpeggioParenthesisDashed = { + \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur + \override Arpeggio #'X-extent = #ly:grob::stencil-width + \override Arpeggio #'dash-definition = #'((0 1 0.4 0.75)) } -phrasingSlurUp = \override PhrasingSlur #'direction = #UP -phrasingSlurDown = \override PhrasingSlur #'direction = #DOWN -phrasingSlurNeutral = \revert PhrasingSlur #'direction +%% auto beaming -mergeDifferentlyDottedOn = { - \override Staff.NoteCollision #'merge-differently-dotted = ##t +autoBeamOn = \set autoBeaming = ##t +autoBeamOff = \set autoBeaming = ##f + + +%% balloon length + +balloonLengthOn = { + \override BalloonTextItem #'extra-spacing-width = #'(0 . 0) + \override BalloonTextItem #'extra-spacing-height = #'(-inf.0 . +inf.0) } -mergeDifferentlyDottedOff = { - \revert Staff.NoteCollision #'merge-differently-dotted +balloonLengthOff = { + \override BalloonTextItem #'extra-spacing-width = #'(+inf.0 . -inf.0) + \override BalloonTextItem #'extra-spacing-height = #'(0 . 0) } -mergeDifferentlyHeadedOn = { - \override Staff.NoteCollision #'merge-differently-headed = ##t + +%% bass figures + +bassFigureExtendersOn = { + \set useBassFigureExtenders = ##t + \set Staff.useBassFigureExtenders = ##t } -mergeDifferentlyHeadedOff = { - \revert Staff.NoteCollision #'merge-differently-headed +bassFigureExtendersOff = { + \set useBassFigureExtenders = ##f + \set Staff.useBassFigureExtenders = ##f } +bassFigureStaffAlignmentDown = + \override Staff.BassFigureAlignmentPositioning #'direction = #DOWN +bassFigureStaffAlignmentUp = + \override Staff.BassFigureAlignmentPositioning #'direction = #UP +bassFigureStaffAlignmentNeutral = + \revert Staff.BassFigureAlignmentPositioning #'direction -shiftOn = \override NoteColumn #'horizontal-shift = #1 -shiftOnn = \override NoteColumn #'horizontal-shift = #2 -shiftOnnn = \override NoteColumn #'horizontal-shift = #3 -shiftOff = \revert NoteColumn #'horizontal-shift -tieUp = \override Tie #'direction = #UP -tieDown = \override Tie #'direction = #DOWN -tieNeutral = \revert Tie #'direction +%% cadenzas + +cadenzaOn = \set Timing.timing = ##f +cadenzaOff = { + \set Timing.timing = ##t + \set Timing.measurePosition = #ZERO-MOMENT +} + + +%% chord names + +frenchChords = { + \set chordRootNamer = #(chord-name->italian-markup #t) + \set chordPrefixSpacer = #0.4 +} +germanChords = { + \set chordRootNamer = #(chord-name->german-markup #t) + \set chordNoteNamer = #note-name->german-markup +} +semiGermanChords = { + \set chordRootNamer = #(chord-name->german-markup #f) + \set chordNoteNamer = #note-name->german-markup +} +italianChords = { + \set chordRootNamer = #(chord-name->italian-markup #f) + \set chordPrefixSpacer = #0.4 +} + + +%% compressFullBarRests + +compressFullBarRests = \set Score.skipBars = ##t +expandFullBarRests = \set Score.skipBars = ##f + + +%% dots + +dotsUp = \override Dots #'direction = #UP +dotsDown = \override Dots #'direction = #DOWN +dotsNeutral = \revert Dots #'direction + + +%% dynamics -tieDashed = { - \override Tie #'dash-period = #0.75 - \override Tie #'dash-fraction = #0.4 +dynamicUp = { + \override DynamicText #'direction = #UP + \override DynamicLineSpanner #'direction = #UP } -tieDotted = { - \override Tie #'dash-period = #0.75 - \override Tie #'dash-fraction = #0.1 +dynamicDown = { + \override DynamicText #'direction = #DOWN + \override DynamicLineSpanner #'direction = #DOWN } -tieSolid = { - \revert Tie #'dash-period - \revert Tie #'dash-fraction +dynamicNeutral = { + \revert DynamicText #'direction + \revert DynamicLineSpanner #'direction } + +%% easy heads + easyHeadsOn = { - \override NoteHead #'stencil = #ly:note-head::brew-ez-stencil - \override NoteHead #'font-size = #-7 + \override NoteHead #'stencil = #note-head::brew-ez-stencil + \override NoteHead #'font-size = #-8 \override NoteHead #'font-family = #'sans \override NoteHead #'font-series = #'bold } - easyHeadsOff = { \revert NoteHead #'stencil \revert NoteHead #'font-size @@ -79,261 +156,361 @@ easyHeadsOff = { \revert NoteHead #'font-series } -aikenHeads = \set shapeNoteStyles = ##(do re mi fa #f la ti) -sacredHarpHeads = - \set shapeNoteStyles = ##(fa #f la fa #f la mi) +%% endincipit -dynamicUp = { - \override DynamicText #'direction = #UP - \override DynamicLineSpanner #'direction = #UP +%% End the incipit and print a ``normal line start''. +endincipit = \context Staff { + \partial 16 s16 % Hack to handle e.g. \bar ".|" \endincipit + \once \override Staff.Clef #'full-size-change = ##t + \once \override Staff.Clef #'non-default = ##t + \bar "" } -dynamicDown = { - \override DynamicText #'direction = #DOWN - \override DynamicLineSpanner #'direction = #DOWN -} -dynamicNeutral = { - \revert DynamicText #'direction - \revert DynamicLineSpanner #'direction -} +%% fermata markup +fermataMarkup = +#(make-music 'MultiMeasureTextEvent + ; Set the 'text based on the 'direction + 'tweaks (list (cons 'text (lambda (grob) + (if (eq? (ly:grob-property grob 'direction) DOWN) + (markup #:musicglyph "scripts.dfermata") + (markup #:musicglyph "scripts.ufermata")))))) -dotsUp = \override Dots #'direction = #UP -dotsDown = \override Dots #'direction = #DOWN -dotsNeutral = \revert Dots #'direction -tupletUp = \override TupletBracket #'direction = #UP -tupletDown = \override TupletBracket #'direction = #DOWN -tupletNeutral = \revert TupletBracket #'direction +%% font sizes -cadenzaOn = \set Timing.timing = ##f -cadenzaOff = { - \set Timing.timing = ##t - \set Timing.measurePosition = #ZERO-MOMENT -} +teeny = \set fontSize = #-3 +tiny = \set fontSize = #-2 +small = \set fontSize = #-1 +normalsize = \set fontSize = #0 +large = \set fontSize = #1 +huge = \set fontSize = #2 -% dynamic ly:dir? text script, articulation script ly:dir? -oneVoice = #(context-spec-music (make-voice-props-revert) 'Voice) -voiceOne = #(context-spec-music (make-voice-props-set 0) 'Voice) -voiceTwo = #(context-spec-music (make-voice-props-set 1) 'Voice) -voiceThree =#(context-spec-music (make-voice-props-set 2) 'Voice) -voiceFour = #(context-spec-music (make-voice-props-set 3) 'Voice) -voiceOneStyle = { - \override NoteHead #'style = #'diamond - \override NoteHead #'color = #red - \override Stem #'color = #red - \override Beam #'color = #red -} -voiceTwoStyle = { - \override NoteHead #'style = #'triangle - \override NoteHead #'color = #blue - \override Stem #'color = #blue - \override Beam #'color = #blue -} -voiceThreeStyle = { - \override NoteHead #'style = #'xcircle - \override NoteHead #'color = #green - \override Stem #'color = #green - \override Beam #'color = #green +%% glissando + +glissando = #(make-music 'GlissandoEvent) + + +%% harmonics + +harmonicsOn = \override NoteHead #'style = #'harmonic +harmonicsOff = \revert NoteHead #'style + + +%% hideNotes + +hideNotes = { + % hide notes, accidentals, etc. + \override Dots #'transparent = ##t + \override NoteHead #'transparent = ##t + \override NoteHead #'no-ledgers = ##t + \override Stem #'transparent = ##t + \override Beam #'transparent = ##t + \override Accidental #'transparent = ##t +} +unHideNotes = { + \revert Accidental #'transparent + \revert Beam #'transparent + \revert Stem #'transparent + \revert NoteHead #'transparent + \revert NoteHead #'no-ledgers + \revert Dots #'transparent } -voiceFourStyle = { - \override NoteHead #'style = #'cross - \override NoteHead #'color = #magenta - \override Stem #'color = #magenta - \override Beam #'color = #magenta + + +%% improvisation + +improvisationOn = { + \set squashedPosition = #0 + \override NoteHead #'style = #'slash + \override Accidental #'stencil = ##f } -voiceNeutralStyle = { +improvisationOff = { + \unset squashedPosition \revert NoteHead #'style - \revert NoteHead #'color - \revert Stem #'color - \revert Beam #'color + \revert Accidental #'stencil } -teeny = { - \set fontSize = #-3 -} -tiny = { - \set fontSize = #-2 -} +%% merging -small = { - \set fontSize = #-1 -} +mergeDifferentlyDottedOn = + \override Staff.NoteCollision #'merge-differently-dotted = ##t +mergeDifferentlyDottedOff = + \revert Staff.NoteCollision #'merge-differently-dotted +mergeDifferentlyHeadedOn = + \override Staff.NoteCollision #'merge-differently-headed = ##t +mergeDifferentlyHeadedOff = + \revert Staff.NoteCollision #'merge-differently-headed -normalsize = { - \set fontSize = #0 -} -large = { - \set fontSize = #1 -} +%% numeric time signature -huge = { - \set fontSize = #2 -} +numericTimeSignature = \override Staff.TimeSignature #'style = #'() +defaultTimeSignature = \revert Staff.TimeSignature #'style -%% End the incipit and print a ``normal line start''. -endincipit = \context Staff { - \partial 16 s16 % Hack to handle e.g. \bar ".|" \endincipit - \once \override Staff.Clef #'full-size-change = ##t - \once \override Staff.Clef #'non-default = ##t - \bar "" -} -autoBeamOff = \set autoBeaming = ##f -autoBeamOn = \set autoBeaming = ##t +%% palm mutes -textLengthOn = { - \override TextScript #'extra-spacing-width = #'(0 . 0) - \override TextScript #'infinite-spacing-height = ##t -} +palmMuteOn = +#(define-music-function (parser location) () + (override-head-style 'NoteHead 'do)) +palmMuteOff = +#(define-music-function (parser location) () + (revert-head-style 'NoteHead)) +palmMute = +#(define-music-function (parser location note) (ly:music?) + (style-note-heads 'NoteHead 'do note)) -textLengthOff = { - \override TextScript #'extra-spacing-width = #'(+inf.0 . -inf.0) - \override TextScript #'infinite-spacing-height = ##f -} -balloonLengthOn = { - \override BalloonTextItem #'extra-spacing-width = #'(0 . 0) - \override BalloonTextItem #'infinite-spacing-height = ##t -} +%% phrasing slurs -balloonLengthOff = { - \override BalloonTextItem #'extra-spacing-width = #'(+inf.0 . -inf.0) - \override BalloonTextItem #'infinite-spacing-height = ##f -} +% directions +phrasingSlurUp = \override PhrasingSlur #'direction = #UP +phrasingSlurDown = \override PhrasingSlur #'direction = #DOWN +phrasingSlurNeutral = \revert PhrasingSlur #'direction +% dash-patterns (make-simple-dash-definition defined at top of file) +phrasingSlurDashPattern = +#(define-music-function (parser location dash-fraction dash-period) + (number? number?) + #{ + \override PhrasingSlur #'dash-definition = + $(make-simple-dash-definition dash-fraction dash-period) + #}) +phrasingSlurDashed = + \override PhrasingSlur #'dash-definition = #'((0 1 0.4 0.75)) +phrasingSlurDotted = + \override PhrasingSlur #'dash-definition = #'((0 1 0.1 0.75)) +phrasingSlurHalfDashed = + \override PhrasingSlur #'dash-definition = #'((0 0.5 0.4 0.75) + (0.5 1 1 1)) +phrasingSlurHalfSolid = + \override PhrasingSlur #'dash-definition = #'((0 0.5 1 1) + (0.5 1 0.4 0.75)) +phrasingSlurSolid = + \revert PhrasingSlur #'dash-definition -showStaffSwitch = \set followVoice = ##t -hideStaffSwitch = \set followVoice = ##f -expandFullBarRests = { - \set Score.skipBars = ##f -} +%% point and click -compressFullBarRests = { - \set Score.skipBars = ##t -} +pointAndClickOn = +#(define-music-function (parser location) () + (ly:set-option 'point-and-click #t) + (make-music 'SequentialMusic 'void #t)) +pointAndClickOff = +#(define-music-function (parser location) () + (ly:set-option 'point-and-click #f) + (make-music 'SequentialMusic 'void #t)) -numericTimeSignature = { - \override Staff.TimeSignature #'style = #'() -} -defaultTimeSignature = { - \revert Staff.TimeSignature #'style -} +%% predefined fretboards +predefinedFretboardsOff = + \set FretBoards.predefinedDiagramTable = ##f +predefinedFretboardsOn = + \set FretBoards.predefinedDiagramTable = #fretboard-table -% For drawing vertical chord brackets with \arpeggio -% This is a shorthand for the value of the print-function property -% of either Staff.Arpeggio or PianoStaff.Arpeggio, depending whether -% cross-staff brackets are desired. -arpeggio = #(make-music 'ArpeggioEvent) +%% shape note heads -arpeggioArrowUp = \sequential { - \revert Arpeggio #'stencil - \override Arpeggio #'arpeggio-direction = #UP -} -arpeggioArrowDown = \sequential { - \revert Arpeggio #'stencil - \override Arpeggio #'arpeggio-direction = #DOWN -} -arpeggioNormal = \sequential { - \revert Arpeggio #'stencil - \revert Arpeggio #'arpeggio-direction -} -arpeggioBracket = \sequential { - \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-bracket -} -arpeggioParenthesis = \sequential { - \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur -} +aikenHeads = \set shapeNoteStyles = #'#(do re mi fa #f la ti) +sacredHarpHeads = \set shapeNoteStyles = #'#(fa #f la fa #f la mi) -glissando = #(make-music 'GlissandoEvent) -fermataMarkup = \markup { \musicglyph #"scripts.ufermata" } +%% shifts -hideNotes =\sequential { - % hide notes, accidentals, etc. - \override Dots #'transparent = ##t - \override NoteHead #'transparent = ##t - \override NoteHead #'no-ledgers = ##t - \override Stem #'transparent = ##t - \override Beam #'transparent = ##t - \override Accidental #'transparent = ##t -} +shiftOn = \override NoteColumn #'horizontal-shift = #1 +shiftOnn = \override NoteColumn #'horizontal-shift = #2 +shiftOnnn = \override NoteColumn #'horizontal-shift = #3 +shiftOff = \revert NoteColumn #'horizontal-shift -unHideNotes = \sequential { - \revert Accidental #'transparent - \revert Beam #'transparent - \revert Stem #'transparent - \revert NoteHead #'transparent - \revert NoteHead #'no-ledgers - \revert Dots #'transparent -} +%% slurs -germanChords = { - \set chordRootNamer = #(chord-name->german-markup #t) - \set chordNoteNamer = #note-name->german-markup -} -semiGermanChords = { - \set chordRootNamer = #(chord-name->german-markup #f) - \set chordNoteNamer = #note-name->german-markup -} +% directions +slurUp = \override Slur #'direction = #UP +slurDown = \override Slur #'direction = #DOWN +slurNeutral = \revert Slur #'direction -frenchChords = { - \set chordRootNamer = #(chord-name->italian-markup #t) - \set chordPrefixSpacer = #0.4 -} +% dash-patterns (make-simple-dash-definition defined at top of file) +slurDashPattern = +#(define-music-function (parser location dash-fraction dash-period) + (number? number?) + #{ + \override Slur #'dash-definition = + $(make-simple-dash-definition dash-fraction dash-period) + #}) +slurDashed = \override Slur #'dash-definition = #'((0 1 0.4 0.75)) +slurDotted = \override Slur #'dash-definition = #'((0 1 0.1 0.75)) +slurHalfDashed = \override Slur #'dash-definition = #'((0 0.5 0.4 0.75) + (0.5 1 1 1)) +slurHalfSolid = \override Slur #'dash-definition = #'((0 0.5 1 1) + (0.5 1 0.4 0.75)) +slurSolid = \revert Slur #'dash-definition -italianChords = { - \set chordRootNamer = #(chord-name->italian-markup #f) - \set chordPrefixSpacer = #0.4 -} -improvisationOn = { - \set squashedPosition = #0 - \override NoteHead #'style = #'slash - \override Accidental #'stencil = ##f -} +%% staff switches + +showStaffSwitch = \set followVoice = ##t +hideStaffSwitch = \set followVoice = ##f + -improvisationOff = { - \unset squashedPosition - \revert NoteHead #'style - \revert Accidental #'stencil +%% stems + +stemUp = \override Stem #'direction = #UP +stemDown = \override Stem #'direction = #DOWN +stemNeutral = \revert Stem #'direction + + +%% tabFullNotation + +tabFullNotation = { + % time signature + \revert TabStaff.TimeSignature #'stencil + % stems (the half note gets a double stem) + \override TabVoice.Stem #'stencil = #tabvoice::draw-double-stem-for-half-notes + % beams, dots + \revert TabVoice.Beam #'stencil + \revert TabVoice.Dots #'stencil + \revert TabVoice.Tie #'stencil + \revert TabVoice.Tie #'after-line-breaking + \revert TabVoice.RepeatTie #'stencil + \revert TabVoice.RepeatTie #'after-line-breaking + \revert TabVoice.LaissezVibrerTie #'stencil + \revert TabVoice.Slur #'stencil + \revert PhrasingSlur #'stencil + % tuplet stuff + \revert TabVoice.TupletBracket #'stencil + \revert TabVoice.TupletNumber #'stencil + % dynamic signs + \revert DynamicText #'transparent + \revert DynamicTextSpanner #'stencil + \revert TabVoice.DynamicTextSpanner #'stencil + \revert TabVoice.Hairpin #'transparent + % rests + \revert TabVoice.Rest #'stencil + \revert TabVoice.MultiMeasureRest #'stencil + % markups etc. + \revert TabVoice.Script #'stencil + \revert TabVoice.TextScript #'stencil + \revert TabStaff.Arpeggio #'stencil +} + + +%% text length + +textLengthOn = { + \override TextScript #'extra-spacing-width = #'(0 . 0) + \override TextScript #'extra-spacing-height = #'(-inf.0 . +inf.0) } +textLengthOff = { + \override TextScript #'extra-spacing-width = #'(+inf.0 . -inf.0) + \override TextScript #'extra-spacing-height = #'(0 . 0) +} + + +%% text spanners -textSpannerUp = \override TextSpanner #'direction = #UP -textSpannerDown = \override TextSpanner #'direction = #DOWN +textSpannerUp = \override TextSpanner #'direction = #UP +textSpannerDown = \override TextSpanner #'direction = #DOWN textSpannerNeutral = \revert TextSpanner #'direction +%% ties -bassFigureExtendersOn = { - \set useBassFigureExtenders = ##t - \set Staff.useBassFigureExtenders = ##t -} +% directions +tieUp = \override Tie #'direction = #UP +tieDown = \override Tie #'direction = #DOWN +tieNeutral = \revert Tie #'direction -bassFigureExtendersOff = { - \set useBassFigureExtenders = ##f - \set Staff.useBassFigureExtenders = ##f -} +% dash-patterns (make-simple-dash-definition defined at top of file) +tieDashPattern = +#(define-music-function (parser location dash-fraction dash-period) + (number? number?) + #{ + \override Tie #'dash-definition = + $(make-simple-dash-definition dash-fraction dash-period) + #}) +tieDashed = \override Tie #'dash-definition = #'((0 1 0.4 0.75)) +tieDotted = \override Tie #'dash-definition = #'((0 1 0.1 0.75)) +tieHalfDashed = \override Tie #'dash-definition = #'((0 0.5 0.4 0.75) + (0.5 1 1 1)) +tieHalfSolid = \override Tie #'dash-definition = #'((0 0.5 1 1) + (0.5 1 0.4 0.75)) +tieSolid = \revert Tie #'dash-definition + + +%% tuplets + +tupletUp = \override TupletBracket #'direction = #UP +tupletDown = \override TupletBracket #'direction = #DOWN +tupletNeutral = \revert TupletBracket #'direction -bassFigureStaffAlignmentDown = { - \override Staff.BassFigureAlignmentPositioning #'direction = #DOWN -} -bassFigureStaffAlignmentUp = { - \override Staff.BassFigureAlignmentPositioning #'direction = #UP -} +%% voice properties -bassFigureStaffAlignmentNeutral = { - \revert Staff.BassFigureAlignmentPositioning #'direction +% dynamic ly:dir? text script, articulation script ly:dir? +voiceOne = #(context-spec-music (make-voice-props-set 0) 'Voice) +voiceTwo = #(context-spec-music (make-voice-props-set 1) 'Voice) +voiceThree = #(context-spec-music (make-voice-props-set 2) 'Voice) +voiceFour = #(context-spec-music (make-voice-props-set 3) 'Voice) +oneVoice = #(context-spec-music (make-voice-props-revert) 'Voice) + + +%% voice styles + +voiceOneStyle = { + \override NoteHead #'style = #'diamond + \override NoteHead #'color = #red + \override Stem #'color = #red + \override Beam #'color = #red +} +voiceTwoStyle = { + \override NoteHead #'style = #'triangle + \override NoteHead #'color = #blue + \override Stem #'color = #blue + \override Beam #'color = #blue +} +voiceThreeStyle = { + \override NoteHead #'style = #'xcircle + \override NoteHead #'color = #green + \override Stem #'color = #green + \override Beam #'color = #green +} +voiceFourStyle = { + \override NoteHead #'style = #'cross + \override NoteHead #'color = #magenta + \override Stem #'color = #magenta + \override Beam #'color = #magenta +} +voiceNeutralStyle = { + \revert NoteHead #'style + \revert NoteHead #'color + \revert Stem #'color + \revert Beam #'color } + +%% x notes + +xNotesOn = +#(define-music-function (parser location) () + (override-head-style '(TabNoteHead NoteHead) 'cross)) +xNotesOff = +#(define-music-function (parser location) () + (revert-head-style '(TabNoteHead NoteHead))) +xNote = +#(define-music-function (parser location note) (ly:music?) + (style-note-heads '(TabNoteHead NoteHead) 'cross note)) + + +%% dead notes (these need to come after "x notes") + +% Define aliases of cross-head notes for specific purposes +deadNotesOn = \xNotesOn +deadNotesOff = \xNotesOff +deadNote = #xNote