Microsoft DirectX 8.0 (C++) |
Not implemented in DirectX 8.0.
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 )
This chunk contains the basic header information for a song.
<sngh-ck> -> sngh ( <DMUS_IO_SONG_HEADER> )
See Common Chunks.
See Container Form.
<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> -> LIST( 'tlgl' <DMTG-form>... )
The toolgraph list consists of an array of Toolgraph Forms.
This chunk describes audiopaths shared by all segments in the song. See Audiopath Form.
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.