Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
jute

Doom MIDI Issue

Recommended Posts

I've noticed a problem with the Doom MIDI files available here at Doomworld: http://www.doomworld.com/classicdoom/info/music.php
They seem to have been converting using Wintex's MUS-to-MIDI converter, which apparently produces conversions that sound fine but are painful to work with. The issue is that the converted music's actual tempo is not equal to the tempo specified by the generated MIDI file, which makes the barlines meaningless. To see what I mean, download the e1m1 MIDI from the above link and open it in a MIDI editor. You'll see that the song's very clear downbeats do not coincide with the barlines.
Here is the beginning of the track as viewed in Finale (the drum hits on track 4 indicate the song's actual downbeats):


I'd really like to have some better MIDI conversions of Doom-engine game music. Does anyone have any ideas? Would a more accurate converter be simple to code?

Share this post


Link to post

Wow. The brute-force approach works but is obviously not optimal. I suppose there aren't any more than these four MIDIs out there?

Share this post


Link to post

As far as I know, there are two converters available; MUS2MIDI and QMUS2MIDI. The latter is embedded in SLADE3 so you can try to see if it produces better MIDI files than WinTex does. (I don't know what converter WinTex uses, MUS2MIDI, QMUS2MIDI or its own implementation.)

Share this post


Link to post

I just tried Slade/QMUS2MIDI and the results were unfortunately identical to MUS2MIDI's. It's kind of hard to believe that no one has made an accurate MUS>MIDI converter by now!

Share this post


Link to post

Try converting with "-t160" parameter.

mus2midi.exe -t160 D_DOOM2.MUS D_DOOM2.MID

Share this post


Link to post

The tempo command would work, of course, but it would entail the laborious time-consuming trial and error of establishing the correct tempo for every single track in the games; it's what the person in Bloodshedder's link was doing, and they certainly didn't get far.

The correct tempo data is obviously in the MUS files. Is there any WAD editor that displays the tempo of MUS files within a WAD? That's about the only way that kind of manual conversion would be bearable.

EDIT: MMUS2MID has identical results to (Q)MUS2MIDI. Thanks, though.

Share this post


Link to post

From what I understand, MUS to MIDI conversions always screw up the tempo of the MIDI, but not the MIDI note data (usually; Doomworld's E1M9's drum track is a measure too soon). I don't think there's a way to fix that.

Share this post


Link to post

I've sent an e-mail to Bobby Prince asking him if he would be willing to release the BPMs for the Doom and Doom 2 music, or, alternately, if he has accurate MIDI versions of the music that he would be willing to release.

Share this post


Link to post

Heh, I remember emailing him several years ago. He has yet to respond. But I can probably figure out the tempos for you. It's not too hard for me.

Share this post


Link to post

That would be a great help. If you supply the BPMs it should be easy enough to generate much more useful MIDIs. Bloodshedder: as maintainer of the Doomworld Music page, would you be willing to add them to the site?

Share this post


Link to post

Has anyone asked John Romero if he has the original MIDI files? He released MIDIs of the unreleased tracks a few years ago after finding them in his Doom development directory (I'm assuming he didn't convert them from MUS)...

Share this post


Link to post
jute said:

I just tried Slade/QMUS2MIDI and the results were unfortunately identical to MUS2MIDI's. It's kind of hard to believe that no one has made an accurate MUS>MIDI converter by now!

Yeah, it's kinda puzzling. Where are the errors?

The first thing that surprises me is that these conversion apparently change a MUS file into a MIDI-1 file, not a MIDI-0 file. Which is odd, because MUS corresponds to a simplified MIDI-0 format. The converter Dave Taylor wrote for id only works on MIDI-0 files. So if you go MIDI->MUS->MIDI, you don't end up with what you started. Weird.

Share this post


Link to post

PRIMEVAL said:
From what I understand, MUS to MIDI conversions always screw up the tempo of the MIDI, but not the MIDI note data (usually; Doomworld's E1M9's drum track is a measure too soon). I don't think there's a way to fix that.

It doesn't seem that the MUS format stores the tempo at all -- it looks like a stream of events that occur some multiple of 1/140 s apart. (And looking at the MUS format makes me wonder why they didn't just use type 0 MIDI files from the start...)

Share this post


Link to post
CODOR said:

Has anyone asked John Romero if he has the original MIDI files? He released MIDIs of the unreleased tracks a few years ago after finding them in his Doom development directory (I'm assuming he didn't convert them from MUS)...


As Primeval mentioned, those MIDIs are indeed functional. I've e-mailed John Romero explaining the situation and asking him if he has/would be willing to release similar MIDIs from Doom/Doom 2/etc.

Share this post


Link to post

Are you sure mmus2mid doesn't convert them properly, jute? I had heard it did, from what I recall.

Gez said:
Yeah, it's kinda puzzling. Where are the errors?

The first thing that surprises me is that these conversion apparently change a MUS file into a MIDI-1 file, not a MIDI-0 file. Which is odd, because MUS corresponds to a simplified MIDI-0 format. The converter Dave Taylor wrote for id only works on MIDI-0 files. So if you go MIDI->MUS->MIDI, you don't end up with what you started. Weird.

MUS is like MIDI type 1. I'm the retard that posted that comment there... and it's wrong :)

(Now I clarified that there too so people aren't mislead.)

Share this post


Link to post

This bepuzzles me.

MUS_FORM.DOC says:

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:
<snip>

Share this post


Link to post

Hmm, I did call myself a retard :p

I guess I was right the first time, then...

What I don't exactly understand is the difference between channels and tracks. In a MUS file each channel for an instrument is given its own data and can be edited separately, but if MUS only has one track, what (other) role do MIDI tracks play? Do they just split that data to allow additional or independent options or modifiers?

Share this post


Link to post

The role of multiple tracks depend on the MIDI file type. In MIDI-1, it's basically like layers in an image format. When you view it, it makes no difference whether it's all flattened to one layer or not; but when editing it it's useful to keep all layers clearly separated.

In MIDI-2, however, each track corresponds to a different song, which means that a single file can contain an arbitrary number of songs. For a practical example, this is the format used by Lucas Arts games such as Dark Forces for their iMUSE system.

Share this post


Link to post
myk said:

Are you sure mmus2mid doesn't convert them properly, jute? I had heard it did, from what I recall.


I tried it with E1M1 and got results that were identical to all other converters', unfortunately.

Share this post


Link to post

I had a go at doing D_E1M3, D_E3M2, D_E3M3 and D_E3M8 after noticing that the unreleased midis include versions of them (and in theory what was probably the original timing info).

You can download them here

It may be possible to guess the us/qn value for the others (assuming PPQN = 192 for all).

Share this post


Link to post

E1M1 - between 220 and 221
E1M2 - between 136 and 137
E1M3 - between 60 and 61
E1M4 - between 182 and 183
E1M5 - between 120 and 121
E1M6 - between 161 and 162
E1M7 - just a little slower than 70
E1M8 - just under 61
E1M9 - between 152 and 153

E2M1 - 171
E2M2 - just under 60
E2M3 - 155
E2M4 - between 40 and 41
E2M6 - between 65 and 66
E2M7 - between 49 and 50 or between 151 and 152 (not sure how it's measured)
E2M8 - between 120 and 121
E2M9 - just under 81

E3M2 - just under 90
E3M3 - just over 111
E3M8 - more than 240... maybe 241

bunny - 121
victor - just over 30
The Intro songs I'm not so sure on, but this is all the Doom 1 songs. None of them really had a perfect tempo, either faster or slower. I dunno if Prince made them like that or the conversion slowed / sped them up.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
×