DirectX SDK |
The following notation shows the organization of the top-level chunk of a style file:
RIFF( 'DMST' <styh-ck> // Style header chunk <guid-ck> // Unique identifier [<UNFO-list>] // Name, author, copyright information, comments [<vers-ck>] // Version chunk <part-list>... // List of parts in the style, used by patterns <pttn-list>... // List of patterns in the style <DMBD-form>... // List of bands in the style [<motf-list>] // List of motifs in the style [<prrf-list>] // List of chord-map references in the style )
The individual chunks and their subchunks are as follows:
<styh-ck> -> styh( <DMUS_IO_STYLE> )
This chunk contains the basic header information for a style. For the next three chunks, see Common Chunks.
Next, comes a chunk for each musical part in the style:
<part-list> -> LIST('part' <prth-ck> // Part header chunk [<UNFO-list>] [<note-ck>] // List of notes in the part [<crve-ck>] // List of curves in the part )
The part list includes a header, an optional UNFO chunk, and a list of notes and curves, as shown in the following example. (For the UNFO list, see Common Chunks.)
<prth-ck> -> prth( <DMUS_IO_STYLEPART> ) <note-ck> -> note( < DWORD > // Size of DMUS_IO_STYLENOTE < DMUS_IO_STYLENOTE >... ) <crve-ck> -> crve( < DWORD > // Size of DMUS_IO_STYLECURVE < DMUS_IO_STYLECURVE >... )
After the part-list chunk comes the pattern-list chunk:
<pttn-list> -> LIST( 'pttn' <ptnh-ck> // Pattern-header chunk <rhtm-ck> // List of rhythms for chord matching [<UNFO-list>] [<mtfs-ck>] // Motif settings chunk <pref-list>... // List of part reference IDs )
The pattern list consists of the following subchunks. (For the optional UNFO list, see Common Chunks.)
<ptnh-ck> -> ptnh( < DMUS_IO_PATTERN > ) <rhtm-ck> -> rhtm( < DWORD >... )
This chunk consists of an array of DWORDs, one for each measure, giving the rhythm pattern. For information on the arrangement of the bits, see the dwRhythmPattern member of DMUS_RHYTHM_PARAM.
<mtfs-ck> -> mtfs( < DMUS_IO_MOTIFSETTINGS > ) <pref-list> -> LIST( 'pref' <prfc-ck> // Part reference chunk )
The "pref" chunk in turn consists of an array of part references:
<prfc-ck> -> prfc( < DMUS_IO_PARTREF > )
The last chunk in the style form is the list of chord-map references:
<prrf-list> -> LIST( 'prrf' <DMRF-list>... )
For more information on <DMRF-list>, see Common Chunks.