lilypond-user
[Top][All Lists]
Advanced

[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
}

%%%%%%%%%%%%%%%%%%%






reply via email to

[Prev in Thread] Current Thread [Next in Thread]