On Wed, Apr 26, 2017 at 3:08 PM, Kieren MacMillan <kieren_macmil...@sympatico.ca> wrote: > Hi all, > >> I think this request is idiosyncratic enough to be left to a >> two-stage process, some thing along the lines of: > > That would work, of course… but I think it would be easier (and better for > long-term maintainability) to do it all in Lilypond, e.g., > > %% SNIPPET BEGINS > \version "2.19.17" > > \paper { > ragged-right = ##t > indent = 0 > } > > music = { > \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details > #'((X-offset . 38)) > \repeat unfold 8 c'' \break > \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details > #'((X-offset . 33)) > \repeat unfold 12 c'' \break > \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details > #'((X-offset . 46)) > \repeat unfold 4 c'' \break > \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details > #'((X-offset . 39.5)) > \repeat unfold 8 c'' \break > } > > \score { \music } > %% SNIPPET ENDS > > A little trial-and-error is required if doing it manually, but there might be > a way to automate the process. >
Here you go: %%%%%%%%%%%%%%%%% \version "2.19" \paper { ragged-right = ##t indent = 0 } \layout { \context { \Score \override NonMusicalPaperColumn.after-line-breaking = #(lambda (grob) (if (eqv? (ly:item-break-dir grob) 1) ; line beginning (let* ((sys (ly:grob-system grob)) (sys-width (ly:grob-extent sys sys X)) (layout (ly:grob-layout grob)) (line-full-width (ly:output-def-lookup layout 'line-width))) (ly:grob-set-nested-property! grob '(line-break-system-details X-offset) (/ (- line-full-width (interval-length sys-width)) 2))))) } } music = { \repeat unfold 8 c'' \break \repeat unfold 12 c'' \break \repeat unfold 4 c'' \break \repeat unfold 8 c'' \break } \score { \music } %%%%%%%%%%%%%%%%%% Hope this helps, David _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user