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 info, 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 chordmap 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 these 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 part
[<crve-ck>] // List of curves in part
)
The part list includes a header, an optional UNFO chunk, and a list of notes and curves, as shown in the following notation. (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 chordmap references:
<prrf-list> -> LIST( 'prrf'
<DMRF-list>...
)
For more information on <DMRF-list>, see Common Chunks.