* 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
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to