Style Form

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.