[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bar lines at the beginning of staves
From: |
Thomas Morley |
Subject: |
Re: bar lines at the beginning of staves |
Date: |
Mon, 19 Dec 2011 00:04:09 +0100 |
Hi,
how about:
\version "2.14.1"
#(define my-bar-glyph-alist
'(("|" . ("|" . "|"))))
#(define (my-bar-line::calc-glyph-name grob)
(let* ((index-cell (lambda (cell dir)
(if (equal? dir 1)
(cdr cell)
(car cell))))
(glyph (ly:grob-property grob 'glyph))
(dir (ly:item-break-dir grob))
(result (assoc glyph my-bar-glyph-alist))
(glyph-name (if (= dir CENTER)
glyph
(if (and result (string? (index-cell (cdr result) dir)))
(index-cell (cdr result) dir)
#f))))
glyph-name))
#(define-public (my-bar-line::calc-break-visibility grob)
(let* ((glyph (ly:grob-property grob 'glyph))
(result (assoc-get glyph my-bar-glyph-alist)))
(if result
(vector (string? (car result)) #t (string? (cdr result)))
all-invisible)))
rochade = \once\override Score.BreakAlignment #'break-align-orders =
#(make-vector 3
'(left-edge
staff-bar
ambitus
breathing-sign
clef
key-cancellation
key-signature
time-signature
custos))
bars = {
\once \override Staff.BarLine #'glyph-name =
#my-bar-line::calc-glyph-name
\once \override Staff.BarLine #'break-visibility =
#my-bar-line::calc-break-visibility
\rochade
\bar "|"
}
one = \relative c' {
%\once
\override Score.SpanBar #'transparent = ##t
\override Score.SystemStartBar #'transparent = ##t
% \key, \break and \time inserted only for testing
\bars \key d\major d1 e \break
\bars \time 2/2 d
}
\score {
\new StaffGroup <<
\new Staff \one
\new Staff \one
\new Staff \one
\new Staff \one
>>
\layout {
\context {
\StaffGroup
\remove "System_start_delimiter_engraver"
}
}
}
perhaps it could be done more elegant, but it seems to work. Or did I
misunderstand you again?
Cheers,
Harm
Re: bar lines at the beginning of staves, David Kastrup, 2011/12/18