[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Rewriting an expression that uses ly:make-simple-closure
From: |
Paul Morris |
Subject: |
Rewriting an expression that uses ly:make-simple-closure |
Date: |
Thu, 7 Jan 2016 15:32:11 -0500 |
Hi all, Here’s a tricky one… I’m working on updating a piece from the Mutopia
Project[1] (from LilyPond 2.16.1 to 2.19.35) and it uses the following:
centermarkup = {
\once \override TextScript.self-alignment-X = #CENTER
\once \override TextScript.X-offset =#(ly:make-simple-closure
`(,+
,(ly:make-simple-closure (list
ly:self-alignment-interface::centered-on-x-parent))
,(ly:make-simple-closure (list
ly:self-alignment-interface::x-aligned-on-self))))
}
But ly:make-simple-closure is no longer around[2]. So how to rewrite this
without it?
It seems to be documented (barely) in the 2.18 extending manual:
http://www.lilypond.org/doc/v2.18/Documentation/extending/callback-functions.html
Looking in the source code I find the example given there from define-grobs.scm:
(X-offset . ,(ly:make-simple-closure
`(,+
,(ly:make-simple-closure
(list
ly:self-alignment-interface::centered-on-x-parent))
,(ly:make-simple-closure
(list
ly:self-alignment-interface::x-aligned-on-self)))))
and see it has now become the following in 2.19.35:
(X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
So would the following be an equivalent rewrite?
centermarkup = {
\once \override TextScript.self-alignment-X = #CENTER
\once \override TextScript.X-offset =
#ly:self-alignment-interface::aligned-on-x-parent
}
I can’t see a difference in the minimal example below (taken from the piece).
Thanks,
-Paul
[1] http://www.mutopiaproject.org/cgibin/piece-info.cgi?id=1938
[2] https://lists.gnu.org/archive/html/lilypond-devel/2015-09/msg00273.html
%%%%%%%%%%%%%%%%%%
\version "2.18"
centermarkup = {
\once \override TextScript.self-alignment-X = #CENTER
\once \override TextScript.X-offset =
#(ly:make-simple-closure
`(,+
,(ly:make-simple-closure (list
ly:self-alignment-interface::centered-on-x-parent))
,(ly:make-simple-closure (list
ly:self-alignment-interface::x-aligned-on-self))))
}
centermarkup-new = {
\once \override TextScript.self-alignment-X = #CENTER
\once \override TextScript.X-offset =
#ly:self-alignment-interface::aligned-on-x-parent
}
{
\key fis \minor
\time 3/2
fis2 \once \override Voice.TextScript.extra-offset = #'(0.0 . -1.1 )
eis1^\markup { \override #'( baseline-skip . 1.3 ) \column { \finger " 4"
\finger " 1" \concat { \musicglyph #"scripts.tenuto" \hspace #0.8 \musicglyph
#"scripts.turn" } } }-\tweak stencil ##f \turn | % 19
fis2 \centermarkup \once \override Voice.TextScript.extra-offset = #'(0.0 .
-1.1 ) eis1^\markup { \override #'( baseline-skip . 1.3 ) \column { \finger "
4" \finger " 1" \concat { \musicglyph #"scripts.tenuto" \hspace #0.8
\musicglyph #"scripts.turn" } } }-\tweak stencil ##f \turn | % 19
fis2 \centermarkup-new \once \override Voice.TextScript.extra-offset =
#'(0.0 . -1.1 ) eis1^\markup { \override #'( baseline-skip . 1.3 ) \column {
\finger " 4" \finger " 1" \concat { \musicglyph #"scripts.tenuto" \hspace #0.8
\musicglyph #"scripts.turn" } } }-\tweak stencil ##f \turn | % 19
}
%%%%%%%%%%%%%%%%%%%
- Rewriting an expression that uses ly:make-simple-closure,
Paul Morris <=