Difference between revisions of "MUS (AdLib)"
Binarymaster (talk | contribs) m (→MIDI Notation) |
Binarymaster (talk | contribs) (→MUS to ?: add CoktelADL2VGM) |
||
(14 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Infobox Format | {{Infobox Format | ||
− | | Title = Ad Lib Music | + | | Title = Ad Lib Music |
− | | Format = MUS (AdLib) | + | | Format = MUS (AdLib) |
− | | Developer = [[Ad Lib|Ad Lib, Inc.]] | + | | Developer = [[Ad Lib|Ad Lib, Inc.]] |
− | | Header = Custom | + | | Header = Custom |
− | | Content = Notational | + | | Content = Notational |
− | | Instruments = External | + | | Instruments = External |
− | | OutputDA = No | + | | OutputDA = No |
− | | OutputMIDI = ? | + | | OutputMIDI = ? |
− | | OutputFM = Yes | + | | OutputFM = Yes |
− | | OutputPSG = No | + | | OutputPSG = No |
− | | Released = 1988-06-29 | + | | Released = 1988-06-29 |
− | | FirstGame = [[Kung Fu Louie Vs. The Martial Art Posse (DOS)]] | + | | FirstGame = [[Kung Fu Louie Vs. The Martial Art Posse (DOS)]] |
− | | Extension01 = *.mus | + | | Extension01 = *.mus |
+ | | Extension02 = *.mdy | ||
}} | }} | ||
Line 18: | Line 19: | ||
Some of the artists who composed music for games that used the MUS format, wrote their music in [[AdLib Visual Composer]], which uses the ROL format. | Some of the artists who composed music for games that used the MUS format, wrote their music in [[AdLib Visual Composer]], which uses the ROL format. | ||
− | |||
==Players== | ==Players== | ||
Line 24: | Line 24: | ||
* [[AdLib Play]] - DOS | * [[AdLib Play]] - DOS | ||
+ | * [[AdPlug]] - DOS, foobar2000, UNIX, Winamp, XMMS | ||
* [[Camoto]] - Linux, Windows | * [[Camoto]] - Linux, Windows | ||
Line 36: | Line 37: | ||
===MUS to ?=== | ===MUS to ?=== | ||
* [[Camoto]] - Linux, Windows - {{Camoto/FormatList|type=song|dir=write}} | * [[Camoto]] - Linux, Windows - {{Camoto/FormatList|type=song|dir=write}} | ||
+ | * [[CoktelADL2VGM]] - Linux, Windows - [[VGM]] | ||
* [[MIDIPLEX]] - Windows 32 - [[MDI]], [[MIDI]], [[ROL]] | * [[MIDIPLEX]] - Windows 32 - [[MDI]], [[MIDI]], [[ROL]] | ||
* [[Vinyl to CMF]] - DOS - [[CMF]] | * [[Vinyl to CMF]] - DOS - [[CMF]] | ||
Line 42: | Line 44: | ||
* [[AdLib Convert]] - DOS - [[ROL]] | * [[AdLib Convert]] - DOS - [[ROL]] | ||
* [[Camoto]] - Linux, Windows - {{Camoto/FormatList|type=song|dir=read}} | * [[Camoto]] - Linux, Windows - {{Camoto/FormatList|type=song|dir=read}} | ||
− | * [[MIDIPLEX]] - Windows 32 - [[MDI]] | + | * [[MIDIPLEX]] - Windows 32 - [[MDI]], [[SOP]] |
==Games== | ==Games== | ||
Line 54: | Line 56: | ||
| 1989-??-?? | | 1989-??-?? | ||
| [[Kung Fu Louie Vs. The Martial Art Posse (DOS)]] | | [[Kung Fu Louie Vs. The Martial Art Posse (DOS)]] | ||
+ | | | ||
+ | |- | ||
+ | | 1989-??-?? | ||
+ | | [[Lost Dutchman Mine (DOS)]] | ||
+ | | | ||
+ | |- | ||
+ | | 1989-??-?? | ||
+ | | [[Tunnels of Armageddon (DOS)]] | ||
| | | | ||
|- | |- | ||
Line 59: | Line 69: | ||
| [[Weird Dreams (DOS)]] | | [[Weird Dreams (DOS)]] | ||
| {{Song-Box|101 - Weird Dreams - DOS - WDTITLE.ogg}} | | {{Song-Box|101 - Weird Dreams - DOS - WDTITLE.ogg}} | ||
+ | |- | ||
+ | | 1990-01<!--89-12?-->-?? | ||
+ | | [[Avoid the Noid (DOS)]] (Version 1.1) | ||
+ | | {{Song-Box|101 - Avoid the Noid - DOS - Title.ogg}} | ||
+ | |- | ||
+ | | 1990-??-?? | ||
+ | | [[Black Gold (DOS)]] | ||
+ | | | ||
+ | |- | ||
+ | | 1990-??-?? | ||
+ | | [[DarkSpyre (DOS)]] | ||
+ | | | ||
|- | |- | ||
| 1990-??-?? | | 1990-??-?? | ||
Line 70: | Line 92: | ||
| 1990-??-?? | | 1990-??-?? | ||
| [[X-Rock (DOS)]] | | [[X-Rock (DOS)]] | ||
+ | | | ||
+ | |- | ||
+ | | 1991-??-?? | ||
+ | | [[Gobliiins (DOS)]] | ||
+ | | {{Song-Box|201 - Gobliiins - DOS - Gobliiins.ogg}} | ||
+ | |- | ||
+ | | 1991-??-?? | ||
+ | | [[Street Rod 2: The Next Generation (DOS)]] | ||
| | | | ||
|- | |- | ||
Line 81: | Line 111: | ||
|- | |- | ||
| 1992-??-?? | | 1992-??-?? | ||
− | | [[ | + | | [[The Summoning (DOS)]] |
| | | | ||
|- | |- | ||
| 1992-??-?? | | 1992-??-?? | ||
| [[Vetka (DOS)]] | | [[Vetka (DOS)]] | ||
+ | | | ||
+ | |- | ||
+ | | 1993-??-?? | ||
+ | | [[Regatta (DOS)]] | ||
+ | | | ||
+ | |- | ||
+ | | 1993-??-?? | ||
+ | | [[Veil of Darkness (DOS)]] | ||
| | | | ||
|- | |- | ||
| 1994-??-?? | | 1994-??-?? | ||
| [[Nine (DOS)]] | | [[Nine (DOS)]] | ||
+ | | | ||
+ | |- | ||
+ | | 1994-??-?? | ||
+ | | [[Popo Car (DOS)]] | ||
| | | | ||
|- | |- | ||
Line 96: | Line 138: | ||
| {{Song-Box|01 - Vinyl Goddess From Mars - DOS - Intro.ogg}} | | {{Song-Box|01 - Vinyl Goddess From Mars - DOS - Intro.ogg}} | ||
|} | |} | ||
+ | |||
+ | ==How to Obtain== | ||
+ | MUS files usually need to be extracted from game resource files, a process that is different for nearly every game that uses the format. | ||
==Technical== | ==Technical== | ||
Line 103: | Line 148: | ||
* It is technically possible to convert MUS file to MIDI with few modifications. | * It is technically possible to convert MUS file to MIDI with few modifications. | ||
* The file header is documented in the source file <tt>CONVERT.H</tt> of [[AdLib Play]]. | * The file header is documented in the source file <tt>CONVERT.H</tt> of [[AdLib Play]]. | ||
− | |||
===File Header=== | ===File Header=== | ||
− | |||
{| class="wikitable" | | {| class="wikitable" | | ||
! Data type | ! Data type | ||
Line 143: | Line 186: | ||
| <tt>BYTE[dataSize]</tt> || <tt>data</tt> || Melody MIDI sequence data || | | <tt>BYTE[dataSize]</tt> || <tt>data</tt> || Melody MIDI sequence data || | ||
|} | |} | ||
− | |||
:'''''Note:''''' Total number of commands in melody includes Note On, Note Off, Program Change, After Touch, Pitch Bend, Timing Overflow, System Exclusive and Stop. | :'''''Note:''''' Total number of commands in melody includes Note On, Note Off, Program Change, After Touch, Pitch Bend, Timing Overflow, System Exclusive and Stop. | ||
− | |||
===Timing=== | ===Timing=== | ||
Line 154: | Line 195: | ||
Timing bytes vary from 0 to 0xFE and precede every command. A timing byte of 0xF8 means timing overflow with a value of 240. An overflow byte is always followed by another overflow byte or timing byte. | Timing bytes vary from 0 to 0xFE and precede every command. A timing byte of 0xF8 means timing overflow with a value of 240. An overflow byte is always followed by another overflow byte or timing byte. | ||
− | |||
===MIDI Notation=== | ===MIDI Notation=== | ||
Line 228: | Line 268: | ||
| End of SysEx | | End of SysEx | ||
|} | |} | ||
− | |||
===Channel Utilization=== | ===Channel Utilization=== | ||
Line 320: | Line 359: | ||
| Unused | | Unused | ||
|} | |} | ||
− | |||
===Default Timbre=== | ===Default Timbre=== | ||
Line 355: | Line 393: | ||
==Links== | ==Links== | ||
* [http://www.shikadi.net/moddingwiki/AdLib_MIDI_Format shikadi.net/moddingwiki/AdLib_MIDI_Format] - Modding Wiki. | * [http://www.shikadi.net/moddingwiki/AdLib_MIDI_Format shikadi.net/moddingwiki/AdLib_MIDI_Format] - Modding Wiki. | ||
+ | |||
[[Category: MIDI]] | [[Category: MIDI]] |
Latest revision as of 20:05, 14 June 2022
Ad Lib Music | |||||
Developer: | Ad Lib, Inc. | ||||
Header: | Custom | ||||
Content: | Notational | ||||
Instruments: | External | ||||
Target Output
| |||||
Released: | 1988-06-29 | ||||
First Game: | Kung Fu Louie Vs. The Martial Art Posse (DOS) | ||||
Extensions |
|
This format houses AdLib notes along with a SND file that houses the instrument definitions. In that respect, it's very similar to AdLib's ROL format. Also the notation is very similar to MIDI, but it has some differences. MUS files appear to be compiled ROL files and the SND file is like a compiled BNK file.
Some of the artists who composed music for games that used the MUS format, wrote their music in AdLib Visual Composer, which uses the ROL format.
Contents
Players
- AdLib Play - DOS
- AdPlug - DOS, foobar2000, UNIX, Winamp, XMMS
- Camoto - Linux, Windows
Editors
- MIDIPLEX - Windows 32
Converters
MUS to ?
- Camoto - Linux, Windows - CMF, CDFM, DRO, GOT, IMF, MID, RAW (Rdos), S3M, TBSA
- CoktelADL2VGM - Linux, Windows - VGM
- MIDIPLEX - Windows 32 - MDI, MIDI, ROL
- Vinyl to CMF - DOS - CMF
? to MUS
- AdLib Convert - DOS - ROL
- Camoto - Linux, Windows - CMF, CDFM, DRO, DSM, GOT, IMF, KLM, MID, MUS (AdLib), MUS (DMX), RAW (Rdos), S3M, TBSA
- MIDIPLEX - Windows 32 - MDI, SOP
Games
Released | Title | Sample |
---|---|---|
1989-??-?? | Kung Fu Louie Vs. The Martial Art Posse (DOS) | |
1989-??-?? | Lost Dutchman Mine (DOS) | |
1989-??-?? | Tunnels of Armageddon (DOS) | |
1989-??-?? | Weird Dreams (DOS) | |
1990-01-?? | Avoid the Noid (DOS) (Version 1.1) | |
1990-??-?? | Black Gold (DOS) | |
1990-??-?? | DarkSpyre (DOS) | |
1990-??-?? | DragonStrike (DOS) | |
1990-??-?? | Faces ...tris III (DOS) | |
1990-??-?? | X-Rock (DOS) | |
1991-??-?? | Gobliiins (DOS) | |
1991-??-?? | Street Rod 2: The Next Generation (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) | |
How to Obtain
MUS files usually need to be extracted from game resource files, a process that is different for nearly every game that uses the format.
Technical
- MUS files usually begins with one byte of 0x01, 35 bytes of 0x00, and one byte of 0xF0.
- MUS files always ends with 0xFC byte.
- MIDI data notation is very similar to SCI (delta-ticks has same format).
- It is technically possible to convert MUS file to MIDI with few modifications.
- The file header is documented in the source file CONVERT.H of AdLib Play.
File Header
Data type | Name | Description | Default value |
---|---|---|---|
UINT8 | majorVersion | Major version | 1 |
UINT8 | minorVersion | Minor version | 0 |
INT32LE | tuneId | Melody identification | 0 |
CHAR[30] | tuneName | Melody name | |
UINT8 | tickBeat | Ticks per beat (BPM) | 240 |
UINT8 | beatMeasure | Beats per measure | |
INT32LE | totalTick | Length of melody, in ticks | |
INT32LE | dataSize | Length of melody's data part | |
INT32LE | nrCommand | Total number of commands in melody | |
BYTE[8] | filler | Padding (Unused) | 0 |
UINT8 | soundMode | 0 = melodic, 1 = percussive | |
UINT8 | pitchBRange | Pitch bend sensitivity (1-12) | 1 |
UINT16LE | basicTempo | Basic tempo (PPQN) | |
BYTE[8] | filler2 | Padding (Unused) | 0 |
BYTE[dataSize] | data | Melody MIDI sequence data |
- Note: Total number of commands in melody includes Note On, Note Off, Program Change, After Touch, Pitch Bend, Timing Overflow, System Exclusive and Stop.
Timing
The data part of the .MUS file contains MIDI 1.0 commands with timing bytes of 1/tickBeat. tickBeat is the number of divisions per beat. The relation between tickBeat, tempo (beat per minute) & frequency of the timing counter is:
frequency = (tempo / 60) * tickBeat
Timing bytes vary from 0 to 0xFE and precede every command. A timing byte of 0xF8 means timing overflow with a value of 240. An overflow byte is always followed by another overflow byte or timing byte.
MIDI Notation
- The most of status bytes are compatible with MIDI standard.
- Running status mode is supported and used by default.
- Velocity parameter (with Note On and Note Off events) is used to change current channel volume, same as A# event. It actually doesn't belong to the specified note.
MIDI message | Description | MIDI compatible |
---|---|---|
8# xx yy | Note Off | Partially |
9# xx yy | Note On | Partially |
A# xx | Volume Change | No |
B# xx yy | Control Change (unused) | Yes |
C# xx | Program Change (uses external SND (AdLib) bank) | Yes |
D# xx | Channel Aftertouch (unused) | Yes |
E# xx yy | Pitch Bend | Yes |
F0 7F 00 xx yy F7 | SysEx Speed Control (ends with F7) | No |
FC | Stop |
SysEx Speed Control
This special event is similar to MIDI Tempo event, but it specifies the playing tempo multiplier. It consists of an integer and a fractional part, in 1/128.
Byte | Description |
---|---|
0xF0 | Beginning of SysEx |
0x7F | Universal Realtime Command |
0x00 | Reserved |
XX | Integer part 1 = 100%, 2 = 200%, etc. |
XX | Fractional part 1/128 0 = 0%, 128 = 100%, etc. |
0xF7 | End of SysEx |
Channel Utilization
- Maximum polyphony is 1 voice per channel, like in tracker formats.
- The music can be composed either in melodic or percussive mode.
Hex channel | MIDI channel | Use in melodic mode | Use in percussive mode |
---|---|---|---|
0x00 | 1 | Normal instrument | Normal instrument |
0x01 | 2 | Normal instrument | Normal instrument |
0x02 | 3 | Normal instrument | Normal instrument |
0x03 | 4 | Normal instrument | Normal instrument |
0x04 | 5 | Normal instrument | Normal instrument |
0x05 | 6 | Normal instrument | Normal instrument |
0x06 | 7 | Normal instrument | Bass drum |
0x07 | 8 | Normal instrument | Snare drum |
0x08 | 9 | Normal instrument | Tom tom |
0x09 | 10 | Unused | Top cymbal |
0x0A | 11 | Unused | Hi-hat cymbal |
0x0B | 12 | Unused | Unused |
0x0C | 13 | Unused | Unused |
0x0D | 14 | Unused | Unused |
0x0E | 15 | Unused | Unused |
0x0F | 16 | Unused | Unused |
Default Timbre
Player should load this timbre if it isn't found in the sound bank:
OPL base register | Value | Description |
---|---|---|
0x20 | 0x01 | Modulator characteristic (Mult, KSR, EG, VIB and AM flags) |
0x23 | 0x11 | Carrier characteristic (Mult, KSR, EG, VIB and AM flags) |
0x40 | 0x4F | Modulator key scaling/output level |
0x43 | 0x10 | Carrier key scaling/output level |
0x60 | 0xF1 | Modulator attack/decay level |
0x63 | 0xF2 | Carrier attack/decay level |
0x80 | 0x53 | Modulator sustain/release level |
0x83 | 0x74 | Carrier sustain/release level |
0xE0 | 0x00 | Modulator wave select |
0xE3 | 0x00 | Carrier wave select |
0xC0 | 0x06 | Feedback/connection |
Links
- shikadi.net/moddingwiki/AdLib_MIDI_Format - Modding Wiki.