DirectX SDK |
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 that is 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. |
DirectX for Visual Basic does not give applications direct access to message structures. Instead, it provides the following methods for sending particular kinds of messages:
DirectMusicPerformance.SendCurvePMSG | MIDI curve. |
DirectMusicPerformance.SendNotePMSG | Musical note. |
DirectMusicPerformance.SendPatchPMSG | Patch change. |
DirectMusicPerformance.SendMIDIPMSG | Miscellaneous MIDI events. |
DirectMusicPerformance.SendTempoPMSG | Tempo change. |
DirectMusicPerformance.SendTimeSigPMSG | Time-signature change. |
DirectMusicPerformance.SendTransposePMSG | Transposition change. |