Subject: técupérer la valeur de \time en scheme

From: Daniel Cartron <[email-masked]>
Date: Fri, 06 Mar 2015 15:30:19 +0100

J'ai tout dit dans le titre...

C'est en relation avec mon autre fil sur le dégroupement de durées mais comme 
c'est assez spécifique je préfère ouvrir un autre fil.

Précisions : je veux utiliser la valeur du dénominateur/2 à la place du chiffre 
8 inscrit en dur en dernière ligne lors de l'appel de la fonction 
\unfold_duration (hé oui j'ai un peu modifié le code qui me convient mieux 
comme ça)

\version "2.16.2"
unfold_duration = #(define-music-function
  (parser location duration music)
  (number? ly:music?)
    (map-some-music
      (lambda (evt)
        (let 
         ((dur (ly:music-property evt 'duration #f)))
          (and dur (begin
            (let ((number-dur 0) (nb_notes 0))
              (set! number-dur (expt 2 (ly:duration-log dur)))
              (set! nb_notes (/  duration (expt 2 (ly:duration-log dur)) ))
               (display nb_notes)
             
              (set! (ly:music-property evt 'duration) (ly:make-duration (log2 
duration) 0 1))
                #{ 
                  \repeat unfold $nb_notes { $evt } 
                #}
            )
                                )
          )
        )
      )
    music)
)

Musique = \relative c' {
  \time 4/4
  d2 c1 f4 a
  
}

  \unfold_duration 8 \Musique

-- 
Cordialement, Daniel Cartron
« Il ne faut pas oublier que le jour du Déluge ceux qui savaient nager se 
noyèrent aussi. »
Ramon Gomez de la Serna

---

From: Daniel Cartron <[email-masked]>
Date: Sat, 07 Mar 2015 07:04:15 +0100

> J'ai tout dit dans le titre...
Sauf que je voulais écrire Récupérer... Mais je suppose que les lecteurs de la 
liste avaient rectifiés d'eux-même.

Bon alors si je met un \displayMusic devant \time 3/4 je vois que j'ai un truc 
qui s'appelle TimeSignatureMusic et non pas NoteEvent comme pour une note, et 
qu'il a des propriétés (c'est ça le terme) beat-structure dont je ne vois pas 
comment on s'en sert, mais surtout denominator et numerator.

J"ai essayé d'écrire un truc qui fait
getTimeSig = #(define-music-function (parser location music) (ly:music?)
  ""
    (map-music
      (lambda (evt)
        (let 
         ((beatlength (ly:music-property evt 'denominator #f)))
         ((beatnumber (ly:music-property evt 'numerator #f)))
       )
      )
    )
)

mais ça marche pô :-(

Alors si qqun plus fort que moi en scheme (c'est pas bien difficile) pouvait me 
dire ce qui ne va pas...

Merci d'avance

-- 
Cordialement, Daniel Cartron
« La jeune fille bien élevée est le seul animal qui rougit en voyant une 
banane. »
François Cavanna - Le saviez-vous ?

---

From: Daniel Cartron <[email-masked]>
Date: Sat, 07 Mar 2015 10:08:03 +0100

Le samedi 7 mars 2015, 07:04:15 Daniel Cartron a écrit :
> beat-structure dont je ne vois pas 
> comment on s'en sert

Bon ça au moins j'ai trouvé et ça va sacrément me servir, pour autant que 
j'arrive à le récupérer aussi...

-- 
Cordialement, Daniel Cartron
« L'indépendance vaut bien que l'on supporte la solitude. »
Bernard Shaw - Mes inscriptions