]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/property-init.ly
Replace the rather fuzzy list-or-symbol? with symbol-list-or-symbol?
[lilypond.git] / ly / property-init.ly
index 0175bb798fe405134afd05236f81f182001af729..d88559d26408374a702ff9981e9110d63fda53e1 100644 (file)
@@ -1,6 +1,6 @@
 % property-init.ly
 
-\version "2.14.0"
+\version "2.16.0"
 
 %% for dashed slurs, phrasing slurs, and ties
 #(define (make-simple-dash-definition dash-fraction dash-period)
@@ -13,7 +13,24 @@ defaultNoteHeads =
    (_i "Revert to the default note head style.")
    (revert-head-style '(NoteHead TabNoteHead)))
 
-
+#(define (context-name? c)
+  "A stopgap measure until dotted lists become available as arguments.
+Distinguish context names from accidental styles by virtue of their
+first letter being uppercase."
+  (and (symbol? c)
+   (char-upper-case? (string-ref (symbol->string c) 0))))
+
+accidentalStyle =
+#(define-music-function
+   (parser location context style) ((context-name?) string?)
+   (_i "Set accidental style to @var{style}, a string.  If an optional
+@var{context} symbol is given, e.g. @code{#'Staff} or @code{#'Voice},
+the settings are applied to that context.  Otherwise, the context
+defaults to @samp{Staff}, except for piano styles, which use
+@samp{GrandStaff} as a context." )
+   (if context
+       (set-accidental-style (string->symbol style) context)
+       (set-accidental-style (string->symbol style))))
 
 %% arpeggios
 
@@ -73,6 +90,23 @@ balloonLengthOff = {
 }
 
 
+%% bar lines
+
+defineBarLine =
+#(define-void-function
+   (parser location bar glyph-list) (string? list?)
+   (_i "Define bar line settings for bar line @var{bar}.
+     The list @var{glyph-list} must have three entries which define
+     the appearance at the end of line, at the beginning of the next line,
+     and the span bar, respectively." )
+  (if (not (= (length glyph-list) 3))
+      (ly:error (_ "Argument list for bar '~a' must have three components.") bar)
+      (define-bar-line bar
+                       (car glyph-list)
+                       (cadr glyph-list)
+                       (caddr glyph-list))))
+
+
 %% bass figures
 
 bassFigureExtendersOn = {
@@ -233,16 +267,22 @@ hideNotes = {
   \override NoteHead #'transparent = ##t
   \override NoteHead #'no-ledgers = ##t
   \override Stem #'transparent = ##t
+  \override Flag #'transparent = ##t
   \override Beam #'transparent = ##t
   \override Accidental #'transparent = ##t
+  \override Rest #'transparent = ##t
+  \override TabNoteHead #'transparent = ##t
 }
 unHideNotes = {
   \revert Accidental #'transparent
   \revert Beam #'transparent
   \revert Stem #'transparent
+  \revert Flag #'transparent
   \revert NoteHead #'transparent
   \revert NoteHead #'no-ledgers
   \revert Dots #'transparent
+  \revert Rest #'transparent
+  \revert TabNoteHead #'transparent
 }
 
 
@@ -305,7 +345,7 @@ phrasingSlurDashPattern =
 #(define-music-function (parser location dash-fraction dash-period)
    (number? number?)
    (_i "Set up a custom style of dash pattern for @var{dash-fraction} ratio of
-line to space repeated at @var{dash-period} interval.")
+line to space repeated at @var{dash-period} interval for phrasing slurs.")
   #{
      \override PhrasingSlur #'dash-definition =
        $(make-simple-dash-definition dash-fraction dash-period)
@@ -341,6 +381,10 @@ back to the lilypond source statement.")
    (ly:set-option 'point-and-click #f)
    (make-music 'SequentialMusic 'void #t))
 
+pointAndClickTypes =
+#(define-void-function (parser location types) (symbol-list-or-symbol?)
+  (_i "Set a type or list of types (such as @code{#'note-event}) for which point-and-click info is generated.")
+  (ly:set-option 'point-and-click types))
 
 %% predefined fretboards
 
@@ -389,6 +433,8 @@ slurNeutral    = \revert Slur #'direction
 slurDashPattern =
 #(define-music-function (parser location dash-fraction dash-period)
   (number? number?)
+  (_i "Set up a custom style of dash pattern for @var{dash-fraction}
+ratio of line to space repeated at @var{dash-period} interval for slurs.")
   #{
      \override Slur #'dash-definition =
        $(make-simple-dash-definition dash-fraction dash-period)
@@ -424,12 +470,14 @@ tabFullNotation = {
   % stems (the half note gets a double stem)
   \revert TabVoice.Stem #'length
   \revert TabVoice.Stem #'no-stem-extend
-  \revert TabVoice.Stem #'flag-style
+  \revert TabVoice.Flag #'style
   \revert TabVoice.Stem #'details
-  \revert TabVoice.Stem #'transparent
+  \revert TabVoice.Stem #'stencil
+  \revert TabVoice.Flag #'stencil
   \override TabVoice.Stem #'stencil = #tabvoice::draw-double-stem-for-half-notes
-  \set autoBeaming = ##t
-  \revert NoteColumn #'ignore-collision
+  \override TabVoice.Stem #'X-extent = #tabvoice::make-double-stem-width-for-half-notes
+  \set TabVoice.autoBeaming = ##t
+  \revert TabVoice.NoteColumn #'ignore-collision
   % beams, dots
   \revert TabVoice.Beam #'stencil
   \revert TabVoice.StemTremolo #'stencil
@@ -445,15 +493,15 @@ tabFullNotation = {
   \revert TabVoice.TupletBracket #'stencil
   \revert TabVoice.TupletNumber #'stencil
   % dynamic signs
-  \revert TabVoice.DynamicText #'transparent
+  \revert TabVoice.DynamicText #'stencil
   \revert TabVoice.DynamicTextSpanner #'stencil
   \revert TabVoice.DynamicTextSpanner #'stencil
-  \revert TabVoice.Hairpin #'transparent
+  \revert TabVoice.Hairpin #'stencil
   % rests
   \revert TabVoice.Rest #'stencil
   \revert TabVoice.MultiMeasureRest #'stencil
-  \revert TabVoice.MultiMeasureRestNumber #'transparent
-  \revert TabVoice.MultiMeasureRestText #'transparent
+  \revert TabVoice.MultiMeasureRestNumber #'stencil
+  \revert TabVoice.MultiMeasureRestText #'stencil
   % markups etc.
   \revert TabVoice.Glissando #'stencil
   \revert TabVoice.Script #'stencil
@@ -508,6 +556,8 @@ tieNeutral = \revert Tie #'direction
 tieDashPattern =
 #(define-music-function (parser location dash-fraction dash-period)
   (number? number?)
+  (_i "Set up a custom style of dash pattern for @var{dash-fraction}
+ratio of line to space repeated at @var{dash-period} interval for ties.")
   #{
      \override Tie #'dash-definition =
        $(make-simple-dash-definition dash-fraction dash-period)
@@ -544,34 +594,45 @@ voiceOneStyle = {
   \override NoteHead #'style = #'diamond
   \override NoteHead #'color = #red
   \override Stem #'color = #red
+  \override Flag #'color = #red
   \override Beam #'color = #red
 }
 voiceTwoStyle = {
   \override NoteHead #'style = #'triangle
   \override NoteHead #'color = #blue
   \override Stem #'color = #blue
+  \override Flag #'color = #blue
   \override Beam #'color = #blue
 }
 voiceThreeStyle = {
   \override NoteHead #'style = #'xcircle
   \override NoteHead #'color = #green
   \override Stem #'color = #green
+  \override Flag #'color = #green
   \override Beam #'color = #green
 }
 voiceFourStyle = {
   \override NoteHead #'style = #'cross
   \override NoteHead #'color = #magenta
   \override Stem #'color = #magenta
+  \override Flag #'color = #magenta
   \override Beam #'color = #magenta
 }
 voiceNeutralStyle = {
   \revert NoteHead #'style
   \revert NoteHead #'color
   \revert Stem #'color
+  \revert Flag #'color
   \revert Beam #'color
 }
 
 
+%% volta brackets
+
+allowVoltaHook =
+#(define-void-function (parser location bar) (string?)
+                       (allow-volta-hook bar))
+
 %% x notes
 
 xNotesOn =