lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Four Bars per Line/System, again :)


From: David Nalesnik
Subject: Re: Four Bars per Line/System, again :)
Date: Fri, 18 May 2012 18:25:49 -0500

Hi,

On Fri, May 18, 2012 at 3:40 PM, Kieren MacMillan <address@hidden> wrote:
p.s.

Come to think of it, wouldn't this be a good place for a Scheme engraver [written by someone who, unlike me, knows Scheme well]? To wit, if the measures in a piece aren't all 4/4, then our suggestion(s) won't work; and every time the total number of measures changes you need to update; etc.

Couldn't there just be an engraver that says, “If I'm the k-th barline since the last system break, then break, otherwise noBreak”, that could be \consists-ed into the \Score?

I can't believe that this works :) !!

\version "2.15.38"

#(define bars-per-line 4)

#(define line-break-every-nth-engraver
  (lambda (context)
     (make-engraver
       (acknowledgers ((paper-column-interface engraver grob source-engraver)
(let ((current-bar (ly:context-property context 'currentBarNumber)))    
  (if (= (remainder current-bar bars-per-line) 1)
      (if (eq? #t (ly:grob-property grob 'non-musical))
  (set! (ly:grob-property grob 'line-break-permission) 'force)
  (set! (ly:grob-property grob 'line-break-permission) '())))))))))
  
\relative c' {
  \repeat unfold 10 {
    \time 2/4
    c4 c
    \time 4/4
    c c c c
    \time 3/4
    c c c
    \time 1/4
    c
    \time 5/4
    c c c c c
    \time 7/4
    c c c c c c c
    \time 2/4
    c c
    \time 7/8
    c8 c c c c c c
    \time 2/2
    c2 c
  }
}

\layout {
  \context {
    \Score
    %% the following line necessary if you want to put more
    %% measures to a line than Lily wants to allow
    \override NonMusicalPaperColumn #'line-break-permission = ##f
    \consists #line-break-every-nth-engraver
  }
}


reply via email to

[Prev in Thread] Current Thread [Next in Thread]