[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