\version "2.19.80" \language "english" %%% Definitions %%% %Predicates #(define (proc-list? obj) (and (list? obj) (every procedure? obj))) #(define (note-column? obj) (and (ly:grob? obj) (let ((name (assq-ref (ly:grob-property obj 'meta) 'name))) (eq? name 'NoteColumn)))) %Selection functions #(define NoteColumn->Accidentals (define-scheme-function (nc) (note-column?) (let ((noteheads (ly:grob-array->list (ly:grob-object nc 'note-heads)))) (filter ly:grob? (map (lambda (notehead) (ly:grob-object notehead 'accidental-grob)) noteheads))))) %Functions that apply to lists of grobs #(define set::stencil->alb-phantom (define-scheme-function (list-of-grobs) (grob-list?) (for-each (lambda (grob) (let ((stil (ly:grob-property grob 'stencil))) (ly:grob-set-property! grob 'stencil #f) (ly:grob-set-property! grob 'after-line-breaking (lambda (alb-grob) (ly:grob-set-property! alb-grob 'stencil stil))))) list-of-grobs))) #(define set::stencil->scale (define-scheme-function (x y) (number? number?) (define-scheme-function (list-of-grobs) (grob-list?) (for-each (lambda (grob) (let ((stil (ly:grob-property grob 'stencil))) (ly:grob-set-property! grob 'stencil (ly:stencil-scale stil x y)))) list-of-grobs)))) %Main function applyTo = #(define-music-function (blb-grob selection-proc procs-to-apply) (symbol? procedure? proc-list?) #{ \override $blb-grob .before-line-breaking = #(lambda (grob) (let ((selection (delete-duplicates (selection-proc grob)))) (for-each (lambda (proc) (proc selection)) procs-to-apply))) #} ) %%% End of definitions %%% \relative c'' { } \relative c'' { \override Tie.minimum-length = 4.5 } \relative c'' { \override Tie.minimum-length = 4.5 \override Tie.details.height-limit = 0.5 ~ \override TieColumn.tie-configuration = #`((-3.05 . ,DOWN) (-1 . ,DOWN)) } \relative c'' { \override Tie.minimum-length = 4 \override Tie.whiteout-style = #'outline \override Tie.whiteout = 1.2 ~ \override TieColumn.tie-configuration = #`((-3 . ,DOWN) (-1 . ,DOWN)) \override Accidental.extra-offset = #'(-1.5 . 0) \override Accidental.layer = 0 \applyTo NoteColumn #NoteColumn->Accidentals #`(,(set::stencil->scale 0.95 0.9) ,set::stencil->alb-phantom) } \relative c'' { \override Tie.minimum-length = 4.5 \override Tie.details.height-limit = 0.5 \override Tie.whiteout-style = #'outline \override Tie.whiteout = 1.2 ~ \override TieColumn.tie-configuration = #`((-3 . ,DOWN) (-1 . ,DOWN)) \override Accidental.extra-offset = #'(-1.5 . 0) \override Accidental.layer = 0 \applyTo NoteColumn #NoteColumn->Accidentals #`(,(set::stencil->scale 0.95 0.9) ,set::stencil->alb-phantom) }