I'm afraid you'll have to take a look at the implementation to be able to handle this problem. The bar lines to be printed at line breaks is determined by the function specified by the break-glyph-function property of the BarLine object. In the following example, I have started from the default definition (from scm/output-lib.scm and scm/lily.scm) and modified the behaviour of ":|" to print a bar line also at the beginning of the next line.
#(define (index-cell cell dir)
(if (equal? dir 1)
(cdr cell)
(car cell)))#(define (my-break-barline glyph dir)
(let ((result (assoc glyph
'((":|:" . (":|" . "|:"))
("||:" . ("||" . "|:"))
("|" . ("|" . ()))
("||:" . ("||" . "|:"))
("|s" . (() . "|"))
("|:" . ("|" . "|:"))
("|." . ("|." . ()))
(".|" . ("|" . ".|"))
(":|" . (":|" . "|"))
("||" . ("||" . ()))
(".|." . (".|." . ()))
("" . ("" . ""))
(":" . (":" . ""))
("empty" . (() . ()))
("brace" . (() . "brace"))
("bracket" . (() . "bracket"))
)
)))
(if (equal? result #f)
(ly:warn (string-append "Unknown bar glyph: `" glyph "'"))
(index-cell (cdr result) dir))
) )startBar = \notes { \once \override Staff.BarLine #'before-line-breaking-callback = ##f \bar "|" }
\score {
\new Staff \with { \remove "Clef_engraver" } {
\override Score.BarLine #'break-glyph-function = #my-break-barline
\override Score.TimeSignature #'break-visibility = #end-of-line-invisible\notes {\startBar \time 4/4 f' a' c'' e'' \bar "|" \time 4/4 f' a' c'' e'' \bar "|" \time 4/4 f' a' c'' e'' \bar "|" \time 4/4 f' a' c'' e'' \bar ":|" \break \time 4/4 f' a' c'' e'' \bar "|" \time 4/4 f' a' c'' e'' \bar "|" \time 4/4 f' a' c'' e'' \bar "|" \time 4/4 f' a' c'' e'' \bar ":|" \break }}}
/Mats
Ted Frazier wrote:
Lilypond is wonderful and fun but until I understand the object model can be frustrating...!!!
I am transcribing exercises and want behavior that is not standard. Liliypond, with it's smarts, will start a new line of music with no bar or the same bar that ended the previous line. I want to end every line of music with a :| bar and start every line with a | bar. Take the following code:
startBar = \notes { \once \override Staff.BarLine #'before-line-breaking-callback = ##f \bar "|" }
\score {
\new Staff \with { \remove "Clef_engraver" } {
\override Score.TimeSignature #'break-visibility = #end-of-line-invisible
\notes {
\startBar \time 4/4 f' a' c'' e'' \bar "|" \time 4/4 f' a' c'' e'' \bar "|" \time 4/4 f' a' c'' e'' \bar "|" \time 4/4 f' a' c'' e'' \bar ":|" \break
\startBar \time 4/4 f' a' c'' e'' \bar "|" \time 4/4 f' a' c'' e'' \bar "|" \time 4/4 f' a' c'' e'' \bar "|" \time 4/4 f' a' c'' e'' \bar ":|" \break }}}
The first line of music ends with | and not :| as one might think. But if I comment out the second \startBar command, the first line ends with :| and the second line has no start bar. I have tried many ways of getting around this and finally found one where I change the glyph in the overridden BarLine print function by changing the glyph at hard coded indices.
There's got to be a better way. Any ideas? Thanks...
Ted Frazier
------------------------------------------------------------------------
_______________________________________________ lilypond-user mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/lilypond-user
-- ============================================= Mats Bengtsson Signal Processing Signals, Sensors and Systems Royal Institute of Technology SE-100 44 STOCKHOLM Sweden Phone: (+46) 8 790 8463 Fax: (+46) 8 790 7260 Email: [EMAIL PROTECTED] WWW: http://www.s3.kth.se/~mabe =============================================
_______________________________________________ lilypond-user mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/lilypond-user
