VOGONS

Common searches


First post, by ratco

User metadata
Rank Newbie
Rank
Newbie

Hey guys,

Sorry if this is a stupid question, but, when I try to play a midi file in msdos, does the sound depends on the soundcard that I have (it can only playback certain instruments and always in the same way) or does it depend on the player (certain players can make better sound with the same midi file) ? Is there a way for me to "add" support for more instruments in my soundcard?
Recently I tried playing a midi file of "Beat It" by Michael Jackson. It only plays some sounds, but I know the midi file actually has a lot more sounds supposed to be payed (an mp3 file produced from that same midi file gives much better results). So, can I do something about it, or midi playback is something that "is what it is and no chance of improvement"? Other than getting a new soundcard, 🤣, which I can't. I think my soundcard is a Yamaha OPL3.

Any help greatly appreciated and sorry if this is a stupid question 😀

Reply 1 of 17, by ratco

User metadata
Rank Newbie
Rank
Newbie

In a reply to my own question, I tried playing the same file in VanBasco Karaoke Player and it gave me a better result than in the dos player. So, it might be dependent on the player after all...? Still would appreciate any help guys 😀

Reply 2 of 17, by keenmaster486

User metadata
Rank l33t
Rank
l33t

Well, trying to play MIDI files out of an OPL3 is, more often than not, akin to trying to play a Beethoven symphony with a harmonica.

It does, of course, depend on the player; some are much better than others. But since the OPL3 is not an actual MIDI device, but, instead an FM synthesis chip, you're going to have some loss of information.

But another thing: OPL3 never comes on its own; it's always tacked on to some other sound card. So your card is not an OPL3 but something else. Probably some kind of SB16 clone or variant.

Also, if you're playing out of an actual MIDI device, the player won't matter but the device will. Whereas with OPL3, only the player matters (unless you're nitpicky about clone chips like CQM, but with OPL3 MIDI players the difference will be much more difficult to notice).

World's foremost 486 enjoyer.

Reply 3 of 17, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++

I'll give you a concrete example. DOSMID contains a MIDI interpreter which outputs sound via the OPL2 or OPL3 chipset using a software based conversion engine, but it's primary purpose is stream MIDI data out through a SB Pro / MPU401 UART to a wavetable daughterboard, external MIDI device, or an internal wavetable engine on your sound card (like an OPL4 chip from Yamaha or an EMU8k chip from Creative Labs). Another very powerful family of devices which can be used for MIDI playback are the Gravis Ultrasound cards, although I believe these are only supported on DOSMID via Gravis' MIDI emulation.

Some devices such as the EMU8k are programmable and can load sets of instruments known as soundfonts which alter the character of the instruments for MIDI playback. Most daughterboards are more fixed function and only allow you to select from pre-programmed instruments. Gravis Ultrasound cards can load and perform a broad range of manipulations on sets of PCM data (akin to WAV or VOC files) in hardware. These manipulations include most (if not all) of the features of a wavetable engine such as the EMU8k, although the customary interfaces and requisite data translation must still be provided by software.

All hail the Great Capacitor Brand Finder

Reply 4 of 17, by ratco

User metadata
Rank Newbie
Rank
Newbie

First of all thanks for the replies.
Second, I am using the player mentioned here posting.php?mode=quote&f=5&p=306722 since it's the only TSR player I have found. I want to have the midi files playing in the "background" while I do something else, which this player does. However some files play perfectly others not so much. I would love to hear about other midi TSR / background players.
I am using the standard headphones output to listen to the music. This player has the options of "format General/Basic/Extended". General seems to give somehow better results, but not always. It also has a "drum" option, which I seem not to get to make a big difference except that if I make a big change from "10" which is the default will make some sounds disappear.

Anyway, what you mean is that the sound card I have is not that good, correct? And, also, that the midi playback will depend on the player itself, since that is what will define the sound that will come out?

Reply 5 of 17, by keenmaster486

User metadata
Rank l33t
Rank
l33t

What sound card do you have? Note what I said above:

keenmaster486 wrote:

But another thing: OPL3 never comes on its own; it's always tacked on to some other sound card. So your card is not an OPL3 but something else. Probably some kind of SB16 clone or variant.

Knowing what sound card you have will help us because we could tell you whether you want a wavetable header, external midi box, or whether your card already has built-in pseudo-MIDI support of some kind, or something else. See if you can find out. If you have no idea, open up your machine and take a look.

EDIT:

ratco wrote:

And, also, that the midi playback will depend on the player itself, since that is what will define the sound that will come out?

Only if you're outputting through OPL3. If you're outputting through actual MIDI, it'll always sound the same no matter what player you use.

World's foremost 486 enjoyer.

Reply 6 of 17, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
ratco wrote:

I am using the standard headphones output to listen to the music. This player has the options of "format General/Basic/Extended". General seems to give somehow better results, but not always. It also has a "drum" option, which I seem not to get to make a big difference except that if I make a big change from "10" which is the default will make some sounds disappear.

I remember having some trouble with the MIDI Mapper in Windows 3.1 back in the day. For some reason the defaults suggested by the setup for the Pro Sonic 16 I had at the time would leave out a bunch of instruments. It was only when I read the Help files for Dare to Dream that I found the correct configuration.

I posted about this here:
Sound Blaster 16 No Midi In Windows 3.1 Or Dos

From the documentation:

For Dare to Dream, you should use the "Extended(Ext)" or "All" setup specific to your device. "Basic" or "General" will not work […]
Show full quote

For Dare to Dream, you should use the "Extended(Ext)" or "All" setup
specific to your device. "Basic" or "General" will not work with Dare to
Dream, as only 4 channels(13-16) are used in the "basic" setup and most of
the Dare to Dream soundtrack has more than 4 sounds at the same time.

Reply 7 of 17, by ratco

User metadata
Rank Newbie
Rank
Newbie

In windows98 I can only see "Yamaha OPL3-SAx WDM"
A websearch identifies it as a "Soundblaster 16 / Pro Compatible". Btw, in games I usually say that I have a Sound Blaster compatible in order to get sound (otherwise I get no sound).
What more info can I provide?
Thanks!

Reply 8 of 17, by ratco

User metadata
Rank Newbie
Rank
Newbie

I found another info in Windows 98. "Yamaha MPU-401". It's worthy to note that I found it in the MIDI section and it indeed has another option of FM Synthesizer. IN DOS I don't remember seeing these options.

Reply 9 of 17, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++

Some YMF-71x ISA cards incorporate OPL4 (usually a YMF-704) and can therefore do MIDI directly, but most require either an external device or a wavetable daughterboard. The cheapest and most versatile way to make this work is to provide MIDI playback via a second computer. The cleanest way is to purchase a wavetable daughterboard. They can be found used (although they're usually quite expensive) or purchased new (Google for Dreamblaster S1).

Phil has a video regarding MIDI emulation on a secondary PC:
Roland MT-32, CM-32L + General MIDI for $50 Building a MIDI box
In an effort to reduce power consumption and size, I've implemented the same on a Raspberry Pi 2:
Emulating MT-32 on an RPi2

All hail the Great Capacitor Brand Finder

Reply 10 of 17, by keenmaster486

User metadata
Rank l33t
Rank
l33t

You have a Yamaha OPL3-SA3 sound card, which incorporates the following:

Sound Blaster Pro compatibility
Windows Sound System compatibility for higher quality digitized sound
OPL3 for FM synthesis
Some kind of built-in MIDI chip separate from the OPL3.

If you're in Windows 9x and you have the correct drivers installed, you can output sound through either OPL3 or the built-in MIDI device (edit: depending on what you select in the Windows sound settings). The built-in MIDI thingy sounds way better.

These cards are mostly found in laptops; is that what you're using?

World's foremost 486 enjoyer.

Reply 12 of 17, by ratco

User metadata
Rank Newbie
Rank
Newbie

Hey guys.
Once again, thank you for the replies, greatly appreciated.
Well, I want to play these midi files in pure Dos (MS-Dos or FreeDos, right now using Ms-Dos). However, I have Win98 installed at this moment in my computer (which is a laptop yes), so I used it to have some information on the soundcard. I don't know how to do it in Dos.

I "Multimedia", "Midi", I see three options
"Software GS WA"
"Yamaha FM Synthesizer"
"Yamaha MPU-401"

When I select "Yamaha MPU-401" there is no Midi sound using VanBasco Karaoke player.
However, when I select either "Software GS Wa" or "Yamaha Fm Synthesizer" I get sound in both. They sound slightly different, maybe Software sounds a little better, but nothing major. However, they both sound much better than the DOS player I mentioned earlier.
I feel inclined as to say that my laptop has no dedicated Midi output, as I would expect that to be the last option (which gives no sound).

Are there any sound drivers for Dos that I could install?

Also worth notice is the fact that for the Dos Midi Player to work, i had to edit my autoexec.bat file and put this line
"set Blaster=a220 i5 d1 h5". Maybe I should change something here? I also had to load a program in autoexec.bat called "SBMIDI.exe" It is sort of the driver for the player. I noticed just now that it has 3 options:
1 - SoundBlaster Music Synthesizer (default)
2 - External Music Synthesizer
3 - External Music Synthesizer (MPU401 Interface)

I will maybe play around with these and see if I get better results (I think it won't work with any of the "external" options, since I don't have any device connected to the computer, but I will try anyway).

Reply 13 of 17, by ratco

User metadata
Rank Newbie
Rank
Newbie

It's confirmed, I can only get sound in Dos when I set the option to "Soundblaster Music Synthesizer".
I still get worst results than in windows 🙁
I have now set it to use the "General Midi" option which at least gives me sound in most midi files (where Extended Midi sometimes fails to give me sound in some midi files), but some don't sound nowhere as good as in Windows. Which seems to indicate that the player and the OS specific drivers might be making the difference. VanBasco Karaoke Player sound so good. It's almost as listening to a mp3 of the instrumental version. In Dos I get a poor sound using that player. But only in certain midi files. Others sound very high quality. I don't get why.

Reply 14 of 17, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++

The MPU401 interface requires something connected to the card, either an external device or a daughterboard. Windows implements a software MIDI synthesizer which outputs via PCM (WAV type audio), although there are better and more versatile options out there. The FM synthesizer interprets MIDI data and converts it to data which can be played back via the OPL3 core. These software options are only available in Windows and won't work if you boot into pure DOS.

All hail the Great Capacitor Brand Finder

Reply 15 of 17, by ratco

User metadata
Rank Newbie
Rank
Newbie
gdjacobs wrote:

The MPU401 interface requires something connected to the card, either an external device or a daughterboard. Windows implements a software MIDI synthesizer which outputs via PCM (WAV type audio), although there are better and more versatile options out there. The FM synthesizer interprets MIDI data and converts it to data which can be played back via the OPL3 core. These software options are only available in Windows and won't work if you boot into pure DOS.

Ok, so in windows I understand it uses software to recreate sounds and instruments, etc. Got it. The MPU401 (like I thought, thanks for confirming it) is supposed to output data to an external device that will play the music (no use for me, since I don't have none of those). That leaves me with the "SoundBlaster Music Synthesizer" which works in pure DOS. Your explanation was very clear and easy to follow, thank you. I had read about it online but was unsure of the meaning of those.
Just out of curiosity, and so I understand it more fully, what is that "SoundBlaster Music Synthesizer" thing? What is creating the sound? Software (player, drivers?)? Hardware (CPU? soundcard?)? How does it work background" while still running other programs in DOS?

To sum it up, the sound I get is what it is, and I can't "improve it" in any way right? There are no "midi drivers" for Dos that will make the synthesizer work better. Right? I am better off using General Midi for all files.

Thanks in advance for your help.

Reply 16 of 17, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++

I believe Soundblaster Music Synthesizer refers to the OPL3 block, so it's the MIDI emulation I referred to earlier. It just uses a DOS TSR instead of a Windows driver.

All hail the Great Capacitor Brand Finder

Reply 17 of 17, by ratco

User metadata
Rank Newbie
Rank
Newbie
gdjacobs wrote:

I believe Soundblaster Music Synthesizer refers to the OPL3 block, so it's the MIDI emulation I referred to earlier. It just uses a DOS TSR instead of a Windows driver.

Ok, got it!
Thanks a bunch everyone for the help.
Hey since you guys know a lot about MIDI and stuff, does anyone knows an answer to another topic of mine, I need a program to join midi files (so that I can listen to one song after the other). Doing it with Audacity in Linux is just not the way I wanted to do it. Prefer to do it all in DOS.

Thanks for all the help!