* 2015-05-19 18:18 +0200:
> The aim would be to add two notes to all the languages.
> I write
> #(define fisarmonica
> '(
> (i . (ly:make-pitch 8 0 DOUBLE-SHARP)) ; input note, ie a closing
> note
> (o . (ly:make-pitch 8 0 DOUBLE-FLAT)) ; output note, ie a drawing
> note
> ))
>
> then
> #(define language-pitch-names
> (map
> (lambda (x) (append (list (car x)) (append (cdr x) fisarmonica)))
> language-pitch-names))
>
> gives something ending by
> (si . #<Pitch b >) (sik . #<Pitch bis >) (sikk . #<Pitch bisis >) (i
> ly:make-pitch 8 0 DOUBLE-SHARP) (o ly:make-pitch 8 0 DOUBLE-FLAT)))
> so it does not work
> Have you an idea?
You need the backquoting mechanism described by Ralf Mattes.
ly:make-pitch is a *function* that needs to be evaluated to produce a
pitch object, but your whole definition of fisarmonica is quoted with ',
so this does not happen.
Change it to
#(define fisarmonica
`((i . ,(ly:make-pitch 8 0 DOUBLE-SHARP))
(o . ,(ly:make-pitch 8 0 DOUBLE-FLAT))))
and it should work.
Best regards,
RS
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user