Copy Link
Add to Bookmark
Report
Doom Editing Digest Vol. 01 Nr. 367
From: owner-doom-editing-digest
To: doom-editing-digest@nvg.unit.no
Subject: doom-editing-digest V1 #367
Reply-To: doom-editing
Errors-To: owner-doom-editing-digest
Precedence: bulk
doom-editing-digest Wednesday, 2 August 1995 Volume 01 : Number 367
How Much Stuff - Revisited
Re: How Much Stuff - Revisited
Re: LMPs in and out of WADs
multi-fire shotgun
Linux Ultimate Doom note
Re: Help with nodes!!!
Re: Special effects
.MUS file format found!?
.MUS file format found!?
----------------------------------------------------------------------
From: Scott Jordan <sjordan@wins0.win.org>
Date: Tue, 1 Aug 1995 19:55:25 -0500 (CDT)
Subject: How Much Stuff - Revisited
A few weeks back we had a pretty good discussion about how to go about
getting a rough idea of how much health, ammo, and armor to start out with
on a level before playtesting. At the end of the discussion, I promised to
crawl back in my hole and not come out until I had a program which would
provide starting stuff values. OK, here it is. And it's a lot like me!
Not very glamorous but fast and effective (ho ho ho!)
The overview is described below. Please pay special attention to the
disclaimer.
Anyone who wants a UUEncoded copy should drop me a line. This isn't going
to be upped to cdrom.com for a while.
Special thanks to Bill McClendon for all his help!
Scott
*Purveyor of CMOS Epi*
INTRODUCTION
~~~~~~~~~~~~
TCOUNT is a DOS program intended to provide level authors with a starting
point for determining how much health, armor, and ammo to place in a WAD,
based on the total number of damage points of the monsters in the WAD.
Basically, it's designed to give you a rough guideline of how much stuff
to put in to give your players a "balanced" level.
Only items in single player mode are analyzed. Multiplayer-only items
are listed in the raw data file (THINGDAT.TXT) but do not show up in the
analyses.
Items in "secret" locations are counted in the analysis. TCOUNT assumes
that the player is going to find the secrets. If they're probably not
going to find the secrets, you can always take the items off the map
before you run this program.
In addition, TCOUNT can be used to examine existing WADS to list the
THINGS, find where they are, when they show up, etc.
DISCLAIMER
~~~~~~~~~~
Let me emphasize that cut-and-dried numbers are not intended to replace
careful and deliberate play-testing. This program is no substitute for
beta-testing. Fun is fun, and numbers don't insure that you are going
to have fun. TCOUNT will give you a quick read on a level to tell you
how much stuff you've given the player compared to the quantity and
types of monsters. This should speed WAD development and reduce play-
testing (but not eliminate it!). If you wish, you can use TCOUNT to
look at other people's WADs to tell if they are overloaded with stuff,
have the right number of Deathmatch locations, and have differences in
their skill levels. (It can also tell you at a glance how well-thought-
out Thing placement is...)
------------------------------
From: Andrew Morton <amorton@nsn.scs.unr.edu>
Date: Tue, 1 Aug 1995 23:07:23 -0700 (PDT)
Subject: Re: How Much Stuff - Revisited
On Tue, 1 Aug 1995, Scott Jordan wrote:>
> INTRODUCTION
> ~~~~~~~~~~~~
> TCOUNT is a DOS program intended to provide level authors with a starting
> point for determining how much health, armor, and ammo to place in a WAD,
> based on the total number of damage points of the monsters in the WAD.
> Basically, it's designed to give you a rough guideline of how much stuff
> to put in to give your players a "balanced" level.
>
> Only items in single player mode are analyzed. Multiplayer-only items
> are listed in the raw data file (THINGDAT.TXT) but do not show up in the
> analyses.
How about a commandline switch to choose between multi and single player
stats?
>
> DISCLAIMER
> ~~~~~~~~~~
> Let me emphasize that cut-and-dried numbers are not intended to replace
> careful and deliberate play-testing. This program is no substitute for
> beta-testing. Fun is fun, and numbers don't insure that you are going
> to have fun. TCOUNT will give you a quick read on a level to tell you
> how much stuff you've given the player compared to the quantity and
> types of monsters. This should speed WAD development and reduce play-
> testing (but not eliminate it!).
And reduce alot of crappy wads with 6 cyberdemons and just a pistol ;)
> If you wish, you can use TCOUNT to
> look at other people's WADs to tell if they are overloaded with stuff,
> have the right number of Deathmatch locations, and have differences in
> their skill levels. (It can also tell you at a glance how well-thought-
> out Thing placement is...)
>
If it's written in C (what else maybe FORTRAN rite?) would you relese
the source? I'd like to see how you dictate the dificulty between an imp
and a trooper, or is this mostly just a count of ammo/weapons/enimies.
l8tr
andy
+------------------------------------------------------------------+
| /\ |\ /| amorton@nsn.scs.unr.edu |
| / \ | | \/ | _|_ andrew.morton@libcmm.dps.com |
| |--| |^\ /\| \_/ | | /\ |\ | /\ |^\ |
| | | | | \/| / | | \/ | | \/ | | |
+------------------------------------------------------------------+
------------------------------
From: jeffross@teleport.com (Jeff Ross)
Date: Tue, 01 Aug 1995 09:21:53 -0700
Subject: Re: LMPs in and out of WADs
What about the end of Doom2? When Romero is killed in level 30, the game
ends, and we see the screen where all the monsters march for us to shoot.
Now I have done NO INVESTIGATION WHATSOEVER into this, but perhaps this may
help. It's not a .lmp, but there may be possibilities here for whatever
you're trying to do.
------------------------------
From: esanders@sandman.pdial.interpath.net (via S.Benner)
Date: Wed, 2 Aug 1995 01:18:07 -0400
Subject: multi-fire shotgun
I want to use DeHackEd to modify the pump shotgun so it fires two or three
times in between pumps. I have tried the following in the Frame List (F3):
set duration of frames 21,22 and 29 to 1
set the next frame # of frame 22 to 29
All I end up with is god-pounding fully automatic pump... not exactly what
I'm after. Anyone know how to do this or is there a Doom-hack group that
deals with this?
Thanks,
SandMan
- --------------------------
Erik Sanders
esanders@sandman.pdial.interpath.net
------------------------------
From: fenske@rocke.electro.swri.edu (Robert Fenske Jr)
Date: Wed, 2 Aug 95 07:50:54 CDT
Subject: Linux Ultimate Doom note
I am forwarding this article as it may be of interest to anyone
who runs DooM under Linux.
Newsgroups: comp.os.linux.announce
From: wfeldt@aix520.informatik.uni-leipzig.de (Steffen Winterfeldt)
Subject: The Ultimate LinuxDOOM
Organization: University of Leipzig, Germany
Approved: linux-announce@news.ornl.gov (Lars Wirzenius)
Followup-to: comp.os.linux.misc
Some weeks ago id Software released a fourth episode to DOOM I,
"Thy flesh consumed".
Unfortunately only as a DOS version. If you upgraded your
registered DOOM to The Ultimate DOOM v1.9 and want to play the new WAD
with your Linux-DOOM, then you need my Ultimate LinuxDOOM patch.
It applies to both X-DOOM and SVGA-DOOM version 1.8.
It even has some improvements over its DOS counterpart:
- plays all LMPs of versions >1.3
- the par-times are shown at the summary screens
- works correct with doom2.wad
It is available at
http://www.physik.uni-leipzig.de/~wfeldt/udoom/udoom-1.0.tar.gz
Steffen
- --
Send comp.os.linux.announce submissions to: linux-announce@news.ornl.gov
PLEASE remember a short description of the software.
------------------------------
From: fenske@rocke.electro.swri.edu (Robert Fenske Jr)
Date: Wed, 2 Aug 95 08:12:44 CDT
Subject: Re: Help with nodes!!!
[tale of BSP crashing ...]
>>Creating Segs ..........
>>Floating Point exception at eip=2bec
>>eax=000045a1 ebx=00000663 ecx=00000000 edx=00064004 esi=000a0387 edi=00000387
>>ebp=00051e44 esp=00051e14 cs=af ds=a es=a7 fs=a7 gs=bf ss=b7 cr2=00001ff4
>The failue is quite simple - anywhere in your level are two vertices
>on top of each other. This craches/hangs every node-builder. Not easy
>to spot, I don't know if any editor does checks about this... Deu not.
The crash could also be caused by having bad LINEDEF/SIDEDEF/SECTOR
references (i.e., something points to garbage data), but this is probably
unlikely given the sophistication of most (all?) editors now. (Of course,
never underestimate the power of the user!)
WARM v1.4 will ignore zero-length lines and shouldn't crash on a
WAD with such overlapping vertices.
Robert Fenske, Jr. rfenske@swri.edu Sw | The Taming the C*sm*s series:
Electromagnetics Division /R---\ |
Southwest Research Institute | I | | "The Martian canals were the
San Antonio, Texas USA \----/ | Martians' last ditch effort."
------------------------------
From: fenske@rocke.electro.swri.edu (Robert Fenske Jr)
Date: Wed, 2 Aug 95 08:02:19 CDT
Subject: Re: Special effects
>If you have problems with the special effects described on the pages,
>there can be several reasons:
>
>1. Linguistic problems:
> English isn't my native language, so if you spot any problems
> please don't hesitate to tell me about it.
From my observations of Europeans on the 'net is that most of them
have a better command of written English than Americans do, who sometimes
"cant even write complet sentenses rite."
>I have only tried the invisible platforms, the other effects, things like
>the all-sky room and the deep water often don't look right.
>IE, the all-sky room you can see the lower and upper half of the sky,
>which looks yucky.
They all-sky effect needs a sky texture that is more or less uniform
so that you can't notice during normal play that the bottom half is just
a repeat of the top half. The deep water effect is only effective when the
player is the only creature that gets into the water since any creatures
you see in the water would be drawn on top/in front of the water and look
smaller than normal. I think the effect would work best in Heretic where
you can get the water splash sound and have swift currents.
Robert Fenske, Jr. rfenske@swri.edu Sw | The Taming the C*sm*s series:
Electromagnetics Division /R---\ |
Southwest Research Institute | I | | "The Martian canals were the
San Antonio, Texas USA \----/ | Martians' last ditch effort."
------------------------------
From: mmathews@genesis.nred.ma.us
Date: Wed, 02 Aug 95 09:02:34 -0500
Subject: .MUS file format found!?
This was sent to me by Ross McNab. Thanks Ross.
I found this at
ftp://x2ftp.oulu.fi/pub/msdos/programming/formats/mus_form.zip
It claims to be the same as the DOOM .MUS format, but I haven't
had time to test that claim yet - Hope it helps!
----------------------------------------------------------------------------
MUS File Format
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Written by Vladimir Arnost, QA-Software
Date: Oct 29, 1994
Internet: xarnos00@dcse.fee.vutbr.cz
1. General Description
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
A .MUS file is a simple clone of .MID file. It uses the same instruments,
similar commands and the same principle: a list of sound events.
It consists of two parts: header and body.
2. MUS File Header
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
The MUS header has the following structure:
struct MUSheader {
char ID[4]; // identifier "MUS" 0x1A
WORD scoreLen;
WORD scoreStart;
WORD channels;
WORD dummy1;
WORD instrCnt;
WORD dummy2;
// variable-length part starts here
WORD instruments[];
};
NOTE: WORD is a 16-bit unsigned integer (little-endian)
The header has two parts: the fixed-length and the variable-length parts.
The former contains file identifier, score start and length, number of
channels and number of used instruments. The latter part is actually
a list of used instruments. The instruments are stored as numbers which
are arranged in this fashion:
Instrument Number Meaning
0 - 127 standard MIDI instruments
135 - 181 standard MIDI percussions (notes 35 - 81)
scoreStart is the absolute file position of the score and scoreLen is its
length in bytes. Use of 16-bit number as length limits .MUS file size to
64KB.
channels tells you how many channels are utilized in the song. The channel
number 15 (percussions) is not included in the sum.
3. MUS File Body
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Unlike MID files, MUS body contains only one track. File body is
a sequence of sound events and time records. A sound event consists of
one or more bytes encoded as follows:
1st byte -- event descriptor:
ÖÄÄ7ÄÂÄÄ6ÄÂÄÄ5ÄÂÄÄ4ÄÂÄÄ3ÄÂÄÄ2ÄÂÄÄ1ÄÂÄÄ0Ä·
ºLast³ Event type ³ Channel number º
ÓÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄĽ
'Event type' is one of these:
0 - release note
1 - play note
2 - pitch wheel
3 - tempo ???
4 - change controller
5 - ???
6 - score end
7 - ???
'Channel number' determines which channel this event refers to.
'Last' - if set, the event is followed by time information. This
means that this is the last event in a group of events which
occur at the same time. The time information is a number of
ticks to wait before processing next event. One tick is usually
1/128 sec (Raptor uses 1/64 sec).
Time information can be read in this way:
1. time = 0
2. read a byte
3. time = time * 128 + byte AND 127
4. if (byte AND 128) go to 2
5. return time
The time info is a series of 7-bit chunks. The 8th bit is set
until the last byte whose 8th bit is zero. This scheme allows
small numbers occupy less space than large ones.
Event Type
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
0 Release note
ÖÄ7ÄÂÄ6ÄÂÄ5ÄÂÄ4ÄÂÄ3ÄÂÄ2ÄÂÄ1ÄÂÄ0Ä·
º 0 ³ Note number 0 - 127 º
ÓÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĽ
1 Play note
ÖÄ7ÄÂÄ6ÄÂÄ5ÄÂÄ4ÄÂÄ3ÄÂÄ2ÄÂÄ1ÄÂÄ0Ä· ÖÄ7ÄÂÄ6ÄÂÄ5ÄÂÄ4ÄÂÄ3ÄÂÄ2ÄÂÄ1ÄÂÄ0Ä·
ºVol³ Note number 0 - 127 º º 0 ³ Note volume 0 - 127 º
ÓÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĽ ÓÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĽ
Note volume is present only if 'Vol' is set. Otherwise the previous
value is used and the second byte is not present.
NOTE: Each channel keeps track of its own last volume value.
More than one note can be played at once in one channel.
Channel 15 is dedicated to drums and percussions. Note number acts
as an instrument selector there. see Appendix C
2 Pitch wheel
ÖÄ7ÄÂÄ6ÄÂÄ5ÄÂÄ4ÄÂÄ3ÄÂÄ2ÄÂÄ1ÄÂÄ0Ä·
º Pitch wheel value º
ÓÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĽ
Sets pitch wheel (bender) value of a channel. Some handy values are
shown in the table (all values in the range 0-255 can be used):
ÚÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³Value³ Pitch change ³
ÃÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ 0 ³ two half-tones down ³
³ 64 ³ one half-tone down ³
³ 128 ³ normal (default) ³
³ 192 ³ one half-tone up ³
³ 255 ³ two half-tones up ³
ÀÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
3 Unknown (set tempo???)
ÖÄ7ÄÂÄ6ÄÂÄ5ÄÂÄ4ÄÂÄ3ÄÂÄ2ÄÂÄ1ÄÂÄ0Ä·
º Unknown value º
ÓÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĽ
4 Change control
ÖÄ7ÄÂÄ6ÄÂÄ5ÄÂÄ4ÄÂÄ3ÄÂÄ2ÄÂÄ1ÄÂÄ0Ä· ÖÄ7ÄÂÄ6ÄÂÄ5ÄÂÄ4ÄÂÄ3ÄÂÄ2ÄÂÄ1ÄÂÄ0Ä·
º 0 ³ Controller number º º 0 ³ Controller value º
ÓÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĽ ÓÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĽ
Number Description
0 Instrument (patch) number
3 Volume: 0-silent, ~100-normal, 127-loud
4 Pan (balance): 0-left, 64-center (default), 127-right
No other controller's functions are known to me.
5 Unknown
Not known what data (if any) this command takes.
6 Score end
No data.
Marks the end of score. Must be present at the end, otherwise the
player may go off the rail. In DOOM this command restarts playing.
7 Unknown
Not known what data (if any) this command takes.
APPENDIX A - Note numbers
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÉÍÍÍÍÍÍÍÍËÍÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍ»
º Octave º C ³ C# ³ D ³ D# ³ E ³ F ³ F# ³ G ³ G# ³ A ³ A# ³ B º
ÌÍÍÍÍÍÍÍÍÎÍÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍ͹
º 0 º 0 ³ 1 ³ 2 ³ 3 ³ 4 ³ 5 ³ 6 ³ 7 ³ 8 ³ 9 ³ 10 ³ 11 º
º 1 º 12 ³ 13 ³ 14 ³ 15 ³ 16 ³ 17 ³ 18 ³ 19 ³ 20 ³ 21 ³ 22 ³ 23 º
º 2 º 24 ³ 25 ³ 26 ³ 27 ³ 28 ³ 29 ³ 30 ³ 31 ³ 32 ³ 33 ³ 34 ³ 35 º
º 3 º 36 ³ 37 ³ 38 ³ 39 ³ 40 ³ 41 ³ 42 ³ 43 ³ 44 ³ 45 ³ 46 ³ 47 º
º 4 º 48 ³ 49 ³ 50 ³ 51 ³ 52 ³ 53 ³ 54 ³ 55 ³ 56 ³ 57 ³ 58 ³ 59 º
º 5 º 60 ³ 61 ³ 62 ³ 63 ³ 64 ³ 65 ³ 66 ³ 67 ³ 68 ³ 69 ³ 70 ³ 71 º
º 6 º 72 ³ 73 ³ 74 ³ 75 ³ 76 ³ 77 ³ 78 ³ 79 ³ 80 ³ 81 ³ 82 ³ 83 º
º 7 º 84 ³ 85 ³ 86 ³ 87 ³ 88 ³ 89 ³ 90 ³ 91 ³ 92 ³ 93 ³ 94 ³ 95 º
º 8 º 96 ³ 97 ³ 98 ³ 99 ³100 ³101 ³102 ³103 ³104 ³105 ³106 ³107 º
º 9 º 108 ³109 ³110 ³111 ³112 ³113 ³114 ³115 ³116 ³117 ³118 ³119 º
º 10 º 120 ³121 ³122 ³123 ³124 ³125 ³126 ³127 ³ ³ ³ ³ º
ÈÍÍÍÍÍÍÍÍÊÍÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍͼ
APPENDIX B - Instrument Patch Map
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Block 0-7 PIANO Block 8-15 CHROM PERCUSSION
0 Acoustic Grand Piano 8 Celesta
1 Bright Acoustic Piano 9 Glockenspiel
2 Electric Grand Piano 10 Music Box
3 Honky-tonk Piano 11 Vibraphone
4 Rhodes Paino 12 Marimba
5 Chorused Piano 13 Xylophone
6 Harpsichord 14 Tubular-bell
7 Clavinet 15 Dulcimer
Block 16-23 ORGAN Block 24-31 GUITAR
16 Hammond Organ 24 Acoustic Guitar (nylon)
17 Percussive Organ 25 Acoustic Guitar (steel)
18 Rock Organ 26 Electric Guitar (jazz)
19 Church Organ 27 Electric Guitar (clean)
20 Reed Organ 28 Electric Guitar (muted)
21 Accordion 29 Overdriven Guitar
22 Harmonica 30 Distortion Guitar
23 Tango Accordion 31 Guitar Harmonics
Block 32-39 BASS Block 40-47 STRINGS
32 Acoustic Bass 40 Violin
33 Electric Bass (finger) 41 Viola
34 Electric Bass (pick) 42 Cello
35 Fretless Bass 43 Contrabass
36 Slap Bass 1 44 Tremolo Strings
37 Slap Bass 2 45 Pizzicato Strings
38 Synth Bass 1 46 Orchestral Harp
39 Synth Bass 2 47 Timpani
Block 48-55 ENSEMBLE Block 56-63 BRASS
48 String Ensemble 1 56 Trumpet
49 String Ensemble 2 57 Trombone
50 Synth Strings 1 58 Tuba
51 Synth Strings 2 59 Muted Trumpet
52 Choir Aahs 60 French Horn
53 Voice Oohs 61 Brass Section
54 Synth Voice 62 Synth Brass 1
55 Orchestra Hit 63 Synth Bass 2
Block 64-71 REED Block 72-79 PIPE
64 Soprano Sax 72 Piccolo
65 Alto Sax 73 Flute
66 Tenor Sax 74 Recorder
67 Baritone Sax 75 Pan Flute
68 Oboe 76 Bottle Blow
69 English Horn 77 Shakuhachi
70 Bassoon 78 Whistle
71 Clarinet 79 Ocarina
Block 80-87 SYNTH LEAD Block 88-95 SYNTH PAD
80 Lead 1 (square) 88 Pad 1 (new age)
81 Lead 2 (sawtooth) 89 Pad 2 (warm)
82 Lead 3 (calliope) 90 Pad 3 (polysynth)
83 Lead 4 (chiffer) 91 Pad 4 (choir)
84 Lead 5 (charang) 92 Pad 5 (bowed glass)
85 Lead 6 (voice) 93 Pad 6 (metal)
86 Lead 7 (5th sawtooth) 94 Pad 7 (halo)
87 Lead 8 (bass & lead) 95 Pad 8 (sweep)
Block 96-103 SYNTH EFFECTS Block 104-111 ETHNIC
96 FX 1 (rain) 104 Sitar
97 FX 2 (soundtrack) 105 Banjo
98 FX 3 (crystal) 106 Shamisen
99 FX 4 (atmosphere) 107 Koto
100 FX 5 (brightness) 108 Kalimba
101 FX 6 (goblin) 109 Bag Pipe
102 FX 7 (echo drops) 110 Fiddle
103 FX 8 (star-theme) 111 Shanai
Block 112-119 PERCUSSIVE Block 120-127 SOUND EFFECTS
112 Tinkle Bell 120 Guitar Fret Noise
113 Agogo 121 Breath Noise
114 Steel Drums 122 Seashore
115 Woodblock 123 Bird Tweet
116 Taiko Drum 124 Telephone Ring
117 Melodic Tom 125 Helicopter
118 Synth Drum 126 Applause
119 Reverse Cymbal 127 Gun Shot
APPENDIX C - Percussion Key Map
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
In channel #15, the note number does not affect the pitch but
the instrument type. The default pitch for percussions is 60 (C-5).
Note Instrument Note Instrument
35 Acoustic Bass Drum 59 Ride Cymbal 2
36 Bass Drum 60 High Bongo
37 Slide Stick 61 Low Bango
38 Acoustic Snare 62 Mute High Conga
39 Hand Clap 63 Open High Conga
40 Electric Snare 64 Low Conga
41 Low Floor Tom 65 High Timbale
42 Closed High-Hat 66 Low Timbale
43 High Floor Tom 67 High Agogo
44 Pedal High Hat 68 Low Agogo
45 Low Tom 69 Cabasa
46 Open High Hat 70 Maracas
47 Low-Mid Tom 71 Short Whistle
48 High-Mid Tom 72 Long Whistle
49 Crash Cymbal 1 73 Short Guiro
50 High Tom 74 Long Guiro
51 Ride Cymbal 1 75 Claves
52 Chinses Cymbal 76 High Wood Block
53 Ride Bell 77 Low Wood Block
54 Tambourine 78 Mute Cuica
55 Splash Cymbal 79 Open Cuica
56 Cowbell 80 Mute Triangle
57 Crash Cymbal 2 81 Open Triangle
58 Vibraslap
Mark Mathews mmathews@genesis.nred.ma.us TEAM OS/2, TEAM DEU
Are you using DEU, WARM or DEUTEX for DOOM? WHY NOT??
------------------------------
From: mmathews@genesis.nred.ma.us
Date: Wed, 02 Aug 95 09:02:34 -0500
Subject: .MUS file format found!?
This was sent to me by Ross McNab. Thanks Ross.
I found this at
ftp://x2ftp.oulu.fi/pub/msdos/programming/formats/mus_form.zip
It claims to be the same as the DOOM .MUS format, but I haven't
had time to test that claim yet - Hope it helps!
----------------------------------------------------------------------------
MUS File Format
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Written by Vladimir Arnost, QA-Software
Date: Oct 29, 1994
Internet: xarnos00@dcse.fee.vutbr.cz
1. General Description
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
A .MUS file is a simple clone of .MID file. It uses the same instruments,
similar commands and the same principle: a list of sound events.
It consists of two parts: header and body.
2. MUS File Header
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
The MUS header has the following structure:
struct MUSheader {
char ID[4]; // identifier "MUS" 0x1A
WORD scoreLen;
WORD scoreStart;
WORD channels;
WORD dummy1;
WORD instrCnt;
WORD dummy2;
// variable-length part starts here
WORD instruments[];
};
NOTE: WORD is a 16-bit unsigned integer (little-endian)
The header has two parts: the fixed-length and the variable-length parts.
The former contains file identifier, score start and length, number of
channels and number of used instruments. The latter part is actually
a list of used instruments. The instruments are stored as numbers which
are arranged in this fashion:
Instrument Number Meaning
0 - 127 standard MIDI instruments
135 - 181 standard MIDI percussions (notes 35 - 81)
scoreStart is the absolute file position of the score and scoreLen is its
length in bytes. Use of 16-bit number as length limits .MUS file size to
64KB.
channels tells you how many channels are utilized in the song. The channel
number 15 (percussions) is not included in the sum.
3. MUS File Body
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Unlike MID files, MUS body contains only one track. File body is
a sequence of sound events and time records. A sound event consists of
one or more bytes encoded as follows:
1st byte -- event descriptor:
ÖÄÄ7ÄÂÄÄ6ÄÂÄÄ5ÄÂÄÄ4ÄÂÄÄ3ÄÂÄÄ2ÄÂÄÄ1ÄÂÄÄ0Ä·
ºLast³ Event type ³ Channel number º
ÓÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄĽ
'Event type' is one of these:
0 - release note
1 - play note
2 - pitch wheel
3 - tempo ???
4 - change controller
5 - ???
6 - score end
7 - ???
'Channel number' determines which channel this event refers to.
'Last' - if set, the event is followed by time information. This
means that this is the last event in a group of events which
occur at the same time. The time information is a number of
ticks to wait before processing next event. One tick is usually
1/128 sec (Raptor uses 1/64 sec).
Time information can be read in this way:
1. time = 0
2. read a byte
3. time = time * 128 + byte AND 127
4. if (byte AND 128) go to 2
5. return time
The time info is a series of 7-bit chunks. The 8th bit is set
until the last byte whose 8th bit is zero. This scheme allows
small numbers occupy less space than large ones.
Event Type
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
0 Release note
ÖÄ7ÄÂÄ6ÄÂÄ5ÄÂÄ4ÄÂÄ3ÄÂÄ2ÄÂÄ1ÄÂÄ0Ä·
º 0 ³ Note number 0 - 127 º
ÓÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĽ
1 Play note
ÖÄ7ÄÂÄ6ÄÂÄ5ÄÂÄ4ÄÂÄ3ÄÂÄ2ÄÂÄ1ÄÂÄ0Ä· ÖÄ7ÄÂÄ6ÄÂÄ5ÄÂÄ4ÄÂÄ3ÄÂÄ2ÄÂÄ1ÄÂÄ0Ä·
ºVol³ Note number 0 - 127 º º 0 ³ Note volume 0 - 127 º
ÓÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĽ ÓÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĽ
Note volume is present only if 'Vol' is set. Otherwise the previous
value is used and the second byte is not present.
NOTE: Each channel keeps track of its own last volume value.
More than one note can be played at once in one channel.
Channel 15 is dedicated to drums and percussions. Note number acts
as an instrument selector there. see Appendix C
2 Pitch wheel
ÖÄ7ÄÂÄ6ÄÂÄ5ÄÂÄ4ÄÂÄ3ÄÂÄ2ÄÂÄ1ÄÂÄ0Ä·
º Pitch wheel value º
ÓÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĽ
Sets pitch wheel (bender) value of a channel. Some handy values are
shown in the table (all values in the range 0-255 can be used):
ÚÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³Value³ Pitch change ³
ÃÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ 0 ³ two half-tones down ³
³ 64 ³ one half-tone down ³
³ 128 ³ normal (default) ³
³ 192 ³ one half-tone up ³
³ 255 ³ two half-tones up ³
ÀÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
3 Unknown (set tempo???)
ÖÄ7ÄÂÄ6ÄÂÄ5ÄÂÄ4ÄÂÄ3ÄÂÄ2ÄÂÄ1ÄÂÄ0Ä·
º Unknown value º
ÓÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĽ
4 Change control
ÖÄ7ÄÂÄ6ÄÂÄ5ÄÂÄ4ÄÂÄ3ÄÂÄ2ÄÂÄ1ÄÂÄ0Ä· ÖÄ7ÄÂÄ6ÄÂÄ5ÄÂÄ4ÄÂÄ3ÄÂÄ2ÄÂÄ1ÄÂÄ0Ä·
º 0 ³ Controller number º º 0 ³ Controller value º
ÓÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĽ ÓÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĽ
Number Description
0 Instrument (patch) number
3 Volume: 0-silent, ~100-normal, 127-loud
4 Pan (balance): 0-left, 64-center (default), 127-right
No other controller's functions are known to me.
5 Unknown
Not known what data (if any) this command takes.
6 Score end
No data.
Marks the end of score. Must be present at the end, otherwise the
player may go off the rail. In DOOM this command restarts playing.
7 Unknown
Not known what data (if any) this command takes.
APPENDIX A - Note numbers
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÉÍÍÍÍÍÍÍÍËÍÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍÑÍÍÍÍ»
º Octave º C ³ C# ³ D ³ D# ³ E ³ F ³ F# ³ G ³ G# ³ A ³ A# ³ B º
ÌÍÍÍÍÍÍÍÍÎÍÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍ͹
º 0 º 0 ³ 1 ³ 2 ³ 3 ³ 4 ³ 5 ³ 6 ³ 7 ³ 8 ³ 9 ³ 10 ³ 11 º
º 1 º 12 ³ 13 ³ 14 ³ 15 ³ 16 ³ 17 ³ 18 ³ 19 ³ 20 ³ 21 ³ 22 ³ 23 º
º 2 º 24 ³ 25 ³ 26 ³ 27 ³ 28 ³ 29 ³ 30 ³ 31 ³ 32 ³ 33 ³ 34 ³ 35 º
º 3 º 36 ³ 37 ³ 38 ³ 39 ³ 40 ³ 41 ³ 42 ³ 43 ³ 44 ³ 45 ³ 46 ³ 47 º
º 4 º 48 ³ 49 ³ 50 ³ 51 ³ 52 ³ 53 ³ 54 ³ 55 ³ 56 ³ 57 ³ 58 ³ 59 º
º 5 º 60 ³ 61 ³ 62 ³ 63 ³ 64 ³ 65 ³ 66 ³ 67 ³ 68 ³ 69 ³ 70 ³ 71 º
º 6 º 72 ³ 73 ³ 74 ³ 75 ³ 76 ³ 77 ³ 78 ³ 79 ³ 80 ³ 81 ³ 82 ³ 83 º
º 7 º 84 ³ 85 ³ 86 ³ 87 ³ 88 ³ 89 ³ 90 ³ 91 ³ 92 ³ 93 ³ 94 ³ 95 º
º 8 º 96 ³ 97 ³ 98 ³ 99 ³100 ³101 ³102 ³103 ³104 ³105 ³106 ³107 º
º 9 º 108 ³109 ³110 ³111 ³112 ³113 ³114 ³115 ³116 ³117 ³118 ³119 º
º 10 º 120 ³121 ³122 ³123 ³124 ³125 ³126 ³127 ³ ³ ³ ³ º
ÈÍÍÍÍÍÍÍÍÊÍÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍÍÏÍÍÍͼ
APPENDIX B - Instrument Patch Map
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Block 0-7 PIANO Block 8-15 CHROM PERCUSSION
0 Acoustic Grand Piano 8 Celesta
1 Bright Acoustic Piano 9 Glockenspiel
2 Electric Grand Piano 10 Music Box
3 Honky-tonk Piano 11 Vibraphone
4 Rhodes Paino 12 Marimba
5 Chorused Piano 13 Xylophone
6 Harpsichord 14 Tubular-bell
7 Clavinet 15 Dulcimer
Block 16-23 ORGAN Block 24-31 GUITAR
16 Hammond Organ 24 Acoustic Guitar (nylon)
17 Percussive Organ 25 Acoustic Guitar (steel)
18 Rock Organ 26 Electric Guitar (jazz)
19 Church Organ 27 Electric Guitar (clean)
20 Reed Organ 28 Electric Guitar (muted)
21 Accordion 29 Overdriven Guitar
22 Harmonica 30 Distortion Guitar
23 Tango Accordion 31 Guitar Harmonics
Block 32-39 BASS Block 40-47 STRINGS
32 Acoustic Bass 40 Violin
33 Electric Bass (finger) 41 Viola
34 Electric Bass (pick) 42 Cello
35 Fretless Bass 43 Contrabass
36 Slap Bass 1 44 Tremolo Strings
37 Slap Bass 2 45 Pizzicato Strings
38 Synth Bass 1 46 Orchestral Harp
39 Synth Bass 2 47 Timpani
Block 48-55 ENSEMBLE Block 56-63 BRASS
48 String Ensemble 1 56 Trumpet
49 String Ensemble 2 57 Trombone
50 Synth Strings 1 58 Tuba
51 Synth Strings 2 59 Muted Trumpet
52 Choir Aahs 60 French Horn
53 Voice Oohs 61 Brass Section
54 Synth Voice 62 Synth Brass 1
55 Orchestra Hit 63 Synth Bass 2
Block 64-71 REED Block 72-79 PIPE
64 Soprano Sax 72 Piccolo
65 Alto Sax 73 Flute
66 Tenor Sax 74 Recorder
67 Baritone Sax 75 Pan Flute
68 Oboe 76 Bottle Blow
69 English Horn 77 Shakuhachi
70 Bassoon 78 Whistle
71 Clarinet 79 Ocarina
Block 80-87 SYNTH LEAD Block 88-95 SYNTH PAD
80 Lead 1 (square) 88 Pad 1 (new age)
81 Lead 2 (sawtooth) 89 Pad 2 (warm)
82 Lead 3 (calliope) 90 Pad 3 (polysynth)
83 Lead 4 (chiffer) 91 Pad 4 (choir)
84 Lead 5 (charang) 92 Pad 5 (bowed glass)
85 Lead 6 (voice) 93 Pad 6 (metal)
86 Lead 7 (5th sawtooth) 94 Pad 7 (halo)
87 Lead 8 (bass & lead) 95 Pad 8 (sweep)
Block 96-103 SYNTH EFFECTS Block 104-111 ETHNIC
96 FX 1 (rain) 104 Sitar
97 FX 2 (soundtrack) 105 Banjo
98 FX 3 (crystal) 106 Shamisen
99 FX 4 (atmosphere) 107 Koto
100 FX 5 (brightness) 108 Kalimba
101 FX 6 (goblin) 109 Bag Pipe
102 FX 7 (echo drops) 110 Fiddle
103 FX 8 (star-theme) 111 Shanai
Block 112-119 PERCUSSIVE Block 120-127 SOUND EFFECTS
112 Tinkle Bell 120 Guitar Fret Noise
113 Agogo 121 Breath Noise
114 Steel Drums 122 Seashore
115 Woodblock 123 Bird Tweet
116 Taiko Drum 124 Telephone Ring
117 Melodic Tom 125 Helicopter
118 Synth Drum 126 Applause
119 Reverse Cymbal 127 Gun Shot
APPENDIX C - Percussion Key Map
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
In channel #15, the note number does not affect the pitch but
the instrument type. The default pitch for percussions is 60 (C-5).
Note Instrument Note Instrument
35 Acoustic Bass Drum 59 Ride Cymbal 2
36 Bass Drum 60 High Bongo
37 Slide Stick 61 Low Bango
38 Acoustic Snare 62 Mute High Conga
39 Hand Clap 63 Open High Conga
40 Electric Snare 64 Low Conga
41 Low Floor Tom 65 High Timbale
42 Closed High-Hat 66 Low Timbale
43 High Floor Tom 67 High Agogo
44 Pedal High Hat 68 Low Agogo
45 Low Tom 69 Cabasa
46 Open High Hat 70 Maracas
47 Low-Mid Tom 71 Short Whistle
48 High-Mid Tom 72 Long Whistle
49 Crash Cymbal 1 73 Short Guiro
50 High Tom 74 Long Guiro
51 Ride Cymbal 1 75 Claves
52 Chinses Cymbal 76 High Wood Block
53 Ride Bell 77 Low Wood Block
54 Tambourine 78 Mute Cuica
55 Splash Cymbal 79 Open Cuica
56 Cowbell 80 Mute Triangle
57 Crash Cymbal 2 81 Open Triangle
58 Vibraslap
Mark Mathews mmathews@genesis.nred.ma.us TEAM OS/2, TEAM DEU
Are you using DEU, WARM or DEUTEX for DOOM? WHY NOT??
------------------------------
End of doom-editing-digest V1 #367
**********************************