Messages are stored in various structures derived from DMUS_PMSG. Because C does not support inheritance, the members of DMUS_PMSG are included in the declaration for each message type as the DMUS_PMSG_PART macro. These members contain data common to all messages, including the type of the message, time stamps, the performance channel to which the message is directed, and what graph and tool are next in line to process the message. The other members contain data unique to the message type.
The following message structures are defined:
DMUS_PMSG | Simple message with no additional parameters. |
DMUS_CHANNEL_PRIORITY_PMSG | Channel priority change. See Channels. |
DMUS_CURVE_PMSG | Curve. |
DMUS_MIDI_PMSG | Any MIDI message that does not have a unique message type—for example, a control change. |
DMUS_NOTE_PMSG | Music note. (Includes duration, so MIDI note-on and note-off messages are combined in this type.) |
DMUS_NOTIFICATION_PMSG | Notification. See Notification and Event Handling. |
DMUS_PATCH_PMSG | MIDI patch change. |
DMUS_SYSEX_PMSG | MIDI system exclusive message. |
DMUS_TEMPO_PMSG | Tempo change. |
DMUS_TIMESIG_PMSG | Time signature change. |
DMUS_TRANSPOSE_PMSG | Transposition. |