Microsoft DirectX 8.1 (C++) |
Not implemented in DirectX 8.1.
The following notation shows the organization of the top-level chunk of a song file. This form can also be contained within a Container Form.
RIFF( 'DMSO'
<sngh-ck> // Song header chunk.
[<guid-ck>] // GUID for song.
[<vers-ck>] // Optional version info.
[<UNFO-list>] // Name, author, copyright information, comments.
[<DMCN-form>] // Container of objects embedded in file.
<segl-list> // Segments.
[<tlgl-list>] // Toolgraphs.
[<DMAP-form>] // Audiopath shared by all segments.
<srsl-list> // Segment references.
)
<sngh-ck>
This chunk contains the basic header information for a song.
<sngh-ck> -> sngh ( <DMUS_IO_SONG_HEADER> )
<guid-ck>, <vers-ck>, <UNFO-list>
See Common Chunks.
<DMCN-form>
See Container Form.
<segl-list>
<segl-list> -> LIST( 'segl'
<ssgl-list>...
)
The song segments list contains an array of segments, each of which is described in the following list:
<ssgl-list> -> LIST( 'ssgl'
[<DMSG-form>]
[<DMRF-list>]
)
This list consists of either a Segment Form or a Reference List.
<tlgl-list>
<tlgl-list> -> LIST( 'tlgl'
<DMTG-form>...
)
The toolgraph list consists of an array of toolgraph forms. See Toolgraph Form.
<DMAP-form>
This chunk describes audiopaths shared by all segments in the song. See Audiopath Form.
<srsl-list>
The last chunk in the song form is an array of segment reference lists that are organized as follows:
<srsl-list> -> LIST( 'srsl'
<sgrl-list>...
)
<sgrl-list> -> LIST( 'sgrl'
<sgrh-ck> // Segment reference header
<segh-ck> // Segment header
[<UNFO-list>] // Name, author, copyright, comments
[<strh-ck>] // Segment transition chunk
[<trsl-list>] // Track references
)
This list starts with a segment reference header.
<sgrh-ck> -> ( 'sgrh' <DMUS_IO_SEGREF_HEADER> )
Next is a segment header. For the syntax of the <segh-ck> chunk, see Segment Form.
For <UNFO-list>, see Common Chunks.
The segment transition chunk specifies valid transitions from other segments to this segment. It is organized as follows:
<strh-ck> -> ( strh
<DMUS_IO_TRANSITION_DEF> // Default transition
<DMUS_IO_TRANSITION_DEF>... // Additional transitions
)
The last part of the segment reference list chunk contains track references that are used to create a segment from tracks in multiple segments:
<trsl-list> -> LIST( 'trsl'
<tkrl-list>...
)
This list consists in turn of an array of track reference lists, each of which is organized as follows:
<tkrl-list> -> ( 'tkrl'
<tkrh-ck> // Track reference header chunk
<trkh-ck> // Track header chunk
[<trkx-ck>] // Track flags
)
This list consists of three chunks. The first consists of a header structure that identifies the segment containing the track:
tkrh-ck -> tkrh( <DMUS_IO_TRACKREF_HEADER> )
For the other two chunks of the track reference list, see Track Form.