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
almeath
Posts: 180
Joined: Fri Mar 14, 2008 1:40 pm
Location: Australia

Post by almeath »

The strings, for instance, appear to be sampled from an old model synthesizer and not an actual string section.
To me it is not noticeable in the games I have tested this in, but I am just casually into listening to MIDI music. In my opinion, SGM seems particularly well suited to the Sierra games for some reason. Perhaps it just more closely matches what I remember from older sound cards.
You might want to redownload the latest version of UHD3 (same link above); I think it sounds even better now than it did before:
Thanks, it does sound very good, and I will continue to use it in games where SGM sounds overpowering.
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

Post by cwadge »

almeath wrote:To me it is not noticeable in the games I have tested this in, but I am just casually into listening to MIDI music. In my opinion, SGM seems particularly well suited to the Sierra games for some reason. Perhaps it just more closely matches what I remember from older sound cards.
Yeah, this kind of thing is totally subjective. I remember my friend, who is an accomplished studio musician, saying he preferred the SC-55 over the SC-88 or SC-8850. To me there's simply no comparison in depth and quality, but his take was that the 55 was "warmer". From my perspective, it's like comparing a Ford Model A to a '64½ Mustang and a '67 GT-500, respectively. :?

But ultimately it's about what sounds best to you and for what you're doing with it. If you like a particular sound better for something than another, I say go with that. It's certainly what I do.
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

UHD updated to 3.21

Post by cwadge »

Since I'm home sick anyway, I finally got around to ripping out all the consumer-oriented sound systems from my Linux workstation and using JACK as the controlling framework. This gave me access to much more precise and powerful audio analysis techniques, with which I was able to fine-tune instrument volumes even better within standard thresholds, especially relative to FluidSynth and Timidity++.

I also found and fixed a strange looping error within the lower two octaves of the "church organ" preset. In fact, the loop tags were totally missing from those samples. I'm not sure if that cropped up when I ported the SF2 from Vienna to Polyphone or what, but it loops normally now.

I'd recommend anybody using UHD3 download the latest version: https://pub.dotbalm.org/misc/UHD3.7z
User avatar
tsoliman
ScummVM Developer
Posts: 404
Joined: Wed Jan 19, 2011 3:47 pm
Location: USA

Post by tsoliman »

Minor request: can you rename the SF2 file before 7zipping it to include the version? maybe something like UHD321.sf2 or something.

It is difficult (I have to use hashes) to figure out if I am using the latest one on all my systems that run ScummVM :)
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

Post by cwadge »

tsoliman wrote:Minor request: can you rename the SF2 file before 7zipping it to include the version? maybe something like UHD321.sf2 or something.

It is difficult (I have to use hashes) to figure out if I am using the latest one on all my systems that run ScummVM :)
You're absolutely right. The version info is encoded into the SF2 metadata, but that's not super transparent to userland. From now on I'll include the full version (major+minor) in the name string, and also symlink the latest version to https://pub.dotbalm.org/misc/UHD3.7z so that link will always be current.
User avatar
tsoliman
ScummVM Developer
Posts: 404
Joined: Wed Jan 19, 2011 3:47 pm
Location: USA

Post by tsoliman »

The drums finally don't need more cowbell in my LoL test case :)

Good job balancing the volumes!
Last edited by tsoliman on Thu Feb 22, 2018 1:13 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 »

tsoliman wrote:The drums finally don't need my cowbell in my LoL test case :)

Good job balancing the volumes!
Thank you, kind sir.

JACK really helped me to get down into fine-grained signal analysis and do some real fine-tuning.

Image

I didn't actually have to balance the drum sets at all, but some of the high-numbered percussive instruments in the GM set definitely needed a little tweaking. In terms of changes to individual instrument sets was all pretty minor, but I think it all adds up to a fairly dramatic result. The overpowering Warcraft II soundtrack demonstrates this pretty well. It's clear the composer was going for "really big Russian epic" and he wanted it to have a huge, grandiose sound. Yet, there's a lot of subtle background instrumentation that came dangerously close to being completely drowned out in previous versions of UHD.
Last edited by cwadge on Sat Feb 24, 2018 8:49 pm, edited 1 time in total.
User avatar
almeath
Posts: 180
Joined: Fri Mar 14, 2008 1:40 pm
Location: Australia

Post by almeath »

I tested the latest UHD version and it is sounding very nice and balanced using FluidSynth. My reference point is the opening two tracks in Kyrandia 2.

Is there any chance you could provide a version that is optimized for the Apple DLS synth?

The aforementioned tracks in Kyrandia 2 are a good point of comparison, as you may notice the bass is slightly overpowering when using the Apple DLS synth.
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

Post by cwadge »

almeath wrote:I tested the latest UHD version and it is sounding very nice and balanced using FluidSynth. My reference point is the opening two tracks in Kyrandia 2.
Thanks, glad all that fine tuning paid off! Sometimes being sick and miserable is the best motivator for pet projects.
almeath wrote:Is there any chance you could provide a version that is optimized for the Apple DLS synth?

The aforementioned tracks in Kyrandia 2 are a good point of comparison, as you may notice the bass is slightly overpowering when using the Apple DLS synth.
The problems with Apple DLS, from my limited observations, is two-fold. The first is the strange EQ, and I haven't seen any way for a user to actually adjust it. I'd think a flat EQ would make the most sense by default, but apparently this is not the Apple way.

The second DLS issue is a huge amount of extra reverb added on top of the synth, regardless of whether the MIDI, systems settings, or SoundFont call for verb. This makes a lot of stuff seem either too "busy", washed out, or sometimes straight up chaotic (especially if the MIDI itself adds its own heavy reverb).

Because of these, probably the best course of action is just to use FluidSynth on OS X instead. That's what I wound up doing on my MacBook, and it's worked very well so far. So much more control over Fluidsynth and, believe it or not, it seems more responsive in terms of latency too.

Now, that said, I may do a custom spin of UHD just for Apple DLS. But it would take a lot of work, so if I did build one, it'd probably just be a one-off rather than a separate development track. I'd have to re-EQ a lot of instrument samples, which also means re-looping, and also take down all reverb settings on individual presets to 0, which also implies yet another volume envelope re-tune.
User avatar
almeath
Posts: 180
Joined: Fri Mar 14, 2008 1:40 pm
Location: Australia

Post by almeath »

Please do not go to the trouble unless you feel an interest. I only mentioned it because it is a bit of a pain to use FluidSynth on the Mac, outside of ScummVM which has it built-in.

Since DOSBox and Boxer have no API to connect to it, it seems it has to be used with various front ends that must be run separately in the background before launching the emulators.

I might PM you to ask how you are running it on your Macbook. I would like to completely avoid the Apple DLS / coremidi synth and use FluidSynth system-wide with either SGM or UHD sound font depending on the game.
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

Post by cwadge »

almeath wrote:Since DOSBox and Boxer have no API to connect to it, it seems it has to be used with various front ends that must be run separately in the background before launching the emulators.
Ahh, I was using coremidi for MIDI routing between FluidSynth and client apps, which just provides the API/port. It doesn't actually do anything to alter the sound, just provides the bus. I don't particularly like core these days (remember when Apple used to be the cool multimedia platform?), but at least it's built-in.

Qsynth makes this even easier as a front-end for FluidSynth. Unfortunately I haven't yet found good pre-built binaries for recent versions of OS X, so maybe I need to build a package and make that available.
User avatar
almeath
Posts: 180
Joined: Fri Mar 14, 2008 1:40 pm
Location: Australia

Post by almeath »

The only front end options I know of are Qsynth or SimpleSynth. I could not get either to work yet. Can you let me know if you figure it out? :?

Is my understanding here correct? :

1. Install FluidSynth via terminal

2. In DOSBox (SVN) or Boxer 2 Alpha, route the midi via coreaudio with:

[midi]
device=coremidi
config=2

(assuming that FluidSynth will occupy the second available port?)

3. Run FluidSynth (via a bash script if wanted)

4. Run DOSBox/Boxer and then it should be playing the midi using Fluidsynth?

What I am not clear on his how SF2 sound fonts can be used this way. I assume this is where a front end comes in.
User avatar
tsoliman
ScummVM Developer
Posts: 404
Joined: Wed Jan 19, 2011 3:47 pm
Location: USA

Post by tsoliman »

almeath wrote: What I am not clear on his how SF2 sound fonts can be used this way.
The command line of fluidsynth is

Code: Select all

fluidsynth [options] [soundfonts] [midifiles]
So you basically run

Code: Select all

fluidsynth /path/to/soundfont.sf2
User avatar
cwadge
Posts: 107
Joined: Thu Feb 08, 2018 9:02 pm
Location: USA
Contact:

Post by cwadge »

tsoliman wrote: ...
So you basically run

Code: Select all

fluidsynth /path/to/soundfont.sf2
Exactly. By default, if run without '.mid' files to parse, FluidSynth just waits around for input events through a MIDI driver... just like a physical synthesizer module sitting on your desk. Qsynth just gives FluidSynth that "synthesizer module on your desk look" to match.

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

Sound Canvas enhanced LSL3 / UHD3 side-by-side

Post by cwadge »

OK, I thought this was kind of interesting. I put an SC-88xx "enhanced" version of the LSL3 "Patti" theme side by side with the same MIDI through UHD3.

The left channel is exclusively the Quest Studios Sound Canvas enhanced MT-32 composition. The right channel is the exact same MIDI, but piped through UHD v3.21 and FluidSynth (default reverb, chorus, etc).

https://pub.dotbalm.org/audio/LSL3_SC_UHD.mp3

I'd originally modeled the sound envelopes off of 80's-90's Roland synths, but I didn't realize how close it actually came. Obviously there are differences, especially the analog hiss in the left channel, but I think the influence is pretty clear.
Post Reply