[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: parsing ly code from SCM
From: |
Nicolas Sceaux |
Subject: |
Re: parsing ly code from SCM |
Date: |
Sun, 25 Apr 2004 16:38:54 +0200 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux) |
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:
#(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
chose module name instead of *anonymous-ly-NN*?, Han-Wen Nienhuys, 2004/04/17
Re: chose module name instead of *anonymous-ly-NN*?, Jan Nieuwenhuizen, 2004/04/21