|
From: | Christophe Pochon |
Subject: | Re: scheme : récupérer la métrique |
Date: | Mon, 27 Apr 2015 11:42:42 +0200 |
#(define beatLen 0)
#(define beatStr 0)
#(define beatNum 0)
#(define (parse-music mus)
; traitement commun
(display "-----------\n")
; traitement particulier
(let((name (ly:music-property mus 'name)))
(cond
((eq? name 'NoteEvent)
(display "NoteEvent\n")
)
((eq? name 'EventChord)
(display "Accord\n")
)
((eq? name 'GraceMusic)
(display "Grace\n")
)
((eq? name 'TimeSignatureMusic)
(display "TimeSignature\n")
(set! beatLen(ly:music-property mus 'denominator #f))
(set! beatStr (ly:music-property mus 'beat-structure #f))
(set! beatNum (ly:music-property mus 'numerator #f))
))
))
makeTab = #(define-music-function (parser location mus) (ly:music?)
(let ((notes (extract-named-music mus '(NoteEvent EventChord GraceMusic TimeSignatureMusic))))
(for-each parse-music notes)
mus
)
(display beatLen) (newline)
(display beatStr) (newline)
(display beatNum)
)
music = \relative c' { \time 7/4 <c e>4 d \grace dis8 e2 }
{ \makeTab \music }
%%%%%%%%%%%%%%%
Quand dans guile tu fais
(define x 3)
tu as x = 3
puis (let ((x 33)) (+ x 1))
çà donne 34 mais quand tu tapes x çà donne toujours 3. C'est çà ton
probleme?
si tu veux mettre à jour x à 34
(set! x (let ((x 33)) (+ x 1))) va donner x = 34
bref set! met à jour et let copie
--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/scheme-recuperer-la-metrique-tp7582851p7582857.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.
_______________________________________________
liste de diffusion lilypond-user-fr
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
[Prev in Thread] | Current Thread | [Next in Thread] |