| [ << Scheme tutorial ] | [Top][Contents][Index][ ? ] | [ Interfaces for programmers >> ] | ||
| [ < Building complicated functions ] | [ Up : Building complicated functions ] | [ Music properties > ] | ||
1.3.1 Displaying music expressions
When writing a music function it is often instructive to inspect how
a music expression is stored internally. This can be done with the
music function \displayMusic
{
\displayMusic { c'4\f }
}
will display
(make-music
'SequentialMusic
'elements
(list (make-music
'NoteEvent
'articulations
(list (make-music
'AbsoluteDynamicEvent
'text
"f"))
'duration
(ly:make-duration 2 0 1/1)
'pitch
(ly:make-pitch 0 0 0))))
By default, LilyPond will print these messages to the console along
with all the other messages. To split up these messages and save
the results of \display{STUFF}, redirect the output to
a file.
lilypond file.ly >display.txt
With a combined bit of Lilypond and Scheme magic, you can actually let Lilypond direct just this output to a file of its own:
{
#(with-output-to-file "display.txt"
(lambda () #{ \displayMusic { c'4\f } #}))
}
A bit of reformatting makes the above information easier to read:
(make-music 'SequentialMusic
'elements (list
(make-music 'NoteEvent
'articulations (list
(make-music 'AbsoluteDynamicEvent
'text
"f"))
'duration (ly:make-duration 2 0 1/1)
'pitch (ly:make-pitch 0 0 0))))
A { … } music sequence has the name
SequentialMusic, and its inner expressions are stored as a list
in its 'elements property. A note is represented as a
NoteEvent object (storing the duration and pitch properties) with
attached information (in this case, an AbsoluteDynamicEvent with
a "f" text property) stored in its articulations property.
\displayMusic returns the music it displays, so it will get
interpreted as well as displayed. To avoid interpretation, write
\void before \displayMusic.
| [ << Scheme tutorial ] | [Top][Contents][Index][ ? ] | [ Interfaces for programmers >> ] | ||
| [ < Building complicated functions ] | [ Up : Building complicated functions ] | [ Music properties > ] | ||
Other languages: deutsch, español, français.
About automatic language selection.