The region chunk in a Downloadable Sounds (DLS) file contains directions to finding a wave sample and instructions how and for which notes this sample should be played. The region chunk is a chunk of the RIFF type LIST with the subtype "rgn ".
The content of the region chunk is as follows.
Byte sequence description | Length in bytes | Starts with byte in the chunk | Value |
chunk ID | 4 | 0x00 | The ASCII character string "LIST" |
size | 4 | 0x04 | The size of the sub-chunk less 8 (less the "chunk ID" and the "size") (an unsigned integer) |
list type ID | 4 | 0x08 | The ASCII character string "rgn " (note the space after "n") |
data | various | 0x0C | Region header, wave link, wave sample, and articulations as described below |
Structure and placement of the region chunk
As described in the main DLS topic]], a region chunks is contained in a list of regions. The list of regions itself is also a chunk of the RIFF type LIST and is found within a DLS instrument. A DLS instrument is a collection of wave samples (directions for finding the wave samples in the file) and instructions about how these wave samples should be played to produce the sound of an instrument (e.g., piano, drum set, etc.).
Each region in the instrument contains:
- Directions to one wave sample.
- Instructions about which notes on the instrument should use this sample. For example, the notes C to F in octave 4 on the piano perhaps use one sample, while other notes use another.
- Instructions about what velocities can use this sample. For example, if velocity is to be interpreted as volume, it is possible that quiet notes should use one sample, while loud notes should use another.
- Instructions about how the sample should be played. These are called articulations. An articulation could specify, for example, the decay of a note (the amount of time for a note volume to decrease to silence) or the frequency oscillation (LFO) for a vibrato or tremolo.
The following is the structure of a region chunk.
- Region list chunk
- Region chunk
- Region header chunk
- Wave link chunk
- Wave sample chunk
- Articulation list chunk
- Articulation chunk
- Articulation chunk
- …
- Region chunk
- …
Chunks in the region chunk
The region header sub-chunk specifies which notes should be played by the wave sample, what note velocities can use this sample, and options for whether the note on this instrument can be played with other notes on this instrument or whether it should turn off other notes on this instrument (for example, a closed high hat on a drum set should realistically turn off an open high hat on the same drum set).
The wave link chunk specifies, most importantly, the index of the cue in the DLS wave pool table. The wave pool table is in a separate part of the DLS file. The cue index is zero based.
The wave sample chunk contains information about how a wave sample should be played. That is, the wave sample chunk describes how the wave data is stored (e.g., how many and which samples should be repeated so that the sound can be sustained) and how it was recorded (e.g., any pitch corrections to produce the correct pitch).
Articulations also contain information about how the wave sample should be played, but they are different than wave sample chunks. Articulations describe how the sound should be modified (e.g., volume envelopes) to imitate the instrument.
See also:
Donwloadable Sounds (DLS) format
Add new comment