Hello! I'm a (sometimes) composer of shapenote music, in the style of the Sacred Harp, and have been working on a particular issue.
Sacred Harp music has different glyphs for repeat barlines, and different conventions for using them. The glyph usually uses only one, heavy barline (rather than two, unless at the end of the piece), and four dots instead of two. (See below for the stencils I've been using for this.) When a repeat occurs at the beginning of a line or mid-measure, however, only the four dots are used, with no barline at all. My issue is this: Traditionally, when a repeat sign coincides with a line-break, the previous line should end with a normal barline, and the new line should start with just four dots (following the key signature). However, when use use \override to replace the repeat sign with my stencil, Lilypond insists on adding a warning repeat at the end of the previous line, such that the first line ends in four dots rather than a barline. By setting break-visibility to end-of-line-invisible, I can surpress the end-of-line four dots, leaving the first line entirely without a closing barline. I can't find a way to force Lilypond to differentiate between the end-of-line barline and the beginning-of-line one, however. Is there a way to do this? Example code including relevant stencils below. Thanks! -Leland %%%%% Start Example %%%%%%%% \version "2.12.2" # (define (barDotFn grob) (interpret-markup (ly:grob-layout grob) '(((baseline-skip . 1) (word-space . 0.4) (thickness . 1.9))) (markup #:right-align #:vcenter #:line ( #:vcenter #:column (#:filled-box '(0 . 0.35) '(0 . 0.35) 0 #:filled-box '(0 . 0.35) '(0 . 0.35) 0 #:filled-box '(0 . 0.35) '(0 . 0.35) 0 #:filled-box '(0 . 0.35) '(0 . 0.35) 0 ) #:hspace 0.1 #:raise 2 #:override '(thickness . 5) #:draw-line '(0 . -4) ) ) )) # (define (barDotFnD grob) (interpret-markup (ly:grob-layout grob) '(((baseline-skip . 1) (word-space . 0.4) (thickness . 1.9))) (markup #:right-align #:vcenter #:line ( #:vcenter #:column (#:filled-box '(0 . 0.35) '(0 . 0.35) 0 #:filled-box '(0 . 0.35) '(0 . 0.35) 0 #:filled-box '(0 . 0.35) '(0 . 0.35) 0 #:filled-box '(0 . 0.35) '(0 . 0.35) 0 ) #:hspace 0.1 #:raise 2 #:override '(thickness . 5) #:draw-line '(0 . -4) ) #:hspace 0.1 #:raise 2 #:override '(thickness . 5) #:draw-line '(0 . -4) ) ) ) # (define (dotFn grob) (interpret-markup (ly:grob-layout grob) '(((baseline-skip . 1) (word-space . 0.8) (thickness . 3))) (markup #:right-align #:vcenter #:line ( #:vcenter #:column (#:filled-box '(0 . 0.35) '(0 . 0.35) 0 #:filled-box '(0 . 0.35) '(0 . 0.35) 0 #:filled-box '(0 . 0.35) '(0 . 0.35) 0 #:filled-box '(0 . 0.35) '(0 . 0.35) 0 ) ) ) )) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% global = { \key d \minor \time 4/4 \set shapeNoteStyles = #'#(la mi fa #f la fa #f la) \once \override Score.BreakAlignment #'break-align-orders = #(make-vector 3 '(left-edge clef key-signature time-signature staff-bar )) } tenorMusic = \relative c'' { f4 f g2 | a f4 d | d1 | \bar "||" \break \once \override Score.BarLine #'break-visibility = #end-of-line-invisible \repeat volta 2 { \once \override Staff.BarLine #'stencil = #dotFn \bar "|:" a4 c d2 | e f4 e | d c2. | \once \override Staff.BarLine #'stencil = #barDotFnD } \bar "|." } \score { \new ChoirStaff << \new Staff = tenor << \new Voice = "tenor" { \global \tenorMusic } >> >> } %%%%%%%%% End Example %%%%%%%%%% _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user