[ << Interfaces for programmers ] | [Top][Contents][Index][ ? ] | [ Literature list >> ] | ||
[ < Input variables and Scheme ] | [ Up : Programmer interfaces ] | [ Building complicated functions > ] |
6.2.2 Internal music representation
When a music expression is parsed, it is converted into a set of Scheme music objects. The defining property of a music object is that it takes up time. Time is a rational number that measures the length of a piece of music in whole notes.
A music object has three kinds of types:
-
music name: Each music expression has a name. For example, a note
leads to a
NoteEvent, and
\simultaneous
leads to a SimultaneousMusic. A list of all expressions available is in the Internals Reference manual, under Music expressions. -
‘type’ or interface: Each music name has several ‘types’ or
interfaces, for example, a note is an
event
, but it is also anote-event
, arhythmic-event
, and amelodic-event
. All classes of music are listed in the Internals Reference, under Music classes. -
C++ object: Each music object is represented by an object of the C++
class
Music
.
The actual information of a music expression is stored in properties.
For example, a
NoteEvent has pitch
and
duration
properties that store the pitch and duration of that
note. A list of all properties available is in the internals manual,
under
Music properties.
A compound music expression is a music object that contains other
music objects in its properties. A list of objects can be stored in
the elements
property of a music object, or a single ‘child’
music object in the element
property. For example,
SequentialMusic has its children in elements
,
and
GraceMusic has its single argument in
element
. The body of a repeat is stored in the element
property of
RepeatedMusic, and the alternatives in
elements
.
[ << Interfaces for programmers ] | [Top][Contents][Index][ ? ] | [ Literature list >> ] | ||
[ < Input variables and Scheme ] | [ Up : Programmer interfaces ] | [ Building complicated functions > ] |
Other languages: espaƱol.