[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: scheme extract-named-music
From: |
Daniel Cartron |
Subject: |
Re: scheme extract-named-music |
Date: |
Mon, 27 Apr 2015 09:55:34 +0200 |
User-agent: |
KMail/4.13.3 (Linux/3.13.0-48-generic; KDE/4.13.3; x86_64; ; ) |
Le dimanche 26 avril 2015 22:41:08, vous avez écrit :
> %%%%%%%%%%%%%%
> #(define (parse-music mus)
> ; traitement commun
> (display "-----------\n")
> (display-scheme-music mus)
>
> ; traitement particulier
> (let((name (ly:music-property mus 'name)))
> (cond
> ((eq? name 'NoteEvent)
> ; (....)
> )
> ((eq? name 'EventChord)
> ; (....)
> )
> ((eq? name 'GraceMusic)
> ; (....)
> ))
> ))
>
> makeTab = #(define-music-function (parser location mus) (ly:music?)
> (let ((notes (extract-named-music mus '(NoteEvent EventChord
> GraceMusic)))) (for-each parse-music notes)
> mus
> )
> )
>
> music = \relative c' { <c e>4 d \grace dis8 e2 }
>
> { \makeTab \music }
>
> %%%%%%%%%%%%%%%
Juste une question : il n'y a pas de traitement commun ou plus exactement
c'est le mm traitement à chaque fois :
- noteevent j'applique la fonction parse-music
- grace note je met le drapeau graceflag à #t et j'applique la fonction parse-
music
- chordevent j'applique la fonction à chaque note de l'accord
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 ?
--
Cordialement, Daniel Cartron
« Cent mille âmes, combien cela peut-il faire d'hommes ? »
Jules Renard