[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lilypond-devel
Subject:    Re: parsing ly code from SCM
From:       Nicolas Sceaux <nicolas.sceaux () free ! fr>
Date:       2004-04-25 14:38:54
Message-ID: 874qr8xgu9.fsf () free ! fr
[Download RAW message or body]

--=-=-=


Sun, 25 Apr 2004 15:36:34 +0200, Nicolas a dit : 

 > #(define (textoffset dx dy)
 >   #{ \override Voice.TextScript #'extra-offset = #(cons $dx $dy) #})

 > #(define (export-lily-expression chr port)
 >   `(ly:export ,(read port)))

 > #(read-hash-extend #\x export-lily-expression)

 > \score {
 >     \notes {
 >         c'^"normal text"
	
 >         ##x(textoffset 3 -4)
	
 >         c'^"text with offset hm"
 >     }
 > }

Another example:


--=-=-=
Content-Disposition: inline; filename=with-props.ly

#(use-modules (srfi srfi-1))

#(define (override->revert override-expr)
  "Return a revert music expression for `override-expr', or
#f if it's not an override music expression."
  (if (ly:music? override-expr)
      (let* ((override (ly:music-property override-expr 'element))
             (context (ly:music-property override-expr 'context-type))
             (property (ly:music-property override 'grob-property))
             (layout (ly:music-property override 'symbol)))
        (if (and (ly:music? override) context property layout) 
            #{ \revert $context . $layout #'$property #}
            #f))
      #f))

#(define (overrides->reverts music)
  "Return a sequential music expression with reverts for
each override found in music, which is supposed to be a music 
expression"
  (make-music 'SequentialMusic
    'elements (filter-map override->revert (ly:music-property music 'elements))))

#(define (with-props props)
   (lambda (music)
     (set! (ly:music-property music 'elements)
           (append (ly:music-property props 'elements)
                   (ly:music-property music 'elements)
                   (ly:music-property (overrides->reverts props) 'elements)))
     music))

#(define thickTransparent 
  (with-props #{ \override Stem #'thickness = #4 
                 \override Slur #'transparent = ##t #}))

foo = \notes { c'8( d') e'( f') g'4( a') }

\score {
    \notes {
        \foo
        \apply \thickTransparent { \foo }
        \foo
    }
}

--=-=-=


nicolas

--=-=-=--




[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic