[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Fisarmonica] - comment utiliser \musicMap ?
From: |
elmamyra |
Subject: |
Re: [Fisarmonica] - comment utiliser \musicMap ? |
Date: |
Thu, 6 Jun 2013 04:54:31 -0700 (PDT) |
Daniel Cartron-2 wrote
> 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.
Le fait d'utiliser "\displayMusic" n'envoie pas une liste de musique dans ta
fonction, mais affiche simplement la musique dans la console.
"note-event" contient en fait un "RelativeOctaveMusic". Il te faut donc
récupérer les "NoteEvent". Voici un petit exemple qui permet d'afficher le
pitch et le nom des articulations de chaque note:
\version "2.16.0"
\language "italiano"
#(define (display-info mus-elt)
(let ((articulations (ly:music-property mus-elt 'articulations)))
(newline)(display "__________________ ")(newline)
(display-scheme-music mus-elt)
(display (ly:music-property mus-elt 'pitch))
(for-each (lambda (arti)
(newline)(display (ly:music-property arti 'name))
)
articulations
)
mus-elt
)
)
diatoTab = #(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)
(display-info mus-elt)
)
)
music-list
)
mus
)
)
Melody = \relative sol' {
si4\2-1\rightHandFinger #5 do\3-2 re\1-4
}
\score { \new Staff << \diatoTab \Melody >> }
Ensuite je pense que ton but est de pouvoir modifier les notes et les
articulations, pour ce faire tu peux remplacer le for-each par map. Un petit
exemple qui descend le pitch d'un octave et met les tous les doigtés à 1:
\version "2.16.0"
\language "italiano"
#(define (appli-change mus-elt)
(if (eq? (ly:music-property mus-elt 'name) 'NoteEvent)
(let* (
(pitch (ly:music-property mus-elt 'pitch))
(pitch-oct (ly:pitch-octave pitch))
(pitch-name (ly:pitch-notename pitch))
(pitch-alt (ly:pitch-alteration pitch))
(articulations (ly:music-property mus-elt 'articulations))
)
(ly:music-set-property! mus-elt 'pitch (ly:make-pitch (1-
pitch-oct) pitch-name pitch-alt))
(for-each (lambda (arti)
(if (eq? (ly:music-property arti 'name) 'StringNumberEvent)
(ly:music-set-property! arti 'string-number 1)
(ly:music-set-property! arti 'digit 1)
)
)
articulations
)
mus-elt
)
mus-elt
)
)
diatoTab = #(define-music-function (parser location mus) (ly:music?)
(let* (
(relativeMusic (ly:music-property mus 'element) )
(music-list (ly:music-property relativeMusic 'elements))
)
(ly:music-set-property! relativeMusic 'element (map appli-change
music-list))
mus
)
)
Melody = \relative sol' {
si4\2-1\rightHandFinger #5 do\3-2 re\1-4
}
\score { \new Staff << \diatoTab \Melody >> }
--
View this message in context:
http://lilypond-french-users.1298960.n2.nabble.com/Fisarmonica-comment-utiliser-musicMap-tp7579923p7579935.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.
- Re: [Fisarmonica] - comment utiliser \musicMap ?, (continued)
- Re: [Fisarmonica] - comment utiliser \musicMap ?, Daniel Cartron, 2013/06/05
- Re: [Fisarmonica] - comment utiliser \musicMap ?, Daniel Cartron, 2013/06/06
- Re: [Fisarmonica] - comment utiliser \musicMap ?, Gilles, 2013/06/06
- Re: [Fisarmonica] - comment utiliser \musicMap ?, Daniel Cartron, 2013/06/07
- Re: [Fisarmonica] - comment utiliser \musicMap ?, Daniel Cartron, 2013/06/07
- Re: [Fisarmonica] - comment utiliser \musicMap ?, Gilles, 2013/06/07
- Re: [Fisarmonica] - comment utiliser \musicMap ?, Daniel Cartron, 2013/06/07
- Re: [Fisarmonica] - comment utiliser \musicMap ?, Daniel Cartron, 2013/06/08
- Re: [Fisarmonica] - comment utiliser \musicMap ?, Daniel Cartron, 2013/06/10
Re: [Fisarmonica] - comment utiliser \musicMap ?, Daniel Cartron, 2013/06/06