Une voix est composée essentiellement d'événements. Parmi toutes les informations que contient un événement, il existe un champ qui lui permet de savoir à quelle portée il appartient. Ainsi, deux événements de la même voix, peuvent être sur deux portées différentes, de même que deux événements de deux voix différentes peuvent être sur la même portée. Au moment du dessin d'un événement, celui-ci calcule son emplacement sur la page, en fonction de l'emplacement de sa portée, ce qui permet, par exemple, le déplacement des portées.
Nous appelons donc événement tout ce qui peut arriver sur une voix, aussi bien les
notes et les silences, que les clefs, les armures ou les barres de mesures.
Un événement est composé des champs suivants :
- Indice de portée : l'indice de la portée de l'événement.
- Espace avant : correspond à l'espacement vide avant l'événement. Typiquement, si c'est
une note avec un bémol, l'espace avant sera de la taille du bémol.
- Espace propre avant : la différence entre l'espace avant et l'espace propre avant,
est que le premier implique toutes les voix. Si on augmente l'espace avant
d'une note, alors non seulement elle, mais aussi tous les événements qui sont
alignés avec elle seront décalés vers la droite. Ainsi, si on insère un bémol
devant une note, elle se décale vers la droite, et tous les événements des autres
voix seront aussi décalés. Par contre l'espace propre avant permet les petits
ajustements qui n'impliquent pas les autres voix.
À la base, les propriétés communes à tous les événement sont donc typiquement graphiques, il n'y a ni durée, ni hauteur. Ensuite les objets héritant de la classe événement ajouteront les caractéristiques musicales nécessaires. Ainsi une note contiendra les mêmes champs qu'un événement, mais en plus elle contiendra un champ durée, et un champ hauteur.
Les événements peuvent être de deux catégories : les événements ayant une durée, et les événements n'en ayant pas.