[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: scheme extract-named-music
From: |
Gilles THIBAULT |
Subject: |
Re: scheme extract-named-music |
Date: |
Mon, 27 Apr 2015 11:38:23 +0200 |
User-agent: |
KMail/4.12.5 (Linux/3.14.32-desktop-1.mga4; KDE/4.12.5; x86_64; ; ) |
L
> Donc je me demande si on ne pourrait pas mettre le code conditionnel dans
> makeTab. Ou me faut-il une fonction intermédiaire pour ça ?
En fait, si on traite différemment chaque événement il vaut mieux utiliser
directement music-map (mais ça marcherait aussi avec extract-named-music).
%%%%%%%%%%%%%%%
#(define (parse-note note)
(display "------ NOTE -----\n")
(display-scheme-music note))
#(define (parse-chord chord)
(display "**** CHORD ***\n")
(map
parse-note
(extract-named-music chord 'NoteEvent))
(display "**** FIN CHORD ***\n\n"))
#(define (parse-grace grace)
(display "------ GRACE -----\n")
(display-scheme-music grace))
makeTab = #(define-music-function (parser location mus) (ly:music?)
(music-map
(lambda(evt)
(let((name (ly:music-property evt 'name)))
(cond
((eq? name 'NoteEvent)
(parse-note evt))
((eq? name 'EventChord)
(parse-chord evt))
((eq? name 'GraceMusic)
(parse-grace evt)))
evt))
mus))
music = \relative c' { <c e>4 d \grace dis8 e2 }
{ \makeTab \music }
%%%%%%%%%%%%%%%%%
--
Gilles