point in the printed output. Such insertions do not affect
the calculation and placement of subsequent automatic bar lines.
-The simple bar line and four types of double bar line are available
+The simple bar line and five types of double bar line are available
for manual insertion:
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
-f1 \bar "|" g \bar "||" a \bar ".|" b \bar ".|." c \bar "|." d
+f1 \bar "|" g \bar "||" a \bar ".|" b \bar ".|." c \bar "|.|" d \bar "|." e
@end lilypond
@noindent
@end lilypond
@noindent
-and three types of repeat bar line:
+and five types of repeat bar line:
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
-f1 \bar "|:" g \bar ":|:" a \bar ":|" b
+f1 \bar "|:" g \bar ":|:" a \bar ":|.|:" b \bar ":|.:" c \bar ":|" d
@end lilypond
@cindex repeats
--- /dev/null
+\version "2.11.60"
+
+\header {
+ texidoc = "For volte, the style of double repeats can be set
+ using @code{doubleRepeatType}."
+}
+
+\relative c' {
+ \repeat volta 1 {
+ c1
+ }
+ \mark "default"
+ \repeat volta 1 {
+ c1
+ }
+ \mark "\":|.|:\""
+ \set Score.doubleRepeatType = #":|.|:"
+ \repeat volta 1 {
+ c1
+ }
+ \mark "\":|.:\""
+ \set Score.doubleRepeatType = #":|.:"
+ \repeat volta 1 {
+ c1
+ }
+}
--- /dev/null
+\version "2.11.60"
+
+\header {
+ texidoc = "Three types of double repeat bar line are supported."
+}
+\new StaffGroup <<
+ \new Staff \relative c' {
+ c1
+ \mark "\":|:\""
+ \bar ":|:"
+ c1
+ \mark "\":|.|:\""
+ \bar ":|.|:"
+ c1
+ \mark "\":|.:\""
+ \bar ":|.:"
+ c1
+ }
+ \new Staff \relative c' {
+ \repeat unfold 4 { c1 }
+ }
+>>
m.add_at_edge (X_AXIS, RIGHT, thick, kern);
m.add_at_edge (X_AXIS, RIGHT, colon, kern);
}
+ else if (str == ":|.|:")
+ {
+ m.add_at_edge (X_AXIS, LEFT, thick, 0);
+ m.add_at_edge (X_AXIS, LEFT, thin, kern);
+ m.add_at_edge (X_AXIS, LEFT, colon, kern);
+ m.add_at_edge (X_AXIS, RIGHT, thin, kern);
+ m.add_at_edge (X_AXIS, RIGHT, colon, kern);
+
+ }
+ else if (str == ":|.:")
+ {
+ m.add_at_edge (X_AXIS, LEFT, thick, 0);
+ m.add_at_edge (X_AXIS, LEFT, thin, kern);
+ m.add_at_edge (X_AXIS, LEFT, colon, kern);
+ m.add_at_edge (X_AXIS, RIGHT, colon, kern);
+ }
else if (str == ".|.")
{
m.add_at_edge (X_AXIS, LEFT, thick, thinkern);
m.add_at_edge (X_AXIS, RIGHT, thick, kern);
}
+ else if (str == "|.|")
+ {
+ m.add_at_edge (X_AXIS, LEFT, thick, 0);
+ m.add_at_edge (X_AXIS, LEFT, thin, kern);
+ m.add_at_edge (X_AXIS, RIGHT, thin, kern);
+ }
else if (str == "||")
{
/*
}
if (start && end)
- s = ":|:";
+ s = robust_scm2string (get_property ("doubleRepeatType"), ":|:");
else if (start)
s = "|:";
else if (end)
"",
/* read */
+ "doubleRepeatType "
"repeatCommands "
"whichBar ",
type = "|.";
else if (type == ":|:")
type = ".|.";
+ else if (type == ":|.|:")
+ type = "|.|";
+ else if (type == ":|.:")
+ type = "|.";
return ly_string2scm (type);
}
decrescendoSpanner = #'hairpin
defaultBarType = #"|"
+ doubleRepeatType = #":|:"
barNumberVisibility = #first-bar-number-invisible
automaticBars = ##t
This variable is read by @rinternals{Timing_translator} at
@rinternals{Score} level.")
+ (doubleRepeatType ,string? "Set the default bar line for double
+repeats.")
(doubleSlurs ,boolean? "If set, two slurs are created for every
slurred note, one above and one below the chord.")
(drumPitchTable ,hash-table? "A table mapping percussion
;; How should a bar line behave at a break?
(define bar-glyph-alist
'((":|:" . (":|" . "|:"))
+ (":|.|:" . (":|" . "|:"))
+ (":|.:" . (":|" . "|:"))
("||:" . ("||" . "|:"))
("dashed" . ("dashed" . '()))
("|" . ("|" . ()))
(":|" . (":|" . ()))
("||" . ("||" . ()))
(".|." . (".|." . ()))
+ ("|.|" . ("|.|" . ()))
("" . ("" . ""))
(":" . (":" . ""))
("." . ("." . ()))