SND (AdLib)
Ad Lib Sound Bank | |||||
![]() |
|||||
Developer: | Ad Lib, Inc. | ||||
Header: | Custom | ||||
Content: | Instrument | ||||
Instruments: | Intrinsic | ||||
Target Output
| |||||
Released: | 1988-06-29 | ||||
First Game: | Kung Fu Louie Vs. The Martial Art Posse (DOS) | ||||
Extensions |
|
An AdLib Sound Bank (SND) file doesn't store music, but it does contain the definitions for instruments to be played in MUS files. Since this format isn't actually an audio format, the list of players don't actually "play" SND files, but rather utilize them when playing a MUS file.
Technically the format is very similar to BNK, which in many ways can be regarded as the successor to this format. SND was developed first (1988) as a way of storing all the instruments necessary to play a single song, and then when the utility of this became apparent, BNK was developed (1989) which stores the data more efficiently and also adds additional fields to make managing instrument libraries easier.
Contents
Players
- AdLib Play - DOS
- Camoto - Linux, Windows
Converters
SND to ?
- Camoto - Linux, Windows - [all supported OPL formats]
- CoktelADL2VGM - Linux, Windows - VGM
- MIDIPLEX - Windows 32 - BNK, MDI
- Vinyl to CMF - DOS - CMF
? to SND
- AdLib Convert - DOS - INS
- MIDIPLEX - Windows 32 - MDI, SOP
Games
Since SND files do not store music, there are no samples, but this is a list of the games that use SND files.
Released | Title |
---|---|
1989-??-?? | Kung Fu Louie Vs. The Martial Art Posse (DOS) |
1989-??-?? | Weird Dreams (DOS) |
1990-01-?? | Avoid the Noid (DOS) (Version 1.1) |
1990-??-?? | DarkSpyre (DOS) |
1990-??-?? | DragonStrike (DOS) |
1990-??-?? | Faces ...tris III (DOS) |
1990-??-?? | X-Rock (DOS) |
1991-??-?? | Gobliiins (DOS) |
1992-??-?? | Balda (DOS) |
1992-??-?? | Color Lines (DOS) |
1992-??-?? | The Summoning (DOS) |
1992-??-?? | Vetka (DOS) |
1993-??-?? | Regatta (DOS) |
1993-??-?? | Veil of Darkness (DOS) |
1994-??-?? | Nine (DOS) |
1994-??-?? | Popo Car (DOS) |
1995-??-?? | Vinyl Goddess From Mars (DOS) |
Technical
- File size can be calculated with this formula:
FileSize = iInstCount * 65 + 6
File Header
Data type | Name | Description | Default value |
---|---|---|---|
UINT8 | iVerMajor | Version major | 1 |
UINT8 | iVerMinor | Version minor | 0 |
UINT16LE | iInstCount | Instrument count | |
UINT16LE | ofInstParams | Offset to instrument parameters | iInstCount * 9 + 6 |
SND_NAME[iInstCount] | aInstNames | Array of instrument names | |
SND_PARAM[iInstCount] | aInstParams | Array of instrument parameters |
Instrument Names
Each instrument name is null-terminated ANSI string with 8 fixed characters (9 bytes per name).
Instrument Parameters
Instrument parameters are expressed with this structure:
Data type | Name | Description |
---|---|---|
SND_OPLREGS | oplModulator | Register values for the Modulator operator (op 0) |
SND_OPLREGS | oplCarrier | Register values for the Carrier operator (op 1) |
UINT16LE | iModWaveSel | Modulator wave select (OPL base register 0xE0) |
UINT16LE | iCarWaveSel | Carrier wave select (OPL base register 0xE0) |
The SND_OPLREGS structure is defined as:
Data type | Name | Description | OPL base register |
---|---|---|---|
UINT16LE | ksl | Key scaling level | 0x40 (bits 6-7) |
UINT16LE | multiple | Frequency multiplier | 0x20 (bits 0-3) |
UINT16LE | feedback | Feedback [op 0 only, op 1 ignored] | 0xC0 (bits 1-3) |
UINT16LE | attack | Attack rate | 0x60 (upper four bits) |
UINT16LE | sustain | Sustain level | 0x80 (upper four bits) |
UINT16LE | eg | Envelope gain (nonzero value is on) | 0x20 (bit 5) |
UINT16LE | decay | Decay rate | 0x60 (lower four bits) |
UINT16LE | releaseRate | Release rate | 0x80 (lower four bits) |
UINT16LE | totalLevel | Total output level | 0x40 (bit 0-5) |
UINT16LE | am | Amplitude modulation (Tremolo) | 0x20 (bit 7) |
UINT16LE | vib | Frequency Vibrato | 0x20 (bit 6) |
UINT16LE | ksr | Key scaling/envelope rate | 0x20 (bit 4) |
UINT16LE | con | Connector [op 0 only, op 1 ignored] | 0xC0 (bit 0, inverted) |
Links
- shikadi.net/moddingwiki/AdLib_Timbre_Bank_Format - Modding Wiki.