VOGONS


First post, by GL1zdA

User metadata
Rank Oldbie
Rank
Oldbie

I'm trying to understand why Descent MIDIs sound different on an Audiotrix Pro, depending on how they are played. For testing, I've chosen 4 popular songs from Descent: title screen music, briefing music, level 1 and level 12 music. They sound different depending on how I play them:

1) In game music.
2) GSPLAY playing the dumped MIDIs
3) Media Player (on 98 SE) playing the same dumped MIDIs as GSPLAY

Briefing music sounds the same in game and via GSPLAY and different (and totally odd) via Media Player.
Title music sound okay only in game. Both GSPLAY and Media Player start with some odd piano.
Same on Level 1.
Level 12 sound similar on all of them.
I've attached samples for Briefing and Title music, so you can check it yourself:

Filename
audiotrix-pro-descent-descent.mp3
File size
4.72 MiB
Downloads
44 downloads
File comment
Descent Title Music in-game
File license
Fair use/fair dealing exception
Filename
audiotrix-pro-descent-descent-gsplay.mp3
File size
4.53 MiB
Downloads
43 downloads
File comment
Descent Title Music via GSPLAY
File license
Fair use/fair dealing exception
Filename
audiotrix-pro-descent-descent-mp.mp3
File size
4.47 MiB
Downloads
40 downloads
File comment
Descent Title Music via Media Player
File license
Fair use/fair dealing exception
Filename
audiotrix-pro-descent-briefing.mp3
File size
3.83 MiB
Downloads
47 downloads
File comment
Descent Briefing Music in-game
File license
Fair use/fair dealing exception
Filename
audiotrix-pro-descent-briefing-mp.mp3
File size
4.03 MiB
Downloads
41 downloads
File comment
Descent Briefing Music via Media Player
File license
Fair use/fair dealing exception

There are no differences, for example Doom or Duke Nukem 3D MIDIs sound the same everywhere.

Although this card contains the standard Yamaha YRW801-M ROM chip, the drivers apparently customized some instruments. It definitely sounds different than a Yamaha SW20 that uses the same OPL4 chipset for MIDI (
Descent Title Music, Descent Briefing Music). I thought these customizations didn't happen when applications talked to the card via MPU-401, but some songs sound the same via GSPLAY and Media Player and different in-game, so this is not the case.

For DOS the card is correctly configured with SETMPU /M3, as described here so it should work fine.

The card itself should be OK, I've tested it with the "Euroman" MIDI that was one of the Audiotrix Pro demo songs, and it sounds exactly like what Cloudschatze recorded on his Audiotrix: https://www.youtube.com/watch?v=u5JU8yF-NBo .

getquake.gif | InfoWorld/PC Magazine Indices

Reply 1 of 6, by cyclone3d

User metadata
Rank l33t++
Rank
l33t++

Maybe the game sets up some customizations for those specific songs.

Yamaha modified setupds and drivers
Yamaha XG repository
YMF7x4 Guide
Aopen AW744L II SB-LINK

Reply 2 of 6, by GL1zdA

User metadata
Rank Oldbie
Rank
Oldbie
cyclone3d wrote on 2021-09-15, 22:31:

Maybe the game sets up some customizations for those specific songs.

Is there a way to check it? I'm not a MIDI expert, but can you somehow "dump" MIDI messages on another PC? Not, that it would help much, because I don't have the Audiotrix MIDI cable, which apparently is custom and not compatible with the Sound Blaster one.

The other thing is, I've listened to these tracks on quite a few devices and the Audiotrix is the first one exhibiting these problems.

getquake.gif | InfoWorld/PC Magazine Indices

Reply 3 of 6, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
GL1zdA wrote on 2021-09-16, 06:38:
cyclone3d wrote on 2021-09-15, 22:31:

Maybe the game sets up some customizations for those specific songs.

Is there a way to check it? I'm not a MIDI expert, but can you somehow "dump" MIDI messages on another PC? Not, that it would help much, because I don't have the Audiotrix MIDI cable, which apparently is custom and not compatible with the Sound Blaster one.

The other thing is, I've listened to these tracks on quite a few devices and the Audiotrix is the first one exhibiting these problems.

Please, upload the exact Midi 'dumps' that you used with WMP/GSplay for recording those mp3 files.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 4 of 6, by GL1zdA

User metadata
Rank Oldbie
Rank
Oldbie

It's this dump, according to the metadata these were dumped with HMP2MID.EXE.

The utility itself can be found here, I'm also attaching it to this post.

There is another utility called HMI2MID.EXE, but I haven't tried it. Someone even made a Rust Library.

I'm pretty sure these are the same files elianda was using for his videos:
https://www.youtube.com/watch?v=4JObla15yUI
https://www.youtube.com/watch?v=sBShFRMmbzw

EDIT. I've just tried the partial Descent dump from the HMI2MID.EXE site. Although these files say they were extracted with HMP2MID.EXE they sound different and work without problems. It seems there's a problem with the dump I've tried. I will have to dump the MIDIs myself and look at the results. Maybe in the end it was just a bug in the dumping utility.

Attachments

  • Filename
    descent-partial-dump.zip
    File size
    90.17 KiB
    Downloads
    38 downloads
    File comment
    Another Descent MIDI dump
    File license
    Fair use/fair dealing exception
  • Filename
    hmp2mid.zip
    File size
    9.42 KiB
    Downloads
    36 downloads
    File comment
    HMP2MID.EXE
    File license
    Fair use/fair dealing exception
  • Filename
    Descent.zip
    File size
    402.13 KiB
    Downloads
    38 downloads
    File comment
    Descent MIDI dump
    File license
    Fair use/fair dealing exception

getquake.gif | InfoWorld/PC Magazine Indices

Reply 5 of 6, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
GL1zdA wrote on 2021-09-16, 10:26:
It's this dump, according to the metadata these were dumped with HMP2MID.EXE. […]
Show full quote

It's this dump, according to the metadata these were dumped with HMP2MID.EXE.

The utility itself can be found here, I'm also attaching it to this post.

There is another utility called HMI2MID.EXE, but I haven't tried it. Someone even made a Rust Library.

I'm pretty sure these are the same files elianda was using for his videos:
https://www.youtube.com/watch?v=4JObla15yUI
https://www.youtube.com/watch?v=sBShFRMmbzw

EDIT. I've just tried the partial Descent dump from the HMI2MID.EXE site. Although these files say they were extracted with HMP2MID.EXE they sound different and work without problems. It seems there's a problem with the dump I've tried. I will have to dump the MIDIs myself and look at the results. Maybe in the end it was just a bug in the dumping utility.

Although it really seems that both Descent.mid (from the original dump) and DESCE002.MID (from the partial dump) was created with HMP2MID by Markus Hein (and they are actually the same song) they show substantial differences.
Descent.mid is 3:53.31 long ( and contains nearly 6 sec. silence at the end) while DESCE002.MID is 3:47.37. Descent.mid is somewhat out of spec since according to SMF specification in case of Type 1/multi track Midi files the first track has to be the so called tempo track. In case of Descent.mid the first track is completely empty and the tempo track is the last one (15.). Contrary DESCE002.MID contains only 14 tracks and the first is the tempo track thus satisfying the specification. There are also subtle differences in the order of controller and program change messages and so on.

The moral of the story is that you should not expect that you get the same output from the game engines as from converted Midi files.
E.g. Doom does not use 'Midi files' either. It uses DMX mus files internally so depending on the used conversion utility you can get different results when you listen to converted SMF (*.mid) Doom Midi files.
Duke 3D uses EMidi internally that is much closer to standard Midi files than mus/hmp but even Duke Midi files contain specific controller messages (e.g. for loop points) that are not interpreted properly (or at all) by different standard Midi players.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 6 of 6, by GL1zdA

User metadata
Rank Oldbie
Rank
Oldbie
Falcosoft wrote on 2021-09-16, 12:44:
Although it really seems that both Descent.mid (from the original dump) and DESCE002.MID (from the partial dump) was created wit […]
Show full quote
GL1zdA wrote on 2021-09-16, 10:26:
It's this dump, according to the metadata these were dumped with HMP2MID.EXE. […]
Show full quote

It's this dump, according to the metadata these were dumped with HMP2MID.EXE.

The utility itself can be found here, I'm also attaching it to this post.

There is another utility called HMI2MID.EXE, but I haven't tried it. Someone even made a Rust Library.

I'm pretty sure these are the same files elianda was using for his videos:
https://www.youtube.com/watch?v=4JObla15yUI
https://www.youtube.com/watch?v=sBShFRMmbzw

EDIT. I've just tried the partial Descent dump from the HMI2MID.EXE site. Although these files say they were extracted with HMP2MID.EXE they sound different and work without problems. It seems there's a problem with the dump I've tried. I will have to dump the MIDIs myself and look at the results. Maybe in the end it was just a bug in the dumping utility.

Although it really seems that both Descent.mid (from the original dump) and DESCE002.MID (from the partial dump) was created with HMP2MID by Markus Hein (and they are actually the same song) they show substantial differences.
Descent.mid is 3:53.31 long ( and contains nearly 6 sec. silence at the end) while DESCE002.MID is 3:47.37. Descent.mid is somewhat out of spec since according to SMF specification in case of Type 1/multi track Midi files the first track has to be the so called tempo track. In case of Descent.mid the first track is completely empty and the tempo track is the last one (15.). Contrary DESCE002.MID contains only 14 tracks and the first is the tempo track thus satisfying the specification. There are also subtle differences in the order of controller and program change messages and so on.

The moral of the story is that you should not expect that you get the same output from the game engines as from converted Midi files.
E.g. Doom does not use 'Midi files' either. It uses DMX mus files internally so depending on the used conversion utility you can get different results when you listen to converted SMF (*.mid) Doom Midi files.
Duke 3D uses EMidi internally that is much closer to standard Midi files than mus/hmp but even Duke Midi files contain specific controller messages (e.g. for loop points) that are not interpreted properly (or at all) by different standard Midi players.

Is there a way for someone, who is not a MIDI expert, to find such problems in MIDI files in some easy way? I'm trying to do recordings of various sound cards, and unfortunately most games don't make it easy to play the song I want and only the song, that's why I would prefer to work with MIDI files. For example, I can start any level in Descent, but the briefing music before each level contains many "long" notes, so I will still hear them, when the level music starts.

getquake.gif | InfoWorld/PC Magazine Indices