Style Form
The following notation shows the organization of the top-level chunk of a style file. This form can also be contained within a Container Form.
RIFF( 'DMST'
<styh-ck> // Style header chunk
<guid-ck> // Unique identifier
[<UNFO-list>] // Name, author, copyright information, comments
[<vers-ck>] // Version chunk
<part-list>... // Array of parts in the style, used by patterns
<pttn-list>... // Array of patterns in the style
<DMBD-form>... // List of bands in the style
[<prrf-list>] // List of chordmap references in the style
)
<styh-ck>
This chunk contains the basic header information for a style.
<styh-ck> -> styh( <DMUS_IO_STYLE> )
<guid-ck>,<UNFO-list>, <vers-ck>
For information on these three chunks, see Common Chunks.
<part-list>
Each musical part in the style is described in a chunk with the following format.
<part-list> -> LIST('part'
<prth-ck> // Part header chunk
[<UNFO-list>]
[<note-ck>] // Notes in part.
[<crve-ck>] // Curves in part.
[<mrkr-ck>] // Markers in part.
[<rsln-ck>] // Variation resolutions in part.
[<anpn-ck>] // Resolution anticipations in part.
)
The part list includes a header, an optional UNFO chunk, and a list of elements, 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 >...
)
<mrkr-ck> -> mrkr(
< DWORD > // Size of DMUS_IO_STYLEMARKER.
< DMUS_IO_STYLEMARKER >...
)
<rsln-ck> -> rsln(
< DWORD > // Size of DMUS_IO_STYLERESOLUTION.
< DMUS_IO_STYLERESOLUTION >...
)
<anpn-ck> -> anpn(
< DWORD > Size of DMUS_IO_STYLE_ANTICIPATION.
< DMUS_IO_STYLE_ANTICIPATION >...
)
<pttn-list>
Each pattern is described in a chunk with the following format.
<pttn-list> -> LIST( 'pttn'
<ptnh-ck> // Pattern header chunk.
<rhtm-ck> // List of rhythms for chord matching.
[<UNFO-list>]
[<mtfs-ck>] // Motif settings chunk.
[<DMBD-form>] // Band to be associated with the pattern
// (for motifs).
<pref-list>... // Array of part reference Ids.
)
The first chunk of the pattern list is a header:
<ptnh-ck> -> ptnh( <DMUS_IO_PATTERN> )
The second chunk is a rhythm list:
<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.
For the optional UNFO list, see Common Chunks.
The next chunk of the pattern list describes the motif settings:
<mtfs-ck> -> mtfs( <DMUS_IO_MOTIFSETTINGS> )
For the <DMBD-form> chunk of the pattern list, see Band Form.
The last chunk of the pattern list is a part reference list.
<pref-list> -> LIST( 'pref'
<prfc-ck> // Part reference chunk
)
The only element is a part reference.
<prfc-ck> -> prfc( <DMUS_IO_PARTREF> )
<DMBD-form>
The next chunk in the style form is a Band Form.
<prrf-list>
The final chunk contains an array of chordmap references:
<prrf-list> -> LIST( 'prrf'
<DMRF-list>...
)
For more information on <DMRF-list>, see Reference List.