Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Jimmy

Determining the tempos of the original MUS tracks

Recommended Posts

As far as I know, the proper tempos of all the original MUS files have yet to be properly determined. The fact that the MUS2MID converters all export at just one tempo makes editing (and remixing) them incredibly difficult. Is there absolutely any way that the tracks can be exported into a way where the notes are exactly where they belong in the MIDI?

My dad's been using AnalogX to estimate the tempo, which is done by tapping the spacebar but it depends on user accuracy so its reliability is debatable. Then he used MixMeister BPM analyzer but it turned out to be inaccurate when the first few bars of "At Doom's Gate" were used. He also used a VST plugin called "TAP!" - something similar to AnalogX but didn't work well with his DAW (Reaper). ReCycle Lite has yielded the best result when fed a WAV file of the first four bars of "At Doom's Gate", but whether it holds its accuracy throughout the whole track is not guaranteed. Of course, none of the above help in correcting the original track.

I myself have been trying the long way - that is, stretching and squishing the music itself within the MIDI, but that's a fine art and I'm not prepared to do the calculations to get everything dead right. :(

It's a mighty annoying problem. Can anybody (perhaps someone more au fait with the MUS format) help with this?

Share this post


Link to post

Someone posted a thread about this awhile ago and I determined Doom 1's music tempos. I'm not sure if Prince worked with odd tempos or the conversion of the formats messed it up, but most tempos were decimal numbers. Like 135.5 for example, hardly any actually had a solid whole number.

Share this post


Link to post

MUS preserves the timing information from midi well enough (so that a computer can sound the notes exactly when the ought to, within a low margin of error), but the musical structure is not at all preserved. Recreating that is mostly a mathematical exercise: You have to take a set of numerical timestamps and from there figure out what was quarter notes, triplets, etc. MUS2MIDI isn't losing any information along the way, as that information was already lost in MIDI2MUS.

It's been a while since I touched any score editors, but if I remember correctly there is often an option called "timing quantization" or similar that is used for importing MIDI files; you might hunt around for something like that.

Share this post


Link to post

Similar to what natt said, one could examine the MUS data, identify two notes that are one beat apart and determine the number of 1/140-second ticks between them. Take 8400 and divide by the number of ticks to give beats per minute (8400=60*140).

Or some variant of this: In the case of E1M1, I'm seeing a blob of pitch wheel events in channels 1 and 2 at the end of every four bars of music. Looking at the end of the third block of these tells me that 1832 ticks happen from the start of the song until the end of the 12th bar (= 48 beats), averaging 38.166... ticks per beat. That works out to about 220.09bpm, which fits in the range (between 220 and 221) that PRIMEVAL got here.

I haven't tried with any other songs yet. It should be possible to write a program to do most of the work...

Share this post


Link to post

A program to do this work would be WONDERFUL.

Share this post


Link to post

Personally, whenever I want to know the tempo of a piece of music, I just throw it into FL Studio and mess with it until it's right. It doesn't take that long, either.

Share this post


Link to post

Doesn't the Doom source code give any answer at which tempo it reads MUS files? Or was that part stripped away?

Share this post


Link to post
printz said:

Doesn't the Doom source code give any answer at which tempo it reads MUS files? Or was that part stripped away?


That's not it. We can play back mus files at exactly the speed that the original game did, very easily, as the timestamps are precise. The question is about the music concept of tempo.

Share this post


Link to post

If you're thinking about producing your own version of the soundtrack, you're going to have to accept the fact that the MIDI notation doesn't match your grid. Re-writing and re-arranging every phrase of every song just so that it's synced to your grid is more work than it is reward. Just deal with it and bash through.

This will ensure that original song lengths, and integrity with Robert Prince's original compositions are maintained, for authenticity.

This means that, for example, to record the guitars for MAP10 when minimal percussion is playing in the intro, you have to tap your foot and play it by ear. It's strange but a professional should be able to accomplish this and play in time anyway. MAP06 has the same problem with the bass guitar when the drums stop playing during those bridges.

You'll have to do your editing off the grid. If you want to copy and paste something and sync it to the out-of-sync MIDI tempo, you have to zoom all the way in to the first note, set the playhead there, switch to your new channel and paste it so that every note lines up to the nanosecond.

Another problem is the bass notation. I don't know about anybody else but for me it gets transposed an octave lower, for bass instruments and bass instruments only.

Also, it seems the instrumentation isn't always preserved. Say there's a melody on the flute, then a bridge, then the same melody plays on a violin. What happens with old Doom MIDI files in new editors is that it doesn't always introduce the new phrase on a violin channel, and both phrases will be written on the flute channel.

Those are some of the other complications I've encountered in my experiences. Look on the bright side. Editing Dune 2 MIDI files is even worse - some songs have 15+ instruments originally, but in modern times the notation gets scrambled together on 5 channels consequently playing non-stop. The MIDI-notation-to-host-grid-sync is off too.

Share this post


Link to post
natt said:

That's not it. We can play back mus files at exactly the speed that the original game did, very easily, as the timestamps are precise. The question is about the music concept of tempo.

Figure out the rhythm and give it a time signature or several (4/4, 12/8 etc), then normalize the notes to those signatures. Trim the note durations to discrete 1s, 1 1/2s, 1 1/3s, duplets, and so on to prevent cluttering the staff. That would lose some information, but would be useful for the sheet music human reader.

Share this post


Link to post
printz said:

Figure out the rhythm and give it a time signature or several (4/4, 12/8 etc), then normalize the notes to those signatures. Trim the note durations to discrete 1s, 1 1/2s, 1 1/3s, duplets, and so on to prevent cluttering the staff. That would lose some information, but would be useful for the sheet music human reader.


Yeah, you're absolutely on the right track with that idea. You guesstimate a tempo with one of a number of black magicks, and then quantize everything to it. The thing is, I'm pretty sure there are already user-friendly solutions that do that sort of thing, so I'm not sure if it's worth the time for me to write some fuddly command line mess to accomplish the same goal.

Plus, it gets way more complicated if you change tempo mid-song.

Share this post


Link to post
CODOR said:

Similar to what natt said, one could examine the MUS data, identify two notes that are one beat apart and determine the number of 1/140-second ticks between them. Take 8400 and divide by the number of ticks to give beats per minute (8400=60*140).

Or some variant of this: In the case of E1M1, I'm seeing a blob of pitch wheel events in channels 1 and 2 at the end of every four bars of music. Looking at the end of the third block of these tells me that 1832 ticks happen from the start of the song until the end of the 12th bar (= 48 beats), averaging 38.166... ticks per beat. That works out to about 220.09bpm, which fits in the range (between 220 and 221) that PRIMEVAL got here.

I haven't tried with any other songs yet. It should be possible to write a program to do most of the work...


This is the proper route, not manually examining every mus file from every Doom-engine game.

Share this post


Link to post

sorry for being ten days late... but all MUS files are at one tempo, 140 ticks per second. every single one. thats why there's no tempo in the header. well at least for the id games, raptor call of the shadows (which also uses the dmx sound library used by doom) uses 70

EDIT: whoops misunderstood what was being asked. sorry.

Share this post


Link to post

Not sure if this will help, but Romero posted a bunch of in-progress midi files Bobby was working on for doom back I think a couple of years ago. at least one of the tracks in there was complete.

I think they might be done before the MID2MUS conversion, but not entirely sure

EDIT: found it, its here: http://rome.ro/2007/06/doom-archaeology.html and the 'complete' one is un49.mid

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
×