Platform SDK: DirectX

Authoring Chord Maps

Much modern music, especially music in the popular, rock, folk, and jazz idioms, is based on the concept of chord progression, meaning that all the notes played within a given span of time are associated with a certain chord, and the music moves harmoniously from one chord to another.

The notes within a pattern authored for DirectMusic are derived from or intended to harmonize with a single chord. At run time, however, the pattern is transposed according to the chord progression—that is, each time the underlying chord changes, DirectMusic modifies the pitch of the notes accordingly.

The chord map is a road map of chord progressions. Within the chord-map designer, the author chooses chords that can express the desired musical feeling or personality. He or she then arranges these chords in a flowchart along a time line. (The time line is conceptually circular, so it keeps looping back to the beginning as long as that segment of music is being played.)

Certain important chords are designated as signposts. These are chords that must be played at certain points. The music is always moving from one signpost to the next. Between the signposts, however, the chord progression can follow various routes from one chord to another, as mapped out by the author.

The route through the chord chart can be chosen at run time by the composition engine, providing variation in addition to that found in the patterns themselves. It can also be chosen by the authoring tool when the author is creating a segment.

A chord in the chord map can consist of several different chords, referred to as subchords. To achieve polytonality by playing different inversions of the same chord, the author can assign different parts to different subchords. Each subchord is valid for one or more levels, and these are matched up with levels assigned to parts in the style.

Note  DirectMusic allows up to DMUS_MAXSUBCHORD subchords in a chord, and this value is defined as 8. However, DirectMusic Producer currently allows authors to create a maximum of four subchords per chord.