DLS
Downloadable Sounds | |||||
Developer: | IASIG, MMA | ||||
Header: | RIFF | ||||
Content: | PCM | ||||
Instruments: | Intrinsic | ||||
Target Output
| |||||
Released: | 1990-??-?? | ||||
First Game: | ? | ||||
Extensions |
|
The DownLoadable Sounds (DLS) file format was firstly created by Interactive Audio Special Interest Group (IASIG) in 1990 and continued by MIDI Manufacturers Association (MMA) later. The file doesn't store music, but it does contain the digital audio samples for instrument collections.
Some audio hardware has native DLS support for wavetable synthesis, for example:
- Creative Sound Blaster Live!
- Analog Devices SoundMAX series (AD1888, AD1980, AD1985, etc.)
Since not many sound cards have native DLS support, Microsoft has developed DirectMusic Synthesizer, firstly bundled with DirectX 6.1, which uses DLS sound banks by design. Also the DirectMusic proprietary format was created to extend MIDI capabilities.
Mainly DLS is used in music formats like RMI or SGT, but some games can use it to store sound effects.
Contents
Players
- Awave Studio - Windows
- DirectMusic Producer - Windows
- libdmusic - Linux, Windows 32, Windows 64
- FluidSynth - Linux, Windows, Macintosh - limited support.
- MIDI Decoder - foobar2000 (Windows) - uses FluidSynth to handle DLS internally.
- ModPlug Tracker - Windows
- SpessaSynth - Web
- Nullsoft MIDI Player - Winamp (Windows) - plug-in configuration must be changed to use "Microsoft Synthesizer (with output)" to properly play RMI/DLS files.
Editors
- Awave Studio - Windows
- DirectMusic Producer - Windows
- DLS Tools - Windows
- PolyPhontics - Macintosh
- Project Swami - Windows, Macintosh, Linux
- SynthFont Viena - Windows
Converters
DLS to ?
- libdmusic - Linux, Windows 32, Windows 64 - SF2, WAV
- SpessaSynth - Web - SF2, SF3
- Awave Studio - Windows - SF2, SF3, WAV
? to DLS
- Awave Studio - Windows - SF2, SF3, WAV and many other formats supported by this software.
- SpessaSynth - Web - SF2, SF3
Games
Released | Title | Usage |
---|---|---|
1999-02-03 | DirectX Diagnostic Tool (W32) | Music Instruments |
2000-01-25 | Final Fantasy VIII (W32) | Music Instruments |
2000-09-22 | Midtown Madness 2 (W32) | Music Instruments |
2000-11-09 | No One Lives Forever (W32) | Music Instruments |
2001-04-13 | Analog Devices Sound Demo (W32) | Music Instruments |
2001-01-26 | Monkey Brains (W32) | Music Instruments |
2001-11-15 | Gothic (W32) | Music Instruments |
2002-05-15 | Elite Forces: Navy SEALs (W32) | Sound Effects |
2003-03-03 | Shutokou Battle Online (W32) (首都高バトルONLINE) | Sound Effects |
2003-08-18 | Donuts 4: Revenge of the Space Torus (W32) | Music Instruments |
2003-08-21 | Gothic II: Night of the Raven (W32) | Music Instruments |
2003-10-28 | Gothic II (W32) | Music Instruments |
Technical
All DLS files use RIFF tree structure, and the identifier is "DLS " (with space at the end).
RIFF Tree Structure
File Root │ └─ RIFF:DLS - RIFF DLS header ├─ colh - Number of instruments in collection ├─ vers - Version (optional) ├─ msyn - "msyn" chunk (proprietary, appears in gm.dls only) ├─ LIST:lins - Instruments list │ ├─ LIST:ins - Instrument #1 │ │ ├─ insh - Instrument header: bank and program number │ │ ├─ LIST:lrgn - Regions list │ │ │ ├─ LIST:rgn - Region #1 │ │ │ │ ├─ rgnh - Region header: key range, velocity range │ │ │ │ ├─ wsmp - Sample information: Loop points, tuning, gain, root key │ │ │ │ ├─ wlnk - Link information: sample ID within the wave pool │ │ │ │ └─ LIST:lart - List of articulators (Local zone) | | | | └─ art1 - Articulator chunk: parameter connections for the instrument (think SF2 generators and modulators) │ │ │ ├─ LIST:rgn - Region #2 │ │ │ └─ ... │ │ ├─ LIST:lart - List of articulators (Global zone) │ │ │ └─ art1 - Articulator chunk: parameter connections for the instrument (think SF2 generators and modulators) │ │ ├─ LIST:INFO - Information container │ │ │ └─ INAM - Instrument name │ │ └─ ... │ ├─ LIST:ins - Instrument #2 │ └─ ... ├─ ptbl - Reference table to digital audio data (byte offset to each LIST:wave chunk) ├─ LIST:wvpl - Samples list │ ├─ LIST:wave - Wave sample #1 │ │ ├─ fmt - Wave format header: type, channels, sample rate, bit depth │ │ ├─ wsmp - Sample information: Loop points, tuning, gain, root key │ │ ├─ data - Waveform data: Usually PCM, but other formats such as A-Law may appear │ │ ├─ LIST:INFO - Information container │ │ │ ├─ INAM - Sample name │ │ │ └─ ICOP - Copyright of the sample (optional) │ │ └─ ... │ ├─ LIST:wave - Wave sample #2 │ └─ ... └─ LIST:INFO - Information container ├─ INAM - Name / Title ├─ ICOP - Copyright ├─ ICMT - Comment ├─ ISBJ - Subject ├─ ISFT - Software └─ ...
Differences between DLS 1 and 2
There are some key differences between these two versions of the format.
Level 1
- Regular instruments are limited to one global articulator chunk.
- Drum instruments cannot have a global articulator and each sample has to have its own articulator chunk.
- Region header is
rgn
. Note the space at the end. - Articulators use
lart
andart
. Note the space at the end.
Level 2
- Both regular and drum instruments can have both global and local articulators.
- There are more connection types and parameters.
- Envelope delay and hold time introduced.
- A second LFO called Vibrato LFO introduced.
- Region header is
rgn2
. - Articulators use
lar2
andart2
.
Links
- midi.org/techspecs/dls/dls.php - MIDI.org - technical specifications.
- en.wikipedia.org/wiki/DLS_format - Wikipedia.
- digitalpreservation.gov/formats/fdd/fdd000118.shtml - Downloadable Sounds Format, Version 1.1b.
- fmjsoft.com/fmt/dls.htm - .DLS - DownLoadable Sounds level 1 & 2 / Mobile DLS.
- support.turtlebeach.com/entry/579612403/ - DLS Samples with Montego II.