[ << 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.