bug-lilypond
[Top][All Lists]
Advanced

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

Re: Retrieving information about breaks (was: Partial compilation (again


From: David Nalesnik
Subject: Re: Retrieving information about breaks (was: Partial compilation (again))
Date: Fri, 23 Jan 2015 10:42:29 -0600

Hi Urs,

On Fri, Jan 23, 2015 at 9:33 AM, Urs Liska <address@hidden> wrote:

> Picking up that old thread seems better than starting a new one ...
>
> By now I've reached a different state and would like to come back to this
> issue with a very concrete question:
> Is it possible to determine at which positions (in terms of barnumber and
> measure-position) the final line breaks, page breaks and page turns have
> been placed in LilyPond?
> I'm sure this information has to be present at one point, but someone (I
> think it may have been David Nalesnik) expressed the opinion that engravers
> could only access explicit \break-s.
>
> I would like to write out a log file containing all break points of a
> given LilyPond run.
>

Here's a routine which will write the line breaks to a file.  Have to look
into page breaks/turns.  (It may be that you need explicit page
breaks/turns--then it's possible to read 'page-break-permission and
'page-turn-permission.)

 \version "2.19.15"

%% breaks

#(define out (open-output-file "line-breaks.txt"))

#(define (display-breaks grob)
   (if (and (grob::has-interface grob 'paper-column-interface)
            (eq? #t (ly:grob-property grob 'non-musical)))
       (if (eq? 1 (ly:item-break-dir grob))
           (let* ((location (ly:grob-property grob 'rhythmic-location))
                  (m (car location)))
             (format out "Line beginning at measure ~a~%" m)))
       (ly:message "Need NonMusicalPaperColumn grob to determine line
breaks.")))

\relative c'' {
  \override Score.NonMusicalPaperColumn.after-line-breaking =
#display-breaks
  \repeat unfold 30 { c d e f }
}

Hope this helps--

David


reply via email to

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