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

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

Re: [Fisarmonica] - comment utiliser \musicMap ?


From: Daniel Cartron
Subject: Re: [Fisarmonica] - comment utiliser \musicMap ?
Date: Thu, 06 Jun 2013 08:25:13 +0200
User-agent: KMail/4.10.2 (Linux/3.8.0-23-generic; KDE/4.10.2; x86_64; ; )

Le mercredi 5 juin 2013 19:54:41 address@hidden a écrit :
> Tu récupères le pitch de ta note ( qui est par exemple dans une variable
> music) par : (ly:music-property music 'pitch)  ; <- un pitch
> Pour récupérer le 'string-number et le 'digit, tu peux utiliser un music-
map
> à l'intérieur de la note : tu peux savoir si un évenement evt est un
> 'StringNumberEvent ou un 'StrokeFingerEvent avec sa propriété name : (if
> (eq? (ly:music-property evt 'name) 'StringNumberEvent) ...) par exemple, 
et
> après tu peux enfin récupérer le 'string-number ou le 'digit
> (ly:music-property evt 'string-number)  ; <- un nombre

Je dois oublier qq chose qq part parce que ça ne marche pas, c'est soit vide 
soit unbound, et les lignes pitch-notename etc. que j'ai commentées me 
plantent tout.

Voici le petit bout de code que j'ai écrit pour voir si je récupère bien les 
infos de
(make-music
  'NoteEvent
  'articulations
  (list (make-music
          'StringNumberEvent
          'string-number
          2)
        (make-music
          'FingeringEvent
          'digit
          1)
        (make-music
          'StrokeFingerEvent
          'digit
          5))
  'duration
  (ly:make-duration 2 0 1)
  'pitch
  (ly:make-pitch -1 6 0))


\version "2.16.0"
\language "italiano"

Melody = \relative sol'  {
       \displayMusic si4\2-1\rightHandFinger #5
}

diatoTab = #(define-music-function (parser location note-event)
                                        (ly:music?)
""
(display (ly:music-property note-event 'pitch))
;(display (ly:pitch-notename note-event))
;(display (ly:pitch-octave note-event))
;(display (ly:pitch-alteration note-event))
(if (eq? (ly:music-property note-event 'name) 'StringNumberEvent)
  (display (ly:music-property note-event 'string-number)))
(if (eq? (ly:music-property note-event 'name) 'FingeringEvent)
  (display (ly:music-property note-event 'digit)))
(if (eq? (ly:music-property note-event 'name) 'StrokeFingerEvent)
  (define dir (ly:music-property note-event 'digit)))
note-event)

\score { \new Staff << \diatoTab \Melody >> }


-- 
Cordialement, Daniel Cartron
« Le marchand de sable ne fait pas fortune dans le désert. »
Proverbe bantou - Alexandre Vialatte




reply via email to

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