lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: pitch-semitone et notation absolute


From: Daniel Cartron
Subject: Re: pitch-semitone et notation absolute
Date: Mon, 13 Apr 2015 17:50:03 +0200
User-agent: KMail/4.13.3 (Linux/3.13.0-48-generic; KDE/4.13.3; x86_64; ; )

Le lundi 13 avril 2015, 16:09:20 Daniel Cartron a écrit :
> Le lundi 13 avril 2015, 15:05:39 Gilles THIBAULT a écrit :
> > ly:pitch-semitones ?
> > 
> > %%%%%%%%%%%%%%%%%%
> > %music = \relative c' { c d e f g c e }
> > music = { c' d' e' f' g' c'' e''}
> > 
> > #(let ((pitches (map (lambda(x)(ly:music-property x 'pitch))
> > 
> >                      (extract-named-music music 'NoteEvent))))
> >    
> >    (display "Nombre de 1/2 tons à partir du do central :\n")
> >    (for-each
> >    
> >     (lambda(x)
> >     
> >       (format #t "~a\t -> ~2,' d\n" x (ly:pitch-semitones x)))
> >     
> >     pitches))
> > 
> > %%%%%%%%%%%%%%%%%%%
> 
> OK si ça marche comme ça c'est que j'ai qq chose de pas correct dans ma
> fonction à moi. J'essaye de c omprendre sinon j'envoie un exemple
> minimaliste.
> 

Je suis décidément peu doué pour piger ces finctions scheme mmusicales... J'ai 
pas réussi à adapter ma fonction à la tienne ni l'inverse, mm le fichier 
minimaliste ci-dessous ne marche pas, j'ai dû retirer un truc de trop ou pas 
aseez...

De tte façon ce que j'utilise c'est du code pompé qq part ailleurs et que j'ai 
essayé d'adapter, créer un truc comme ça à moi tout seul, pas possible...

En fait ce que je cherche à faire c'est :
- récupérer la métrique s'il y en a (et à chaque changement) ;
- pour chaque note, récupérer le semitones et les articulations (ensuite je 
sais traiter pour ce que je veux faire) ;
- si c'est un accord, il faut que je puisse traiter aussi mais il faudra que 
je récupère les mm infos pour chacune des notes que pour une note isolée ;
- ajouter un markup (mettons pour simplifier la valeur de semitones) à chaque 
note.

C'est certainement tout simple pour plein d'entre vous qui connaissez le 
scheme mais moi qu'est-ce que je galère !...


\version "2.16.0"

#(define (parse-music mus-elt)
  (let 
    (
      (semi-tone (ly:pitch-semitones (ly:music-property mus-elt 'pitch)))
      (articulations (ly:music-property mus-elt 'articulations))
    )
    (set! note-refs (cdr(assoc (- semi-tone semitone-offset) kbdOut)))
    (for-each 
      (lambda (arti)
        (if (eq? (ly:music-property arti 'name) 'ArticulationEvent)
          (display (ly:music-property arti 'articulation-type))
        )
        (if (eq? (ly:music-property arti 'name) 'FingeringEvent)
          (display (ly:music-property arti 'articulation-type))
        )
      )
       articulations
       (display semi-tone)
     )
     mus-elt
   )
)

makeTab = #(define-music-function (parser location mus) (ly:music?)
   (let* (
          (relativeMusic (ly:music-property mus 'element) )
          (music-list (ly:music-property relativeMusic 'elements))
         )
     (for-each (lambda (mus-elt)
           (if (eq? (ly:music-property mus-elt 'name) 'NoteEvent)
               (parse-music mus-elt)
           )
       )
       music-list
     )
   mus
   )
)

music = \relative c' { c d e f g c e }
%music = { c' d' e' f' g' c'' e''}

#(display (makeTab music))

-- 
Cordialement, Daniel Cartron
« Bien-être : état d'esprit produit par la contemplation des ennuis d'autrui. 
»
Ambrose Bierce




reply via email to

[Prev in Thread] Current Thread [Next in Thread]