Tracks

Tracks are the components of a segment that contain its sequenced data, including information about notes, underlying chords, tempo, patch and band changes, and everything else the performance needs to know in order to play a piece of music.

Each track is represented by an IDirectMusicTrack interface. The methods of this interface are called by the performance, and most applications will not need to use them directly.

When an application calls IDirectMusicPerformance::PlaySegment, DirectMusic begins calling the IDirectMusicTrack::Play method on the segment's tracks. Most tracks respond by immediately generating timestamped messages containing data that is valid for the part of the segment that is being played. These messages are placed in a queue. (See Message Creation and Delivery for more information about what happens after that.)

A few tracks do not actively generate messages in response to IDirectMusicTrack::Play but instead do their work by responding to requests for information that come from the performance or other tracks in the form of a GetParam call. (See Setting and Retrieving Track Parameters.)

The following list shows the standard track types implemented by DirectMusic, with a brief description of each one. For a list of the methods supported by the standard tracks, see the reference for IDirectMusicTrack.