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

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

Re: Scheme : récupérer des valeurs de propri été


From: Éditions IN NOMINE
Subject: Re: Scheme : récupérer des valeurs de propri été
Date: Thu, 23 Sep 2010 19:03:01 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.8) Gecko/20100802 Lightning/1.0b2 Thunderbird/3.1.2


Quand tu m'écris : "Toutes les fonctions de pitch (sauf ly:make-pitch) commence par ly:pitch", en fait, j'aimerais avoir la liste de ces fonctions de pitch, parce que c'est pas évident à inventer!
Pour la version 2.13 je sais pas.
 

Houlla, ça, ça veut dire que je trouverai jamais .... :'(
Il y a 3 petites erreurs, dont 1 d'étourderie
1-
Si tu fais :
\ajouteundegre \displayMusic c4
 
tu obtiens :
(make-music
  'EventChord
  'elements
  (list (make-music
          'NoteEvent
          'duration
          (ly:make-duration 2 0 1 1)
          'pitch
          (ly:make-pitch -1 0 0))))
 
Tu n'obtiens pas une note ( 'NoteEvent ), mais un 'EventChord. Donc l'extraction du pitch est un peu moins direct
(voir ci-dessous )
ZE piège... je m'emmelle les pinceaux dans les niveaux... c'est le but de mes exercices...
 
2- l'erreur d'étourderie :
Tu appelles p le (ly:music-property result-note 'pitch), puis dans les lignes suivantes tu l'appelles pitch !

Et c'est parti pour 2 heures de flagellation avec nerf de boeuf clouté... c'est le tarif à la maison ! :-P
3-
En scheme, dans une instruction let, chaque "variable" doivent être indépendante les unes des autres. Si tu veux utiliser le resultat d'une ligne1 dans la ligne 2, tu dois utiliser let* à la place.
 
Ah ça aussi il va falloir que je creuse : les !, les *, et quand il n'y a rien. J'ai survolé le tuto scheme de lily, donc punition ! Nerf de boeuf + 1 heure...
Donc ça donne un truc comme ça :
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ajouteundegre = #(define-music-function (parser location note)(ly:music?)
"augmente d'un degré une note en ajoutant 1 au pitch-notename"
(let*     
    (
      (result-chord (ly:music-deep-copy note))
      (result-note (car (ly:music-property result-chord 'elements)))
      (p (ly:music-property result-note 'pitch))
      (o (ly:pitch-octave p))
      (n (ly:pitch-octave p))
      (a (ly:pitch-alteration p))
    )
    (set! p (ly:make-pitch o (+ 1 n) a))
    (set! (ly:music-property result-note 'pitch) p)
    result-note
    )
 )
\score{
\ajouteundegre c'4
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Bon courage.
 
Gilles
Champion du monde ! En plus j'ai bien tout compris ! 8-)
Merci pour tout, je viens de faire un grand pas dans le monde souterrain de lilyScheme...

JMarc

reply via email to

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