[ << 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 > ] |
他の言語: deutsch, español, français
About automatic language selection.