diff options
Diffstat (limited to 'ly')
-rw-r--r-- | ly/music-functions-init.ly | 42 | ||||
-rw-r--r-- | ly/paper-defaults.ly | 11 |
2 files changed, 50 insertions, 3 deletions
diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly index 02519f5361..b910223f68 100644 --- a/ly/music-functions-init.ly +++ b/ly/music-functions-init.ly @@ -370,6 +370,9 @@ parenthesize = (set! (ly:music-property arg 'parenthesize) #t) arg) +%% for lambda* +#(use-modules (ice-9 optargs)) + parallelMusic = #(define-music-function (parser location voice-ids music) (list? ly:music?) "Define parallel music sequences, separated by '|' (bar check signs), @@ -439,7 +442,7 @@ Example: voices) ;; ;; check sequence length - (apply for-each (lambda (. seqs) + (apply for-each (lambda* (#:rest seqs) (let ((moment-reference (ly:music-length (car seqs)))) (for-each (lambda (seq moment) (if (not (equal? moment moment-reference)) @@ -500,12 +503,45 @@ shiftDurations = (lambda (x) (shift-one-duration-log x dur dots)) arg)) - -%% this is a stub. Write your own to suit the spacing tweak output. spacingTweaks = #(define-music-function (parser location parameters) (list?) + "Set the system stretch, by reading the 'system-stretch property of + the `parameters' assoc list." + #{ + \overrideProperty #"Score.NonMusicalPaperColumn" + #'line-break-system-details + #$(list (cons 'alignment-extra-space (cdr (assoc 'system-stretch parameters)))) + #}) + +%% Parser used to read page-layout file, and then retreive score tweaks. +#(define page-layout-parser #f) + +includePageLayoutFile = +#(define-music-function (parser location) () + "If page breaks and tweak dump is not asked, and the file + <basename>-page-layout.ly exists, include it." + (if (not (ly:get-option 'dump-tweaks)) + (let ((tweak-filename (format #f "~a-page-layout.ly" + (ly:parser-output-name parser)))) + (if (access? tweak-filename R_OK) + (begin + (ly:message "Including tweak file ~a" tweak-filename) + (set! page-layout-parser (ly:clone-parser parser)) + (ly:parser-parse-string page-layout-parser + (format #f "\\include \"~a\"" + tweak-filename)))))) (make-music 'SequentialMusic 'void #t)) +scoreTweak = +#(define-music-function (parser location name) (string?) + "Include the score tweak, if exists." + (if (and page-layout-parser (not (ly:get-option 'dump-tweaks))) + (let ((tweak-music (ly:parser-lookup page-layout-parser + (string->symbol name)))) + (if (ly:music? tweak-music) + tweak-music + (make-music 'SequentialMusic))) + (make-music 'SequentialMusic))) transposedCueDuring = #(define-music-function diff --git a/ly/paper-defaults.ly b/ly/paper-defaults.ly index 2e265c7ab1..44ec0b961e 100644 --- a/ly/paper-defaults.ly +++ b/ly/paper-defaults.ly @@ -97,6 +97,17 @@ (word-space . 0.6))) #(define page-breaking ly:optimal-breaking) + #(define page-breaking-wrapper page-breaking-wrapper) + #(define page-post-process post-process-pages) + + #(define write-page-layout (ly:get-option 'dump-tweaks)) + #(define system-maximum-stretch-procedure + (lambda (line) + (if (stretchable-line? line) + (let ((height (line-height line))) + (/ (* height height) 80.0)) + 0.0))) + % #(define page-music-height default-page-music-height ) % #(define page-make-stencil default-page-make-stencil ) |