Pool table chunk (of a DLS file)

The pool table chunk contains a list of cues. Each cue is the offset in number of bytes from the beginning of the wave pool data (the collection of wave audio data) to a wave sample in the wave pool data.

The pool table chunk in the DLS file format has the following structure.

Byte sequence description Length in bytes Starts with byte in the chunk Value
chunk ID 4 0x00 The ASCII character string "ptbl"
size 4 0x04 The size of the chunk in number of bytes (unsigned integer) less 8 (less the size of "chunk ID" and the "size")
size of the structure 4 0x08 The size of the pool table structure in number of bytes (an unsigned integer), but not including the pool cues
number of cues 4 0x0C The number of pool cues that follow (unsigned integer)
pool cues various 0x10 A list of pool cues, where each pool cue is an unsigned integer

Size of the structure

The size of the structure in the current DLS specifications is 8, as it is simply the sum of the 4 bytes for this "size of the structure" and the 4 bytes for the "number of cues". This size, however, is here to allow for future augmentations of the pool table structure. In future versions of the DLS specifications, this size can become different, if the pool table structure is augmented.

Example of a pool cue

For an example of a pool cue, suppose that a pool cue points to the first wave sample in the wave pool list chunk. The wave pool list chunk itself is a LIST chunk of type "wvpl" and hence its first 12 bytes are the "LIST" ASCII string, the chunk size, and the "wvpl" ASCII string. The wave samples in the wave pool list start immediately after the "wvpl" string. Thus, if a pool cue points to the first wave sample in the wave pool list, then that pool cue is zero (0x00000000). In other words, it points to the very start of the data in the wave pool list chunk.

Use of the pool table chunk

A region chunk in an DLS instrument chunk shows which wave samples should be played to produce specific notes on the instrument. Region chunks do so by incorporating wave link chunks, which are the chunks that actually contain the position of the wave sample. Instead of pointing directly to the wave sample, however, the wave link points to a pool cue in the pool table chunk. This means that changes to the wave pool list (adding and deleting wave samples) can be handled by simply changing the pool cues, rather than changing the wave links in regions.

See also:
Downloadable Sounds (DLS) format

Add new comment

Filtered HTML

  • Freelinking helps you easily create HTML links. Links take the form of [[indicator:target|Title]]. By default (no indicator): Click to view a local node.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.