[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: scheme : récupérer la métrique
From: |
Gilles THIBAULT |
Subject: |
Re: scheme : récupérer la métrique |
Date: |
Mon, 27 Apr 2015 12:12:37 +0200 |
User-agent: |
KMail/4.12.5 (Linux/3.14.32-desktop-1.mga4; KDE/4.12.5; x86_64; ; ) |
> getTimeSig = #(define-music-function (parser location music) (ly:music?)
> ""
> (define beatLen 0)
> (define beatStr 0)
> (define beatNum 0)
Pour des variables "globales, il faut mettre les define en dehors de la
fonction.
> (music-map
> (lambda (evt)
> (cond (eq? (ly:music-property music 'name) 'TimeSignatureMusic)
Je suppose que c'est (ly:music-property evt 'name) que tu veux.
Un truc comme ça devrait marcher.
%%%%%%%%%%%%%%%%%%%%%%
#(define beatLen 0)
#(define beatStr 0)
#(define beatNum 0)
getTimeSig = #(define-music-function (parser location music) (ly:music?)
""
(music-map
(lambda (evt)
(if (eq? (ly:music-property evt 'name) 'TimeSignatureMusic)
(begin
(set! beatLen (ly:music-property evt 'denominator #f))
(set! beatStr (ly:music-property evt 'beat-structure #f))
(set! beatNum (ly:music-property evt 'numerator #f))))
evt)
music))
displayBeatVariables = #(define-music-function (parser location music)
(ly:music?)
""
(format #t " beatLen : ~a\n beatStr : ~a\n beatNum : ~a\n" beatLen beatStr
beatNum)
music)
%%%%%%%%%%%
music = \relative c' {
\time 7/4
a4 b c e d f
}
{ \displayBeatVariables \getTimeSig \music}
--
Gilles
- Re: scheme : récupérer la métrique, (continued)
Re: scheme : récupérer la métrique, PharoahS, 2015/04/27
Re: scheme : récupérer la métrique,
Gilles THIBAULT <=
Re: scheme : récupérer la métrique, PharoahS, 2015/04/27