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: 82
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

UHD updated to 3.30

Post by cwadge » Sat Mar 03, 2018 11:05 pm

I had some downtime today, so put some work into a few things that irritated me about UHD. UHD v3.30 is the result.

Changelog:
• Phase shift to "Solo Vox" (preset 000:085) to remove dissonance in high registers
• Fine tuning to "Distortion Guitar" (preset 000:030)
• Sample reprocessing of "Synth Bass" 1&2 (preset 000:038-039)
• A few micro-adjustments to volume.

User avatar
tsoliman
ScummVM Developer
Posts: 403
Joined: Wed Jan 19, 2011 3:47 pm
Location: USA

Post by tsoliman » Tue Mar 06, 2018 1:02 am

I downloaded UHDv3.30.7z and extracted it but strings says "Revision 3.31"
Did I download the wrong file?

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

Post by cwadge » Tue Mar 06, 2018 1:53 am

tsoliman wrote:I downloaded UHDv3.30.7z and extracted it but strings says "Revision 3.31"
Did I download the wrong file?
Good question, but nope! I made a few superfluous tweaks that were so minor that I didn't bother with a release notification. The latest version is always linked no matter which version identifier you follow. This is because minor releases are fixes, not subjective changes that may or may not be better depending on personal opinion. So in the case of UHD, the latest one is always the best one--at least in terms of minor release numbers. Major release changes, if any, will be named differently (e.g. UHD4 rather than UHD3) so if somebody prefers an older flavor they can live side-by-side.

Speaking of major changes, I am also working on a side project you might find interesting. With UHD I've tried to keep it light, strictly GM, and very close to the Sound Canvas precedent. Not so with the new one. Its working name is "FatBoy" and, like its namesake, size is no object with this one. I'm simply going for the richest sound possible, while also keeping it balanced like UHD. No sense in having the most lavish soundfont in the world if it sounds like crap for other people's MIDI, right? I'm also adding a plethora of GS patches, with an aim to make it fully GS compatible when it hits 1.0. Right now it's super rough, but it's coming along nicely. If anybody would be interested in helping me iron out the kinks as it comes together, let me know.

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

FatBoy SoundFont is on the way

Post by cwadge » Tue Mar 06, 2018 11:14 pm

Friends, Romans, countrymen, lend me your ears.

I've been working on a new, enthusiast GM/GS SoundFont project, "Fat Boy". It's still a work in progress at only version 0.52. Not all instruments are final and I haven't done more than cursory tuning and balance work. However I personally think that, even in its unfinished state, it already sounds pretty amazing compared to just about every other SoundFont out there. Here's a little demo to pique your interest:

▶ FatBoy v0.52 demo

If you've got the type of ears which find Beats By Dre headphones sound pretty good, no offence intended but you should probably stick to the UHD SoundFont for your video game MIDI instead. If, on the other hand, you find this development interesting, I'll be looking for beta testers soon to put it through the paces. Unlike UHD I haven't had years to polish its overall utility and balance for game soundtracks, so to accelerate the process I could really use your eardrums to help shake out any issues before I release it publicly. Please let me know if you'd be willing to pitch in. :)

User avatar
almeath
Posts: 92
Joined: Fri Mar 14, 2008 1:40 pm
Location: Australia

Post by almeath » Thu Mar 08, 2018 2:38 pm

That definitely sounds amazing, even in an unfinished state. I would be happy to test it out.

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

Post by cwadge » Thu Mar 08, 2018 6:49 pm

almeath wrote:That definitely sounds amazing, even in an unfinished state. I would be happy to test it out.
Awesome, thank you kindly!

In terms of progress for FatBoy:

The GM standard set is all in place and functioning at this point and I've got at least placeholder GS instruments, but GS is not yet complete (in fact, I haven't found a single SoundFont to date that is 100% GS complete, despite claims to the contrary). Most attenuation is finished at this point, and the GM instruments generally function like higher quality versions of the Roland standard sounds. There are some bugs I'm already aware of, but it's probably about ready for some initial testing nevertheless. I'll give it a once-over to make sure there's nothing glaringly wrong with the GM set and upload it later today.

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

FatBoy BETA Soundfont version 0.70

Post by cwadge » Thu Mar 08, 2018 8:45 pm

OK! As promised, here's the current BETA of FatBoy, version 0.70.

https://pub.dotbalm.org/misc/FatBoy-v070.7z

NOTES:

• Version 0.70 of FatBoy is pretty fat at 300MB uncompressed, but it may grow and shrink a few times as development progresses. Right now there are some redundant (or very nearly redundant) samples that can be consolidated, but there are also more presets in the GS set which still need to be implemented. TL;DR: I don't know how big this beast will be when it's finished, but I also really don't care. :)
• FatBoy is GM-complete and has initial GS/XG support, but extended banks are not yet exhaustive. In fact, I may need to acquire a later model SC-88xx series hardware module for testing and comparison before I can really call the GS functionality "finished".
• I'm pretty happy with all of the presets in the GM set at present, though there may be some minor flux as development progresses towards v1.0.
• FatBoy's GS set is only provisional at this point, and will change much more dramatically than the GM portion of the SoundFont.
• The GS instruments in FatBoy may cause a lot more CPU stress on software synths than usual. This is due to the fact that there is a LOT of layering and tweaking of instrument variations in the GS set. It's not called FatBoy for nothing. :wink: Those wanting something that's easier on system resources (RAM, CPU time, etc.) should probably consider UHD instead. It was designed for that.
• Right now I'm primarily interested in addressing fundamental problems like dissonant chords, pitch/tuning problems, major attenuation (volume) inconsistencies, looping errors, etc. So feedback around these rudimentary things is most welcome, but I'm open to feedback in general.

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

FatBoy BETA Soundfont updated to version 0.72

Post by cwadge » Fri Mar 09, 2018 9:08 am

Hello there,

I've just finished uploading the latest development version of FatBoy v0.72. Nothing too major has changed in such a short time, but I have got full GS support for a decent handful of popular games, including Albion, Warcraft II and Descent 2. Here's an example of the GS-heavy Descent 2 theme:

▶ https://pub.dotbalm.org/audio/DESCENT2_FatBoy_v0.72.mp3

And the GM "Sierraland" theme from Larry 3, which is popular for comparing synth quality:

▶ https://pub.dotbalm.org/audio/SIERRALAN ... _v0.72.mp3

The latter helpfully showcases a broken, out-of-tune trombone which I extracted from a GeoCities archival trash heap and fixed up for use in FatBoy. Which brings me to the changelog:

Changelog:
• Spatialized harp preset to better fit within large, stereo mixes.
• Adjusted attenuation on strings and a few other instruments.
• Corrected root notes, tuning and DC bias for trombone.
• Gave up on fixing the out-of-tune but otherwise excellent French Horns samples I was using and reverted to an unfinished but also first-rate preset from an old, abandoned orchestral SF2 I found on an FTP server. I have no idea who to credit for that one, but the license said Creative Commons. It turned out to be much easier to finish up than the other, which had some samples that were out of tune with themselves and would have involved too much processing to retain their natural sound. Oh well.

If you get a chance to test it out in your own games / MIDIs, let me know what you think.

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

FatBoy BETA Soundfont updated to version 0.74

Post by cwadge » Sat Mar 10, 2018 9:52 pm

I may not be able to work on it as consistently going forward, but in the meantime I've made some more changes to FatBoy (v0.74) as we push along towards something resembling a finished product.

https://pub.dotbalm.org/misc/FatBoy-v074.7z

Changelog:
• Added hand-built concert harp I made from scrap samples. The samples were beautiful, authentic-sounding, and... totally broken. I had to remove something like ~20db(!) of white noise, correct DC bias, and do some minor frequency tuning. But in the end, I think it's one of the better sounding MIDI harps out there.
• More minor adjustments to attenuation.
• Corrected an occasional click artifact with trombone when very short notes played (thanks to SierraGuy81 for the report). I believe it is totally fixed in FatBoy v0.74 (compare: v0.72 / v0.74)
• Better spacial orientation for several instruments.
• Light default reverb added to a few instruments, e.g. the flute, to more closely match the Roland precedent.

As usual, please let me know if you run into any problems with this version.

User avatar
almeath
Posts: 92
Joined: Fri Mar 14, 2008 1:40 pm
Location: Australia

Post by almeath » Sun Mar 11, 2018 4:18 am

This is how version 0.74 sounds via Core Audio in macOS 10.13, using the opening credits to TIE Fighter Collector's Edition:

http://userweb.eftel.com/~almeath/mac/TIE_FB.mp3

In comparison to SGMv2.01-Sal-Guit-Bass-V1.3:

http://userweb.eftel.com/~almeath/mac/TIE_SGM.mp3

It holds up very well against the much larger SGM but the trumpet seems to be fading out at times?

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

Post by cwadge » Sun Mar 11, 2018 7:27 am

almeath wrote:This is how version 0.74 sounds via Core Audio in macOS 10.13, using the opening credits to TIE Fighter Collector's Edition:

http://userweb.eftel.com/~almeath/mac/TIE_FB.mp3

In comparison to SGMv2.01-Sal-Guit-Bass-V1.3:

http://userweb.eftel.com/~almeath/mac/TIE_SGM.mp3

It holds up very well against the much larger SGM but the trumpet seems to be fading out at times?
First off, thank you for the excellent, excellent bug report. I really couldn't ask for better; two recorded samples of a specific MIDI track and everything.

As for the issue, this is a weird one. First thing that I noticed as a [former] musician myself was that the use of trombones is a very strange choice for a variation on the imperial march. Apparently this is a thing:
HunterZ wrote: ...
I noticed that the music in X-Wing sounds noticeably better when the SC-88 is in SC-55MkII mode than in SC-88 mode. Some of the horned instruments (which sound the most different between SC-55MkII and SC-88) in the game's soundtrack do weird things in SC-88 mode that end up sounding silly.

(http://www.vogons.org/viewtopic.php?p=2 ... a4#p201882)
The other thing was the MIDI itself. It does sound like it's dropping out, so I dug a little deeper to see what's happening under the hood.

Supposedly this game is straight-up General MIDI, but I found something even more unusual when I dumped the raw MIDI signal straight out of the game. That is, it doesn't seem to be an instrument dropout per se, the whole brass tracks drop out there in the MIDI itself. And when I try to fast-render the title MIDI with FluidSynth, it throws a bunch of these:

Code: Select all

fluidsynth: error: Unrecognized MIDI event
I think it's possible the iMuse implementation in Tie Fighter is doing something that's not quite GM or even GS (I'm running FluidSynth in GS mode right now for testing). Looking into the code, I found where the error is being called... apparently it's a totally unexpected/unhandled default condition:

Code: Select all

default:
			/* Can't possibly happen !? */
			FLUID_LOG(FLUID_ERR, "Unrecognized MIDI event");
			return FLUID_FAILED;
If / when I wind up with a little extra cash, I really need to pick up a used late model Sound Canvas (one with a USB port). It would help troubleshooting things like this immensely.

And here I was expecting some error in my preset parameters or something. :shock: I definitely need to spend more time triaging this. In the meantime, please let me know if you spot anything else that sounds weird, off, or just crappy. I really appreciate the feedback.

User avatar
almeath
Posts: 92
Joined: Fri Mar 14, 2008 1:40 pm
Location: Australia

Post by almeath » Sun Mar 11, 2018 10:09 am

Thanks for taking the time to dig deeper into that issue. I wonder why SGM glosses over those errors - must be all that reverb drowning it out?

Just to reassure you, here is an example from King's Quest VI, likewise via Core Audio.

FatBoy handles "Beauty's Theme" .. well, beautifully:

http://userweb.eftel.com/~almeath/mac/KQ6_FB.mp3

Whereas SGM is somewhat harsh and unbalanced:

http://userweb.eftel.com/~almeath/mac/KQ6_SGM.mp3

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

Post by cwadge » Sun Mar 11, 2018 11:29 pm

almeath wrote:Thanks for taking the time to dig deeper into that issue. I wonder why SGM glosses over those errors - must be all that reverb drowning it out?
That might be. I am adding light verb to many instruments that would naturally reverberate regardless of circumstances, but for the most part I want it to be up to a) the user and b) the composition how much reverb there is in the mix. E.g. if a game has a wet room mix for a big, open area and then a dry room mix for a small pub, I want it to sound just how the designer intended it. On the other hand, if the user wants to crank the verb MT-32 style, the instruments should still work well and not clash too badly.
almeath wrote:Just to reassure you, here is an example from King's Quest VI, likewise via Core Audio.

FatBoy handles "Beauty's Theme" .. well, beautifully:

http://userweb.eftel.com/~almeath/mac/KQ6_FB.mp3

Whereas SGM is somewhat harsh and unbalanced:

http://userweb.eftel.com/~almeath/mac/KQ6_SGM.mp3
Hahaha, there is some irony here. The nylon string guitar SGM is using sounds very much like a variation on the one I recorded in my garage almost 20 years ago. I haven't picked apart the raw samples, but I'm 90% sure because of the multiple velocity recording. My original version (with many tweaks over the years) is still the default nylon guitar in UHD3.

The guitar I used for that recording was a pawn shop special with horrible sustain and some neck buzz I couldn't get rid of, but I got the best recording of it I knew how to at the time. In contrast, the new nylon string in FatBoy sounds like it was recorded from a much, much nicer Spanish guitar that rings like a bell, but it's only a single velocity recording and some of the samples were recorded & processed inconsistently. I fixed it up and made that the default guitar in FatBoy. Do you prefer the old or new nylon string?

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

FatBoy BETA Soundfont updated to version 0.751

Post by cwadge » Tue Mar 13, 2018 2:13 am

Another day, another FatBoy version. This one is the product of tester feedback, including some great SC-88 baseline recordings, and lots and lots of fine tuning.

https://pub.dotbalm.org/misc/FatBoy-v0751.7z

To help demonstrate the newly tuned drum/instrument mix in this version (though one particular GS bass instrument referenced in this track is still missing in FatBoy), here's an example of the "Ah, Geeze!" multiplayer map from Duke Nukem 3D, Episode 1:

▶ "Ah, Geeze!" FBv0.751

Ye Olde Changelog:
• Completely reworked English Horn to sustain/vibrato much less abrasively, especially when solo.
• Volume fine-tuning of all non-percussion presets to more closely match the drum-to-instrument ratio of the SC-55/88.
• Fixed attack issues with a few stringed instruments.

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

Re: FatBoy BETA Soundfont updated to version 0.751

Post by cwadge » Wed Mar 14, 2018 5:21 am

In the last test build of FatBoy, I used standard audio engineering digital peak methods to achieve exactly the same volume thresholds as the Sound Canvas synth modules many game soundtracks were written for:
cwadge wrote:Ye Olde Changelog:
• Completely reworked English Horn to sustain/vibrato much less abrasively, especially when solo.
Volume fine-tuning of all non-percussion presets to more closely match the drum-to-instrument ratio of the SC-55/88.
• Fixed attack issues with a few stringed instruments.
Unfortunately, this turned out to be the wrong approach. This method may work perfectly well for traditional synthesizers where presets are made from samples which are highly processed and normalized, but when applied to a SoundFont which makes use of highly realistic (and therefore highly varied) samples, those rules kinda go out the window.

The upside is that the discrepancy here between theory and effect has forced me to research better ways of looking at loudness in general. Thus, using the principles of PLOUD and using the loudest drums as a LUFS reference ceiling, I was able to tune FatBoy more accurately than I've ever tuned a SoundFont... well, ever. In fact the methodology worked so well, I may use the same method to go back and fine-tune UHD as well.

Expect a new beta version of FatBoy very soon, and perhaps a new version of UHD to follow. In the meantime, here's a sample of how the new, extremely precise balancing sounds with highly varied instruments in a mix:

▶ Discworld, track #55

Post Reply