Fantastic, I'm finally starting to 'get' what relative does. Thanks.
On 4/15/07, Carl Sorensen <[EMAIL PROTECTED]> wrote:
Matthew Hanna <mhanna <at> gmail.com> writes:
>
> As an exercise in learning to write lilypond scheme extensions, I've
been
> trying
> to write a music-function that, given an EventChord or SequentialMusic,
will
> return the passage in octaves, so c would return <c c,>. I've run into
a
> problem, though.
I think the problem you're having is that you're displaying only part of
the
music; the displayMusic is only operating on the chord which is inside the
relative music expression.
If you change your code as follows:
\version "2.10.20"
{{\displayMusic \relative c' {
<c' c,>
}
\displayMusic \relative c'' {
<c c,>
}}
}
You will then get the music expressions that include the RelativeMusic
output:
(make-music
'RelativeOctaveMusic
'element
(make-music
'SequentialMusic
'elements
(list (make-music
'EventChord
'elements
(list (make-music
'NoteEvent
'duration
(ly:make-duration 2 0 1 1)
'pitch
(ly:make-pitch 1 0 0))
(make-music
'NoteEvent
'duration
(ly:make-duration 2 0 1 1)
'pitch
(ly:make-pitch 0 0 0)))))))
(make-music
'RelativeOctaveMusic
'element
(make-music
'SequentialMusic
'elements
(list (make-music
'EventChord
'elements
(list (make-music
'NoteEvent
'duration
(ly:make-duration 2 0 1 1)
'pitch
(ly:make-pitch 1 0 0))
(make-music
'NoteEvent
'duration
(ly:make-duration 2 0 1 1)
'pitch
(ly:make-pitch 0 0 0)))))))
And you can see that the pitches are the same in both expressions.
In your example, you were passing the displayMusic function just <c' c,>
and <c
c,>, which are absolute pitches as far as the displayMusic function could
tell.
Carl Sorensen
_______________________________________________
lilypond-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-user
_______________________________________________
lilypond-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-user