lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Center-aligning objects in Scheme - slight improvement


From: Mats Bengtsson
Subject: Re: Center-aligning objects in Scheme - slight improvement
Date: Thu, 15 Mar 2007 22:38:30 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20061113 Debian/1.7.8-1sarge8

I polished the function a bit further:

hairpinWithCenteredText = #(define-music-function
                          (parser location text) (markup?)
#{
\override Voice.Hairpin #'stencil = #(lambda (grob)
 (ly:stencil-aligned-to
  (ly:stencil-combine-at-edge
   (ly:stencil-aligned-to (ly:hairpin::print grob) X CENTER)
   Y
   DOWN
   (ly:stencil-aligned-to (ly:text-interface::print grob) X CENTER))
  X LEFT))
\override Voice.Hairpin #'text = $text
#})

/Mats

Maximilian Albert wrote:

Hi again,

below is a slight improvement of the previous version which saves you
from typing the whole function definition over and over again just to
change the markup text. The function 'hairpinWithCenteredText' takes a
single markup as argument. The usage should be straightforward (see the
example).

Max


%%% begin code %%%

hairpinWithCenteredText = #(define-music-function
                          (parser location text) (markup?)
#{
\override Voice.Hairpin #'stencil = #(lambda (grob)
  (let ((ext (ly:stencil-extent (ly:hairpin::print grob) 0)))
     (ly:stencil-combine-at-edge
        (ly:stencil-aligned-to (ly:hairpin::print grob) 0 -1)
         1
        -1
         (ly:stencil-translate-axis
            (ly:stencil-aligned-to (ly:text-interface::print grob) 0 0)
            (/ (- (cdr ext) (car ext)) 2)
            0))))
       \override Voice.Hairpin #'text = $text
#})

hairpinMolto = \hairpinWithCenteredText \markup {\italic "molto"}
hairpinMore  = \hairpinWithCenteredText \markup {\bigger "moltissimo"}

\new Staff {
  \hairpinMolto c'2\< c'2\f
  \hairpinMore  c'2\< c'2\f
}

%%% end code %%%


_______________________________________________
lilypond-user mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/lilypond-user


--
=============================================
        Mats Bengtsson
        Signal Processing
        Signals, Sensors and Systems
        Royal Institute of Technology
        SE-100 44  STOCKHOLM
        Sweden
        Phone: (+46) 8 790 8463                         
       Fax:   (+46) 8 790 7260
        Email: address@hidden
        WWW: http://www.s3.kth.se/~mabe
=============================================





reply via email to

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