Better Music for GM ScummVM (and DOSBox) games

General chat related to ScummVM, adventure gaming, and so on.

Moderator: ScummVM Team

Post Reply
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

Better Music for GM ScummVM (and DOSBox) games

Post by cwadge »

TL;DR: After sitting on it for something like a decade and a half, I'm releasing my General MIDI SoundFont to the public. I hope you enjoy it.

You can download it here: https://pub.dotbalm.org/misc/UHD3.7z

WHAT?

The digital equivalent of sheet music, MIDI was commonly utilized by the video games of yesterday. MIDI doesn't have any sound information in it per se, therefore the quality of the samples utilized by your MIDI synthesizer determines the quality of your MIDI sound as much as the composition itself.

To put it simply, a SoundFont is a library of instrumental sound samples, instructions and parameters which, when loaded by a compatible synthesizer (either implemented in hardware or in software), will dramatically change the sound of MIDI output. It follows that your choice of SoundFont can have a noticeable impact on your classic video game experience. Especially if you're an audiophile like me.

WHY?

Basically, I was going to play an old school game and went looking for the cool new SoundFonts to make the MIDI not suck. Imagine my surprise when I couldn't find one I liked as well as my old UHD SF2.

HOW?

This depends largely on whether a particular game is being loaded through your OS, hardware synth, ScummVM, DOSBox, etc. Thus, I won't go into much detail here. Suffice it to say, there are plenty of tutorials online and these forums in particular describing how to load a SF2 in various situations, and I'm happy to help if you still have questions.

WHY NOT "TIMBRES OF HEAVEN" / [MY_FAVORITE_SF2_HERE]?

Timbres Of Heaven, while an overall great sounding SoundFont, is unfortunately NOT very adherent to the General MIDI convention. Some of the volumes between instrument presets are highly inconsistent, resulting in an uneven and often overpowering sound. Also, tremolo has been added to certain instruments in a manner which was not in any MIDI standard I'm aware of, and often clashes badly with many real-world examples (such as the soundtracks to many Sierra games) where the composer would have added their own tremolo in the MIDI itself. This gives me the impression it was intended more for studio use than for gaming or other standard GM playback. Timbres Of Heaven is also ~376MB in size, which must be loaded into RAM to utilize. On resource-constrained computers (or certain SF2 compatible hardware synthesizers), this isn't ideal.

In contrast, UHDv3 is just 64MB uncompressed, which fits cleanly on most older SF2-capable hardware synthesizers, and isn't too RAM hungry on resource-constrained computers either. But perhaps most importantly in the context of video games or other standard MIDI, it sticks much more closely to the GM convention utilized by many classic games. I think it strikes a decent balance between consistency and realism that compliments the original compositions.

HOW DOES IT SOUND?

Like this:

• Betrayal at Krondor
• Chiisana Warutsu (Little Waltz) [compare to: • "Musyng Kite" 1GB soundfont]
• Discworld 1 (CD DOS)
• Gabriel Knight: Sins of the Fathers
• King's Quest 6
• Leisure Suit Larry 1 VGA
• Leisure Suit Larry 3
• Leisure Suit Larry 5
• Leisure Suit Larry 6
• Monkey Island 2: LeChuck's Revenge
• Quest for Glory 1 VGA
• Quest for Glory 3: Trial by Fire
• Quest for Glory 4: Shadows of Darkness
• Sam & Max Hit The Road
• SC-88 Pro demo tracks (GM conversion)
• Silpheed
• Space Quest 5
• The Legend of Heroes IV: A Tear of Vermilion
• The Legend of Kyrandia II: The Hand of Fate
• Theme Hospital
• Warcraft II: Tides of Darkness

And a quick contrast between UHD and AdLib FM synthesis used by default in most classic games:

• Ultima VI startup theme (AdLib/UHD3)

(If you prefer, there is also a YouTube channel)

WHEN?

Right now. Go download it if you want (https://pub.dotbalm.org/misc/UHD3.7z). Just don't distribute it commercially, please.

HISTORY

As a kid I loved video games, and had a special appreciation for their unique soundtracks. Sierra stood out especially, as perhaps the first to embrace the impressive but relatively high-dollar Roland MT-32 synth module. I wanted an MT-32 badly as a kid in the 80's and early 90's, but sadly at $700 it was far out of reach. So, like most other regular Joes, I had to suffice with PC speaker bleeps and, a bit later on, low quality OPL support via SoundBlaster.

Fast forward to the late 90's / early 2000's and the EMU10k1 had become a thing. Creative Labs released a commodity-priced sound card based on this innovative sound processor, the SB Live!, and I was fortunate enough to acquire an early model at a trade show. Among other things, the EMU10k1 supported SoundFonts natively. This gave your average audiophile access to high quality MIDI playback which was on par with pricey studio synths. Unfortunately, the best SoundFont that shipped with the SB Live! was an 8MB GM set that, while far superior to the quality most people expected from MIDI, largely failed to impress. Thankfully homebrew SoundFonts caught on in music and audiophile communities, with a slew of SF2 sound banks circulating. The one I liked best at the time was a set called "Unison".

Around the same time I'd finally acquired my longed for MT-32 for something like $45 on eBay. At that point it was over a decade old and seriously outmoded, but its clarity and balance still had a certain sophistication that even the MIDI synthesizers of contemporary times seemed to lack. Worse, most SoundFonts in open circulation didn't work so great with many of the classic games I wanted to use them for in the first place. So, I figured, if you want something done right...

Initially using Unison as a starting point, with the MT-32 and the soundtracks to hundreds of classic games as references, I began replacing samples, sometimes with publicly available instrument samples, other times with custom samples recorded by musician friends & acquaintances, even some by myself. Lots of effort went into fine tuning new and existing samples, correcting looping errors, making countless micro adjustments to timbre, falloff, presence, reverberation, etc. Though the finished result hardly resembled Unison any longer, I called the finished product "Unison HD" in homage to its roots.

Though I hadn't released UHD publicly in its entirety (until now), some of the unique samples recorded for this SoundFont may be familiar to you already. This is because the kind folks who collaborated with me while I was first building it also got copies of many instrument presets and used them in their own projects. These include game soundtracks, backing tracks, and even TV commercials. Some have also wound up in other popular SoundFonts, often with a slight tweak here or there.

As the UHD Soundfont still holds up pretty well today, I figured you might appreciate the way it augments your favorite games of yesteryear.

EDIT:
If you're looking for a SoundFont which isn't limited by the size and complexity constraints of UHD, you might prefer the FatBoy SoundFont I've been working on. If so, take a look at the end of this thread for development progress.
Last edited by cwadge on Fri Nov 30, 2018 12:28 am, edited 33 times in total.
User avatar
almeath
Posts: 180
Joined: Fri Mar 14, 2008 1:40 pm
Location: Australia

Post by almeath »

I have only recently started experimenting with various SF2 midi sound fonts in ScummVM and DOSBox. I entirely agree with your assessment of Timbres of Heaven and similar fonts which are too loud, unbalanced and just plain overpowering for many games.

This is exactly what I have been looking for. Thank you so much for this. :D
User avatar
tsoliman
ScummVM Developer
Posts: 404
Joined: Wed Jan 19, 2011 3:47 pm
Location: USA

Post by tsoliman »

I've tried this with Lands of Lore (not a fair test case but one of my favorites)
A cool track is the Northland Forest (just outside of Gladstone).

Listen to it on an SC-55 to get the "what it is supposed to sound like" sound as far as the volumes of the different instruments. (youtube video)

Then try with this UHD soundfont (the drums are overpoweringly loud)

Then try with one of the soundfonts that are labeled SC-55 (the drums are ok again)


This sort of thing might be why the soundfonts you don't like disappointed you. Some of them are attempting to be excellent at specific test cases and not others.
In other words, I don't think there's a panacea when it comes to those old games.
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

Post by cwadge »

almeath wrote:I have only recently started experimenting with various SF2 midi sound fonts in ScummVM and DOSBox. I entirely agree with your assessment of Timbres of Heaven and similar fonts which are too loud, unbalanced and just plain overpowering for many games.

This is exactly what I have been looking for. Thank you so much for this. :D
Thanks, glad you like it. ;)
tsoliman wrote:I've tried this with Lands of Lore (not a fair test case but one of my favorites)
A cool track is the Northland Forest (just outside of Gladstone).

Listen to it on an SC-55 to get the "what it is supposed to sound like" sound as far as the volumes of the different instruments. (youtube video)

Then try with this UHD soundfont (the drums are overpoweringly loud)

Then try with one of the soundfonts that are labeled SC-55 (the drums are ok again)


This sort of thing might be why the soundfonts you don't like disappointed you. Some of them are attempting to be excellent at specific test cases and not others.
In other words, I don't think there's a panacea when it comes to those old games.
You're right that there's no magic bullet, as some composers really targeted a single, very specific synth which happened to be quirky in some way, so the music will be a little weird on anything else. I don't pretend that UHD is a magic bullet, but a good compromise between using real instrument samples (as opposed to, say, the SC-55) and keeping good consistency with the GM standard. There are several games that load custom patches to the Roland module, be it SC, MT, or CM-32L which does something normal MIDI wouldn't. For instance, I recommend playing games like Space Quest 3 with MT-32/CM-32L emulation because:

1) it uses MT-32 patches as sound effects with no GM analogue,
2) who the hell has an actual MT-32 anymore? and
3) MUNT actually has a way lower noise floor than a real MT-32 with analog outs.

For actual GM sans custom patch loading (standard MPU support normally doesn't assume this if the engineers knew what they were doing), keeping all presets internally consistent with one another is perhaps the most important thing. UHD3 does this.

As to why I personally don't like certain SoundFonts for GM playback, especially in games, there's a bit more to it than that. Highly inconsistent volumes between instruments, bad loops, and way too much tremolo / vibrato added to instruments that normally wouldn't have them are all common synth sins. Most people who make [free] SF2s are not sound engineers per se, they're just trying to make something that sounds good. Some have certainly come closer than others to make something that sounds good in more circumstances than others, but having any real instrument samples make this a bit subjective. Many real instruments are at a pitch that makes them "cut through" a mix much more than others, even at the same decibel level. Earlier synths don't really have this problem for the most part, because the sounds are designed, not recorded. With soundtracks using the SC-55 in particular, you're going to have volume issues with drums. In UHD3, the drums are all calibrated to the same decibel level (though some like the "power" set have more presence within the same envelope, as designed), so there's really nothing to be done in the SoundFont itself to correct that... at least, without breaking all other GM support in the other 99% of MIDI that doesn't behave this way. There are ways to work around this, but they involve either making adjustments in your soft synth to lower the amplitude of bank 128 (and all presets therein), or making a custom version of the SoundFont that does exactly the same thing.

There's also another big X-factor with soft synths in general: they all behave a little differently. FluidSynth, Timidity++, JACK, Apple DLS SS via CoreAudio, Microsoft Windows MIDI Mapper, and dozens of 3rd party synths and plugins all have little quirks in their behaviors. For example, I've found that FluidSynth is extremely close to a real, HW-based SF2 synth, but that its amplitude ends up being way higher (between 20% and 60% higher, depending on the interface). So, the gain must be set lower to get proper playback in many cases. Or the Apple DLS synth, which both adds gain and adds a bunch of reverb as well, regardless of what the loaded SF2 says to do. Those are all cases where the user has to do a bit of tuning, regardless of which SF2 they use. There's not much I can do about that within the SF2/3 standards either, since every case is a little different.
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

Post by cwadge »

tsoliman wrote:I've tried this with Lands of Lore (not a fair test case but one of my favorites)
A cool track is the Northland Forest (just outside of Gladstone).

Listen to it on an SC-55 to get the "what it is supposed to sound like" sound as far as the volumes of the different instruments. (youtube video)

Then try with this UHD soundfont (the drums are overpoweringly loud)

Then try with one of the soundfonts that are labeled SC-55 (the drums are ok again)
A little postscript which kinda backs up what I was saying above. I just reinstalled LOL1 in DOSBox and gave it a spin. The volumes are correct for me, but I am running the game in GM mode for music... you are, right?


Image


Besides that I'm also using FluidSynth as the backend for MPU, as follows (Linux):

Code: Select all

fluidsynth -a alsa -m alsa_seq -r 48000 -g 0.4 -l -i -s /usr/local/share/soundfonts/UHD3.sf2
Note the gain, because in DOSBox through ALSA in particular it seems to amplify my MIDI gain by about 60%.
User avatar
tsoliman
ScummVM Developer
Posts: 404
Joined: Wed Jan 19, 2011 3:47 pm
Location: USA

Post by tsoliman »

cwadge wrote:but I am running the game in GM mode for music... you are, right?
I run the game in ScummVM with fluidsynth defined as my GM driver.
cwadge wrote:The volumes are correct for me
I am not talking about the overall volume/gain/etc. Just the relative volume of the percussion vs the other instruments.
This sort of thing is pretty subjective so don't take what I say as harsh criticism or anything. I am not an expert.
I can probably make a comparison video and you can decide for yourself.
cwadge wrote:who the hell has an actual MT-32 anymore?
Me :(
... and I suspect a few others on this forum.
Granted, it's a group that's not representative of the general population as far as its interest in old hardware and software. :)
User avatar
tsoliman
ScummVM Developer
Posts: 404
Joined: Wed Jan 19, 2011 3:47 pm
Location: USA

Post by tsoliman »

Here's some quick comparison videos for my test case using ScummVM right outside Gladstone Keep:
UHD3 soundfont
SC-55 soundfont
SC-55 (RSCVA)

You'll hopefully notice that the UHD3 video has "more cowbell" :D. I am not sure what is causing this.

Bonus:
Apple DLS Soft Synth ("CoreAudio") (loud buzzing)
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

Post by cwadge »

tsoliman wrote:
cwadge wrote:but I am running the game in GM mode for music... you are, right?
I run the game in ScummVM with fluidsynth defined as my GM driver.
Also check out the settings for LOL itself (setup.exe).
tsoliman wrote:
cwadge wrote:The volumes are correct for me
I am not talking about the overall volume/gain/etc. Just the relative volume of the percussion vs the other instruments.
This sort of thing is pretty subjective so don't take what I say as harsh criticism or anything. I am not an expert.
I can probably make a comparison video and you can decide for yourself.
Sorry if I came across as defensive. Honestly I never took it personally; just wanted to clarify that I recognize there's a lot of loose "general MIDI" out there that was actually targeted and tested on one particular sound module and they sound weird on anything else. But the reason I don't use ToH or certain other popular SF2s is because they don't work that well on MIDIs that don't suffer from that problem. If anything, if there is a legit problem with the SF2, I want to actually fix it, not pretend everything's golden when it really isn't. So if I've communicated anything but the above, sorry, my mistake. :oops:
tsoliman wrote:
cwadge wrote:who the hell has an actual MT-32 anymore?
Me :(
... and I suspect a few others on this forum.
Granted, it's a group that's not representative of the general population as far as its interest in old hardware and software. :)
Oh, don't get me wrong here -- I don't think less of you for it. If anything I understand the appeal all too well. But the cool thing is that MUNT has come along to the point that it actually sounds cleaner than my actual MT-32 did; the MT-32 always had problems with analog noise. I never could have guessed back then I'd have a better MT-32 on my phone than I did IRL, but here we are. :) Still, it's cool to see that LCD light up with the system status messages.

That all said, I did take your observations seriously, to the point where I ripped the MIDI from LOL and loaded it up in DOSBox just to make sure I had all the bases covered. Turns out, LOL isn't really using any of the drum banks, except a single tom in a single key. Everything else is pizzicato, tubular bells, timpani, taiko, and kalimba. So, the problem in this case does not seem to be the weird SC-5xxx drum volume issue.

Image

I manually picked through each of the instruments used in that track, and all of the volumes are right where they should be relative to one another.

EDIT: You posted your reply before I was done with mine -- thank you, BTW -- and I listened to your UHD3 recording... something is wrong for sure! It doesn't sound anything like that on mine, either on OS X or my primary rig (Debian 9.x). I honestly think either DOSBox or LOL itself is trying to address a non-GM synth layout, as some of the instruments even appear to be mismatched on your recording. I'll have to do a recording to compare, but in the meantime, I'd definitely check it out and make sure both DOSBox and LOL itself are using GM.
Last edited by cwadge on Sun Feb 11, 2018 12:35 am, edited 1 time in total.
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

Post by cwadge »

Check it out, LoL track 21 via FluidSynth/UHD3: https://pub.dotbalm.org/audio/lol_21.mp3

IMO this track isn't exactly the best test for MIDI in general, especially since the velocity on nearly every instrument is basically "bang on the keyboard like a confused ape," but I think it's pretty clear there's a discrepancy somewhere. ;)
Last edited by cwadge on Sat Feb 10, 2018 1:12 pm, edited 2 times in total.
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

Post by cwadge »

Here are some GM soundtrack samples I recorded via FluidSynth/UHD3 directly (in fast mode):

Daggerfall (weather music)
Leisure Suit Larry 1 VGA
Monkey Island 2 Intro Swamp Parents Outro
Quest for Glory 3
Quest for Glory 4
Space Quest 4
Space Quest 5
User avatar
almeath
Posts: 180
Joined: Fri Mar 14, 2008 1:40 pm
Location: Australia

Post by almeath »

UHD is a big help for games like Star Trek Judgment Rites, where some of the music has loud drums and cymbal crashes that overpower the other instruments. UHD seems to soften them just enough, whilst still providing a similar level of quality to the larger sound fonts such as SGM (over 200MB in size).
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

Post by cwadge »

almeath wrote:UHD is a big help for games like Star Trek Judgment Rites, where some of the music has loud drums and cymbal crashes that overpower the other instruments. UHD seems to soften them just enough, whilst still providing a similar level of quality to the larger sound fonts such as SGM (over 200MB in size).
That's awesome, really glad you're enjoying it.

I actually quite like SGM but, at least last time I tried it, it was incomplete and didn't fully support GM. So, I still use UHD personally:

Revision 3.10
128 GM melodic presets
31 GS melodic variation tones
10 Drum banks
User avatar
almeath
Posts: 180
Joined: Fri Mar 14, 2008 1:40 pm
Location: Australia

Post by almeath »

cwadge wrote: I actually quite like SGM but, at least last time I tried it, it was incomplete and didn't fully support GM. So, I still use UHD personally:
I use a modified version of SGM that appears to have a full compliment of GM instruments. This site offers several improved versions ranging in size up to 518MB depending on what enhancements you want:

https://sites.google.com/site/soundfonts4u/

It does sound amazing, but it is massive, and as mentioned the drums and other percussion are overpowering in some instances.
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

Post by cwadge »

almeath wrote:
cwadge wrote: I actually quite like SGM but, at least last time I tried it, it was incomplete and didn't fully support GM. So, I still use UHD personally:
I use a modified version of SGM that appears to have a full compliment of GM instruments. This site offers several improved versions ranging in size up to 518MB depending on what enhancements you want:

https://sites.google.com/site/soundfonts4u/

It does sound amazing, but it is massive, and as mentioned the drums and other percussion are overpowering in some instances.
Thanks for the pointer. I'm checking out the 518MB GM set now, and it turns out it now fully supports GM, plus some common GS/XG banks. You're right though, there is zero fine-tuning of volumes in the drum presets, and there appears to be some inconsistent volumes in several of the instrument presets as well. It's a good set though, so maybe it'd be worth going over and fine-tuning for balance? I'll go over it when I have a bit more time and see how much of a challenge that'd be.
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

Post by cwadge »

almeath wrote:It does sound amazing, but it is massive, and as mentioned the drums and other percussion are overpowering in some instances.
I've picked through the latest SGM (v2.01-Sal-Guit-Bass-V1.3) in a bit more detail and, although there are some great samples in there with no looping errors or other obvious problems, I really didn't like some of the sample choices. The strings, for instance, appear to be sampled from an old model synthesizer and not an actual string section. I actually like mine better, which is odd at only 64MB.

In fact, I just did another retune of UHD, bringing it to version 3.12. Adjusted some volumes to account for some recent improvements to FluidSynth and did a slight tweak to the steel string acoustic guitar to add a bit more presence, though it still weighs in at the same lightweight 64MB.

You might want to redownload the latest version of UHD3 (same link above); I think it sounds even better now than it did before:
ChiisanaWarutsu (Little Waltz)
Post Reply