Downloadable Sounds - Level 1 Overview (1997)
(Excerpted from an Article written for Yamaha's XG-Extra Newsletter, by Howard Massey)
The 1997 Winter NAMM show provided a venue for what may prove to be one of the most significant events in the history of MIDI: the MMA's unanimous ratification of Downloadable Sounds (DLS) Level 1. In this article, we'll preview the main features of this innovative extension to MIDI.
Unashamedly targeted for CD-ROM and Internet entertainment applications, DLS provides a means for game developers and composers to add their own custom sounds to the GM sound set stored in a sound card's ROM. DLS-compatible devices will automatically download these custom sounds from card, disk or CD-ROM into system RAM, allowing MIDI music to be freely augmented with new instrument sounds, dialog or special effects - thus providing a universal interactive playback experience, along with an unlimited palette of sounds. At the same time, it enables the wavetable synthesizers in computer sound cards to deliver improved audio at no additional cost. The DLS specification will be publicly available this spring, and DLS-compatible sound cards and chip sets are expected to begin shipping later this year.
The DLS file format generally follows standard Microsoft RIFF layout (with a form type of "DLS"), utilizing chunks and sub-chunks and incorporating standard WAVE files. The following description is taken from a preliminary version of the DLS Specification:
"The DLS file format is used to store both the digital sound data and articulation parameters needed to create one or more 'instruments.' An instrument contains 'regions' which point to WAVE 'files' (samples) also embedded in the DLS file. Each region specifies a MIDI note and velocity range which will trigger the corresponding sound and also contains articulation information such as envelopes and loop points. Articulation information can be specified for each individual region or for the entire instrument."
The flexible file structure utilized by DLS means that a single sample may serve as different regions within different instruments-for example (as shown in Figure 1), a given sample can serve as region "1b" for instrument "1" while at the same time acting as region "2a" for instrument "2."
There are two basic kinds of DLS Level 1 instruments: Melodic instruments and drum kits. As shown in Figure 2, melodic instruments can be accessed by any MIDI channel except channel 10 and contain up to 16 regions, with all regions utilizing a single set of articulation data.
In contrast, there is a single DLS Level 1 drum kit, which can only be accessed via MIDI channel 10. As shown in Figure 3, it contains up to 128 regions, one for each drum note (which can be mapped to a single key or to a contiguous range of keys). Each region has its own set of articulation data and points to a single sample.
In both melodic instruments and drum kits, multiple regions can point to the same sample if required.
As shown in Figure 4, the audio engine driving the DLS Level 1 instrument is relatively simple, consisting of a single digital oscillator routing signal into a digitally controlled amplifier (DCA).
The digital oscillator is fed a 16- or 8-bit sample and plays it back while modulating its pitch according to the incoming pitch control articulation data. The sample itself contains data that defines its sample rate (minimum rate is 22.05 kHz), base MIDI note number, and, if looped, loop start and end point. The DCA modulates the volume of the resulting signal according to the incoming volume control articulation data. DLS Level 1 does not allow for layering of oscillators within a single instrument; however, devices that support both DLS and GM may optionally use a voice prioritization scheme that "steals" the second layer of a GM instrument and assigns it instead to a DLS melodic instrument (however, within the standard 16 MIDI channels, only one drum kit can be used, and, if previously downloaded and selected, a DLS drum kit takes precedence over the GM drum kit).
DLS Level 1 articulation data includes an LFO, two discrete ADSR envelope generators, and several MIDI controller inputs. One of the envelopes routes signal to the digital oscillator and is used to vary pitch over time, while the other routes signal to the DCA and is used to vary volume over time. In addition to standard attack time, decay time, sustain level, and release time control parameters, there are additional controls that enable EG Velocity to Attack Scaling (where the MIDI note number affects the attack time) and Decay Scaling (where the MIDI note number affects the decay time). The EG polarity can also be set to positive or negative (around zero).
The LFO may be used for either pitch or volume control. It utilizes a sine wave (a triangle wave may be optionally substituted) and contains controls that allow its frequency to be set (between 0.1 Hz and 10 Hz) and start time to be delayed (between 10 ms and 10 seconds).
MIDI controller inputs include: key number, key velocity, pitch bend, the continuous controller messages Volume (cc #7), Expression (cc #11), Pan (cc #10), Modulation Wheel (cc #1), Sustain Pedal (cc #64) and RPNs 0, 1, and 2 (Pitch Bend, Fine Tuning, and Coarse Tuning), as set by the Data Entry MSB/LSB (cc #6 and #38). In addition, the Reset All Controllers and All Notes Off channel mode messages are supported.
Controller power-on default values for DLS Level 1 devices are as follows:
DLS-compatible devices will enter a special "DLS" mode upon receipt of the following DLS System On system exclusive message:
F0h 7Eh <device ID> 0Ah 01h F7h
Once in DLS mode, the device will be able to place a downloaded sound into any specified bank/instrument location, thus avoiding conflict with other operating modes (such as GM, GS, or XG) which require certain voices to be loaded into specific locations. DLS Level 1 devices must support MIDI Program Change messages (and, optionally Bank Select messages) as the means of selecting the instrument to be played by each channel. However, they only have to provide a minimum of a single melodic instrument bank for storage of downloaded sounds. In such cases, the designer of the device driver has the option of "virtualizing" incoming Bank Select MSB/LSB messages (cc #0 and #32) so that they point to the device's actual available address space.
The following DLS System Off system exclusive message is used to revert DLS-compatible devices will back to their default operating mode:
F0h 7Eh <device ID> 0Ah 02h F7h
As with the GM System On and GM System Off messages, a <device ID> = 7Fh in the DLS System On and DLS System Off messages will act as a "broadcast" message to all compatible devices.
The minimum hardware requirements for DLS-compatible devices are as follows:
The MMA intends to implement a certification process for DLS-compatible devices, utilizing an independent testing laboratory.
Not willing to rest on their laurels, the MMA (and their affiliate IASIG, the Interactive Audio Working Group) is also moving ever-forward. DLS Level 2 discussions are due to start shortly. Features being considered for Level 2 include: multiple articulations; the addition of filters and effects such as reverb; support for higher sample rates, alternate tunings, and different loop types (possibly including the use of data compression); improved (and dynamically selectable) voice prioritization; enhanced envelope controls and LFO wave shapes; and extended minimum requirements for memory and polyphony. Also, Level 2 may remove the distinction between melodic instruments and drum kits altogether, enabling all instruments to support 128 regions.
Special thanks to Tom White of the MMA, to Monty Schmidt of Sonic Foundry, and to Dave Sparks of Sequoia for their assistance in preparing this article. The illustrations in this article are (C) 1997 MMA. This article appears courtesy of Yamaha (http://usa.yamaha.com)