[ << Tutorial de Scheme ] | [Arriba][Índice general][Índice][ ? ] | [ Interfaces para programadores >> ] | ||
[ < Cadenas de listas-A ] | [ Subir : Scheme dentro de LilyPond ] | [ Construir funciones complicadas > ] |
A.2.7 Representación interna de la música
Internamente, la música se representa como una lista de Scheme. La lista contiene varios elementos que afectan a la salida impresa. El análisis sintáctico es el proceso de convertir la música de la representación de entrada de LilyPond a la representación interna de Scheme.
Cuando se analiza una expresión musical, se convierte en un conjunto de objetos musicales de Scheme. La propiedad definitoria de un objeto musical es que ocupa un tiempo. El tiempo que ocupa se llama duración. Las duraciones se expresan como un número racional que mide la longitud del objeto musical en redondas.
Un objeto musical tiene tres clases de tipos:
-
nombre musical: Cada expresión musical tiene un nombre. Por ejemplo,
una nota lleva a un
NoteEvent, y
\simultaneous
lleva a una SimultaneousMusic. Hay una lista de todas las expresiones disponibles en el manual de Referencia de funcionamiento interno, bajo el epígrafe expressions Music expressions. -
‘type’ (tipo) o interface: Cada nombre musical tiene varios
‘tipos’ o interfaces, por ejemplo, una nota es un
event
, pero también es unnote-event
, unrhythmic-event
, y unmelodic-event
. Todas las clases de música están listadas en el manual de Referencia de funcionamiento interno, bajo el epígrafe Music classes. -
objeto de C++: Cada objeto musical está representado por un objeto de
la clase
Music
de C++.
La información real de una expresión musical se almacena en
propiedades. Por ejemplo, un
NoteEvent tiene propiedades
pitch
y duration
que almacenan la altura y la duración
de esa nota. Hay una lista de todas la propiedades disponibles en el
manual de Referencia de funcionamiento interno, bajo el epígrafe
Music properties.
Una expresión musical compuesta es un objeto musical que contiene
otros objetos musicales dentro de sus propiedades. Se puede almacenar
una lista de objetos dentro de la propiedad elements
de un
objeto musical, o un único objeto musical ‘hijo’ dentro de la
propiedad element
. Por ejemplo,
SequentialMusic
tiene su hijo dentro de elements
, y
GraceMusic
tiene su argumento único dentro de element
. El cuerpo de una
repetición se almacena dentro de la propiedad element
de
RepeatedMusic, y las alternativas dentro de
elements
.
[ << Tutorial de Scheme ] | [Arriba][Índice general][Índice][ ? ] | [ Interfaces para programadores >> ] | ||
[ < Cadenas de listas-A ] | [ Subir : Scheme dentro de LilyPond ] | [ Construir funciones complicadas > ] |
Otros idiomas: English, deutsch, français.
Acerca de la selección automática del idioma.