On Wed, Jun 3, 2020 at 12:01 AM Aaron Hill <lilyp...@hillvisions.com> wrote:

>
> As is tradition, I am almost certainly over-engineering here.  However,
> would the following approach be of any use:
>
> %%%%
> \version "2.20.0"
>
> transformText =
> #(define-music-function
>    (grob-path proc)
>    ((key-list? 'TextScript) procedure?)
>    #{ \override $grob-path . before-line-breaking =
>         #(grob-transformer 'before-line-breaking
>           (lambda (grob orig)
>             (ly:grob-set-property! grob 'text
>               (proc (ly:grob-property grob 'text))))) #})
>
> boxIt = #(lambda (text) (markup #:box text))
> flipIt = #(lambda (text) (markup #:rotate 180 text))
> sizeIt =
> #(define-scheme-function (size) (number?)
>    (lambda (text) (markup #:abs-fontsize size text)))
>
> \layout {
>    \context {
>      \Staff
>      \transformText \sizeIt #8
>    }
> }
>
> \score {
>    \new Staff { b'2.^"Lorem" \once \transformText \boxIt b'4_"ipsum" }
>    \layout { #(layout-set-staff-size 8) }
> }
> \score {
>    \new Staff { b'2.^"Lorem" b'4_"ipsum" }
>    \layout { #(layout-set-staff-size 13) }
> }
> \score {
>    \new Staff { \once \transformText \flipIt b'2.^"Lorem" b'4_"ipsum" }
>    \layout { #(layout-set-staff-size 21) }
> }
> %%%%
>
>
That's great too!

Reply via email to