VOGONS

Common searches


First post, by SpinalBlood

User metadata

Hi all, sorry for my english

I have a troube: It seems that after i have used Dosbox (i'm using windows 2000) the classic midi files now cannot sound the drum instrument proper; now the piano instrument is used instead of the drum one.

I tried to change soundfont bank but still doesn't work; and i noticed a "Variation Bank" applied on the used sf2 at the instrument number 64 and i can't toggle it.

How to restore drums in normal midi files? Thanks.

Reply 1 of 17, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

Yes...I noticed the same problem just the other day. But so far I have been unable to reproduce it. Sometime the drums are gone after starting dosbox for the second time, sometimes they're still there. Reloading soundfont and/or resetting midi device does not help.

Reply 3 of 17, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

Must be the phase of the moon then? Check back in 28 days and report if the problem re-appears, okay? 😀

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 5 of 17, by rfnagel

User metadata
Rank Oldbie
Rank
Oldbie

Sorry to dig up this old thread, but I have the exact same problem.

I was wracking my brain trying to figure out what was goin on, as at first I didn't realize that it was caused by DOSBox. Here is a message and reply that I posted in a thread over in the Creative Labs forums detailing the problem (before I tracked down DOSBox as being the culprit):

"SB Audigy SE - MIDI percussion gone AWOL"

-=-=-=-=-=-=-=-=-=-

----------------------------------------

(Posted by "benryves")

For no particular reason, percussive instruments seem to have vanished, meaning that now any MIDI music with percussion sounds rather bizarre, as percussion ends up being played on MIDI instrument 0 (Piano) instead.

I hadn't changed any settings when this happened, which means I don't have anything I know that I can undo to change this back. I tried the few obvious things - restarting (to cycle power to the card), running the settings restoration tool (which informs me that it couldn't restore all the settings), "repairing" the drivers, fully uninstalling then reinstalling the drivers - all to no avail.

I can only assume that this is a SoundFont bank settings problem, so I had a look there. (Since the problem started, and since I have reinstalled everything, the settings have not changed - where are they stored? I checked all the likely locations after fully uninstalling the drivers to make sure nothing was being carried over, but couldn't find anything).

Currently, I have only two items listed in the 'Bank' section; in bank 0 and bank 64 I have "8MBGSFX E-mu Rev B". If I enable the 'Drum Kit' button with bank 0 selected, the Preset dropdown says "Empty" and nothing plays if I click on the on-screen keyboard. If I switch to bank 64, and am not in Drum Kit mode, the keyboard plays different percussive sounds.

Any bright ideas? I'd be very grateful...

----------------------------------------

(Posted by "rfnagel")

Hiya Folks,

Sorry to dig up this extremely old thread, but I recently had the EXACT same problem.

Up until about a month ago all of of my MIDI composition and music playback was using my old archaic 486DX-100 (running Windows 3.11) with several AWE 32 cards... and yep, that old sucker still works -> http://www.cmoo.com/snor/weeds/Weeds_486DX4-100.htm <G>!

Anyhow, I recently built myself a new PC (running WinDoZe XPee) and bought a used Sound Blaster Live! (CT4780, a Dell pull) that I found on the Internet. After installing the SBLive! and the latest WinDoZe XP drivers, things were going and sounding great... especially with my own custom GM compatable SoundFont that I was using (as well as several other commercial SoundFonts).

Then, WHAM! No percussive sounds whatsoever!

I couldn't hear any drums at all from SBLive! 'Synth A' or 'Synth B' when playing MIDI files, or in my MIDI sequencer (MIDI channel 10 - Bank 0 - was playing melodic presets), and the SoundFont control applet reported that Bank 64 was being used by Bank 00 (in my MIDI sequencer, changing MIDI channel 10 to Bank 64 *sometimes* resulted in the percussion being heard, but *not* all of the time). Now, this made no sense whatsoever, as Bank 128 is reserved for percussive presets, and I found it kind of strange that it was being remmaped to Bank 64 (64 x 2 = 128 ; hmmm... strange?).

Anyhow, I deleted the files 'Settings.sfm' and 'Settingsbkup.sfm' located in my 'Windows\System32' directory on my hard drive, restarted XPee, but apparently the SBLive! drivers re-recreated the files upon rebooting <AARRGGHH!>.

So, I rebooted and ran the Windows XP Recovery Console, manually deleted the files, and then rebooted again. After re-loading in my custom SoundFonts, everything was back to normal 😀

Strange thing though, this has happened several times over the course of the past week or so, leading to me to believe it's due to the buggy SBLive! drivers for XP. At the least though, I've found a way to fix the problem... at least until it rears it's ugly head again.

Anyways. hope this prooves useful to someone 😀

----------------------------------------

-=-=-=-=-=-=-=-=-=-

Anyhow, back to DOSBox: I finally figured out that the problem was caused by DOSBox.

Now here's the strange thing:

So far I've *only* seen the problem rear it's ugly head when using DOSBox with DOOM/DOOM2 (haven't tried the other "WAD" based games yet though), as well as the old "Monopoly Deluxe for DOS". The weird thing, the problem does **NOT** happen when playing any of the "Build" engine games though (Duke Nukem 3D/Redneck Rampage/etc...). Really strange (?).

Anyway, it's a real pain-in-the-neck, as I have to perform the afore-mentioned 'Voodoo ritual' to straighten things out again. If I didn't have the Windows XP Recovery Console installed, I'd be screwed... the Sound Blaster Live drivers re-write the afore mentioned files in question upon a normal Windows system shutdown. Even if you delete them before powering on, the drivers re-create them in their cobbled up state. The onle way to delete (or "reset" them, or restore them from a backup) is by using the Recover Console.

Any ideas of what could be causing this? Thanks in advance for any help 😀

And on another topic: Kudos to the DOSBox developers! Other than the problem detailed above, DOSBox ROCKS! I dunno what I'd do if I couldn't play my old DOS games on this new WiNdoZe XP Pro PC, and DOSBox allows me to do so! Many thanks for a great utility! 😀

Reply 6 of 17, by ripa

User metadata
Rank Oldbie
Rank
Oldbie

Sorry to dig up this old thread, but I have the exact same problem.

It's a good thing that you did, because a while ago I also had drums disappear too. I got them back by reinstalling Sound Blaster Live drivers, but I had no idea what had caused it. Now I tried Heretic in Dosbox and lo and behold - drums are gone again (on "Synth A", but not "Synth B").

Reply 7 of 17, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

I've noticed that the percussion instruments are replaced with melodic ones after playing DOOM-engine games in DOSBox, and then running the same game in a port like ZDOOM. I figured this was due to channel 10, which is normally the percussion channel, being "remapped" to another channel or some such.

I am able to correct the problem by sending a "GM Reset" sysex message to the the soundfont synth on my SB card. However, I have an Audigy 2 ZS, not a Live, so not sure if it would work the same. There are a number of ways to send the reset message; but one that doesn't require using a sequencer program or the like is to play a MIDI file in WinAmp. In order for it to work, the properties on WinAmp's MIDI player plug-in need to be configured to send a GM Reset between tracks. This is the way I've been dealing with the issue when it arises.

Reply 8 of 17, by rfnagel

User metadata
Rank Oldbie
Rank
Oldbie

@ripa,

The reason that it's happening on "Synth A" on your PC is because that's what you have set as your MIDI playback device within the Windows Sounds and Audio Devices control panel applet. Hehe, to really make a mess of things, (after doing it with "Synth A") change it to "Synth B" and start DOSBox with the game in question... now *BOTH* of them are screwed up <G>!

Nevertheless, the quick-fix is like I described... that is, if you're lucky enough to have the Windows XP Recovery Console installed.

@ripsaw8080,

Not only will it be messed up in ZDOOM, *any* MIDI files that you play back will suffer the same fate (after the problem happens).

I'm not sure of the exact specifics, but it indeed has something to do with DOSBox; in combination with WAD based games (and as I've also found, Monopoly Deluxe for Dos); changing channel 10 to a melodic channel, and then subsequently remapping bank 0 to bank 64.

As far as the GM reset, I've tried that before, but it doesn't work for me... I use Cakewalk to send a custom GM reset of sorts (one that in theory, resets almost everything MIDI on the card), but (also in theory) a GM reset wouldn't have any control over SoundFonts being remapped to another bank. In other words, the GM reset indeed resets the card, but it doesn't have any effect or handling of loaded SoundFonts in the EMU10K based sound cards.

I really hope that we might be able to track down the specifics of this problem (and a possible fix), as it's a real PITA to go through the Recovery Console 'voodoo ritual' each time it happens. Damn shame that the CLI drivers re-write the "Settings.sfm" file on PC power down, as it would be so much handier to be able to simply delete the file to reset the loaded SoundFonts.

(edit)
Back @ripsaw8080,

You mention that you use ZDOOM? Check this message post over at the ZDOOM forums (a weird problem that I'm having with ZDOOM and MIDI reverb controllers with my SBLive) -> http://forum.zdoom.org/viewtopic.php?f=7&t=21515

Just a-wondering if the/your Audigy has the same problem.

Rich ¥Weeds¥ Nagel
http://www.richnagel.net

Reply 10 of 17, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Using a modified build of DOSBox, I analyzed the SysEx messages DOOM is using. They're fairly simple: "F0 7E 7F 09 01 F7" is sent at startup, and "F0 7E 7F 09 02 F7" is sent when exiting back to DOS. From online information, these messages are "GM Mode ON" and "GM Mode OFF", respectively.

On my Audigy soundcard, the OFF message is responsible for causing the drums to be replaced by melodic instruments; and blocking that message prevents the problem. Another way to do this is to start up DOOM in DOSBox and then close DOSBox without shutting down DOOM back to the prompt, because then it only sends the ON message. Again, this works with the Audigy; the Live may have a bug or deeper problem with the OFF message.

I made a format 0 MIDI file that contains only the "GM Mode ON" SysEx message and a single drum hit on channel 10. The drum hit is included because WinAmp apparently doesn't send the SysEx unless there is at least one note event; but it also provides some feedback on whether the percussion instruments have been restored or not. After configuring WinAmp's MIDI plug-in NOT to send a GM reset (because a reset also corrects the problem on the Audigy), my tests with this solution had positive results. If playing the MIDI file doesn't solve the problem for Live soundcards, at least the information about the OFF message might help you find another solution.

@rfnagel: I don't recall any problems with reverb, but I'll have to get back to you after I've looked into it further. I recently encountered a DOS game that is sending an "Omni Mode OFF" controller message that breaks MIDI output on my Audigy's soundfont synth, and it shouldn't; so Creative MIDI drivers seem to have their little issues.

Attachments

  • Filename
    gm_on.zip
    File size
    164 Bytes
    Downloads
    195 downloads
    File comment
    Format 0 MIDI file
    File license
    Fair use/fair dealing exception

Reply 11 of 17, by rfnagel

User metadata
Rank Oldbie
Rank
Oldbie
h-a-l-9000 wrote:

You could try to give only yourself write access to that file. Set 'System' to read access.

Hey, that's a good idea... I'll have to try that, tag the file as read-only. One problem though, as a MIDI musician I'm constantly loading/unloading/replacing SoundFonts, although I could easily use the same batch file that starts DOSBox to set the read-only attribute of that file, and then simply remove it after DOSBox is shut down 😀

ripsaw8080 wrote:

Using a modified build of DOSBox, I analyzed the SysEx messages DOOM is using. They're fairly simple: "F0 7E 7F 09 01 F7" is sent at startup, and "F0 7E 7F 09 02 F7" is sent when exiting back to DOS. From online information, these messages are "GM Mode ON" and "GM Mode OFF", respectively.

Ahhh... quite interersting. In all of my DOOMing days (as well as composing with MIDI) I never realized that DOOM did that.

ripsaw8080 wrote:

I made a format 0 MIDI file that contains only the "GM Mode ON" SysEx message and a single drum hit on channel 10. The drum hit is included because WinAmp apparently doesn't send the SysEx unless there is at least one note event; but it also provides some feedback on whether the percussion instruments have been restored or not. After configuring WinAmp's MIDI plug-in NOT to send a GM reset (because a reset also corrects the problem on the Audigy), my tests with this solution had positive results. If playing the MIDI file doesn't solve the problem for Live soundcards, at least the information about the OFF message might help you find another solution.

Thanks for the information and file attachment 😀 I'll add the "GM Mode ON" sysex to my own custom reset and give that one a whirl and see if it works.

ripsaw8080 wrote:

@rfnagel: I don't recall any problems with reverb, but I'll have to get back to you after I've looked into it further. I recently encountered a DOS game that is sending an "Omni Mode OFF" controller message that breaks MIDI output on my Audigy's soundfont synth, and it shouldn't; so Creative MIDI drivers seem to have their little issues.

At first glance, that's what Rand said as well... buggy CLI drivers. After more detail in the afore-mentioned thread, he said that he'd check into it further though, as some of my testing results were quite strange (almost leads me to believe that my reverb problem wasn't due to buggy CLI drivers, but maybe rather a problem with FMOD - ZDOOM's sound engine).

Anyhoo, I'll give the above a shot, and thn post my results here ASAP. Thanks again 😀

Rich ¥Weeds¥ Nagel
http://www.richnagel.net

Reply 12 of 17, by rfnagel

User metadata
Rank Oldbie
Rank
Oldbie

ripsaw8080:

OK, you are 100% correct, sir! The attached file did the trick! 😀

I must have been totally mistaken about thinking that my 'custom' GM resets didn't work, as they also include the "GM Mode ON" sysex (F0 7E 7F 09 01 F7), and upon further testing, they worked as well to correct the problem 😀 Guess the 'ole brain doesn't work as well as it used to <LOL>.

Anyhow, I sent a "GM Mode OFF" (F0 7E 7F 09 02 F7) sysex via Cakewalk, and then immediately started the SBLive's SoundFont control panel applet (via AudioHQ). Sure enough, bank 0 was remapped to bank 64, and was mapped as a melodic bank on MIDI channel 10.

Then, I sent a "GM Mode ON" (F0 7E 7F 09 01 F7) sysex, looked in the SoundFont control panel, and the bank remapping was removed... hence MIDI channel 10 was reset back to a normal percussive bank 😀

Now, something would be extremely handy is if DOSBox could somehow send sysex messages... one could easily 'auto-send' the "GM Mode ON" (or any other sysex dump that they wish to send) upon exiting DOSBox.

[Rich goes off on a tangent, and pauses message writing for an Internet quest]

Attached is a ZIP with a utility that I found; a DOS command line sysex utility. I've configured it for a standard MPU401 device (MPU/Port 330/IRQ 5), and also included a binary sysex dump file with the required "GM Mode ON" GM reset. Also inluded is a MIDI file (similar to your's, that can be sent/played with most any MIDI player), as well as a handy-dandy batch file.

After running any of the WAD based games (or any other games) that cause the problem, simply execute GM_RESET.BAT within DOSBox. WHAM! Fixed! 😀

P.S. Fire up your trusty hex-editor, and have a looksie at DOOM II's executable (DOOM2.EXE - 709,905 bytes - 2/1/1995 1:09am):

Hex Offset 88543 : F0 7E 7F 09 01 F7

Hex Offset 88549 : F0 7E 7F 09 02 F7

Hehe <G> 😀

Anyhow, thanks for the help and tips for tracking the problem down... DOSBox is *now* PERFECT <IMHO>! 😀

P.P.S. @h-a-l-9000,

Setting the read-only attribute for the Settings.sfm file also worked, but required a reboot to straighten things out. Upon system powerdown, the CLI drivers weren't able to write to the file, so's after rebooting, things were back to normal. But, the above works sooooo much better and easier 😀

Attachments

  • Filename
    GM_Reset.zip
    File size
    29.91 KiB
    Downloads
    184 downloads
    File license
    Fair use/fair dealing exception

Rich ¥Weeds¥ Nagel
http://www.richnagel.net

Reply 13 of 17, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

If convenience is your goal, hitting Ctrl-F9 to close DOSBox while the game is still running is pretty easy. That will not only prevent the problem, it can also be used to fix the problem if you ever forget and quit the game back to the prompt. Hacking the 02 to an 01 in the SysEx data in the executable would be fool-proof, but some folks might not be comfortable with doing that. 😉

BTW, the "standard" IRQ for the MPU in DOSBox is 2 (or 9), but it may not really matter for that app.

Reply 15 of 17, by rfnagel

User metadata
Rank Oldbie
Rank
Oldbie
ripsaw8080 wrote:

If convenience is your goal, hitting Ctrl-F9 to close DOSBox while the game is still running is pretty easy. That will not only prevent the problem, it can also be used to fix the problem if you ever forget and quit the game back to the prompt.

You know, that's a pretty good idea (works like a champ).. and simplier too 😀 Although, many times (at least on my old 486) I had various batch files of varying complexities in the first place to run various games (but of course, DOSBox wouldn't really need them, short of having different DOSBox configurations for different games, or some of the custom batch file menus that I've created throughout the decades).

ripsaw8080 wrote:

Hacking the 02 to an 01 in the SysEx data in the executable would be fool-proof, but some folks might not be comfortable with doing that. 😉

Hehe, although I wasn't infering one to do so, if they feel safe doing it, go for it 😀

ripsaw8080 wrote:

BTW, the "standard" IRQ for the MPU in DOSBox is 2 (or 9), but it may not really matter for that app.

Thanks for the info. I had a hunch that was true, but went ahead an edited the INI anyways. Yep, the app doesn't seem to mind... it successfully sends the reset reguadless of the IRQ.

@All in this thread:

I REALLY need to get off my butt and upload my own custom 40MB SoundFont file for all of the other EMU10K1/EMU10K2'ers out there to enjoy 😀 On a miserable dialup out here in the woods, it'll take me a while.

Anyhoo, for the curious, here are a few smallish ones that I've created throughout the years -> http://www.cmoo.com/snor/weeds/SoundFonts/ 😀

Rich ¥Weeds¥ Nagel
http://www.richnagel.net

Reply 16 of 17, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

I read up on GM SysEx messages a bit more, and guess what? The "GM Mode ON" message is the same thing as a "GM Reset" message. Kind of explains why "both" correct the problem. I was disabling the GM Reset in WinAmp so I could test sending a... GM Reset. Doh! Still, it's curious that DOOM-engine games would use the OFF message at shutdown, and I wonder if it had the same effect on GM synths of the period.

Reply 17 of 17, by rfnagel

User metadata
Rank Oldbie
Rank
Oldbie
ripsaw8080 wrote:

I was disabling the GM Reset in WinAmp so I could test sending a... GM Reset. Doh!

Hehe, don't feel bad... we all have our brain-farts every now and then <G> (re: me previously thinking that my own GM reset didn't work, when indeed it did).

ripsaw8080 wrote:

Still, it's curious that DOOM-engine games would use the OFF message at shutdown,

This is something that I'm going to research a bit further, as in actuality, I prolly should know the answer to this one <G>. I'm a member of TeamTNT/TeamEternal - e.g. Final DOOM/BOOM Engine/Eternal DOOM/etc... and did a lot of testing and feature suggestions for Jim Flyn (also a member of the teams) when he was coding BOOM back in the day. Although plain-jane vanilla DOS doom uses a completely different sound/music engine than BOOM, I'm sure that Jim Flyn would have known the reason why stock DOOM did this (and I'd be surprised if I hadn't mentioned it to him at some point in time during the development of BOOM).

ripsaw8080 wrote:

and I wonder if it had the same effect on GM synths of the period.

You know something? Now that I think about it, I may have had the exact same problem on my old 48DX-100; back in the day when I was using nothing but a WaveBlaster daughterboard (the first one, not the "2", the "2" really stunk compared to the first one). After perusing the various batch files on my 486, I found a lot of the older ones that ran a reset on the WaveBlaster after exiting doom (WBMODE/R), and if my failing memory serves me correctly, the above just MIGHT have been the reason why.

P.S. There is one other sysex message contained in DOOM II's executable, located immediately above the other two:

Hex Offset 89738 : F0 41 10 42 12 40 00 7F 00 41 F7

Hmmm... wonder what that one does?

(edit) Answered my own question <G>... it's a GS reset.

Rich ¥Weeds¥ Nagel
http://www.richnagel.net