GZDoom 3.0.0 Released

News about ZDoom, its child ports, or any closely related projects.
[ZDoom Home] [Documentation (Wiki)] [Official News] [Downloads] [Discord]
[🔎 Google This Site]

Moderator: GZDoom Developers

User avatar
Enjay
 
 
Posts: 26517
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: GZDoom 3.0.0 Released

Post by Enjay »

When you say "softer" do you mean quieter or less bassy?

There has been quite a bit of analysis done recently on the differences between FMOD and OpenAL (much of the analysis thanks to Nash and others) and it seems quite likely that FMOD "cheated" a little to make things sound more bassy/powerful and thereby give a perceived "better" sound (in a similar vein to The Loudness War.

When I first started using OpenAL I thought the sound was generally less powerful sounding and more subdued, particularly with bassy sounds, often taken from modern games. However, now that I've got used to OpenAL, I actually think it sounds better/crisper/more dynamic and more subtle.

If it's not that, there is also something going on with stereo sound files but I'm not so sure about the implications of that.
User avatar
silentzora
Posts: 450
Joined: Sun Jan 04, 2004 6:24 pm
Contact:

Re: GZDoom 3.0.0 Released

Post by silentzora »

Enjay wrote:When you say "softer" do you mean quieter or less bassy?

There has been quite a bit of analysis done recently on the differences between FMOD and OpenAL (much of the analysis thanks to Nash and others) and it seems quite likely that FMOD "cheated" a little to make things sound more bassy/powerful and thereby give a perceived "better" sound (in a similar vein to The Loudness War.

When I first started using OpenAL I thought the sound was generally less powerful sounding and more subdued, particularly with bassy sounds, often taken from modern games. However, now that I've got used to OpenAL, I actually think it sounds better/crisper/more dynamic and more subtle.

If it's not that, there is also something going on with stereo sound files but I'm not so sure about the implications of that.
It may be a mixture of everything you mentioned, actually. The sounds I'm having issues with are... well... were stereo. I had split them to mono, but that didn't seem to solve any issues. Bassy sounds do seem to be most affected, but it definitely sounds like it's both the bass and the volume itself that seem to be lowered.

Definitely looking into alternative sounds, though. Decent energy/plasma sounds seem to be difficult to come by. :lol:
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 3.0.0 Released

Post by Graf Zahl »

The overall volume with identical settings is indeed a bit lower with OpenAL. So just turn up the volume slider a bit to compensate.
Regarding bass, Nash's analysis showed that FMod turned up the bass and turned down the high frequencies to give the sound more 'oomph'. That is altogether a matter of taste.
As for stereo mixing, it's not 100% identical right now but there's hope it will be addressed in some later OpenAL version (That's one of the good things, if a new version becomes available ot can replace the current one out of the box.)
One more thing: The 64 bit version of OpenAL I compiled myself from the current Git repo. For 32 bit this did not work, because I was unable to build it with the XP toolset so this is still the official one. This was mostly done because the reverb code has seen a major overhaul recently.
User avatar
silentzora
Posts: 450
Joined: Sun Jan 04, 2004 6:24 pm
Contact:

Re: GZDoom 3.0.0 Released

Post by silentzora »

Graf Zahl wrote:The overall volume with identical settings is indeed a bit lower with OpenAL. So just turn up the volume slider a bit to compensate.
Regarding bass, Nash's analysis showed that FMod turned up the bass and turned down the high frequencies to give the sound more 'oomph'. That is altogether a matter of taste.
As for stereo mixing, it's not 100% identical right now but there's hope it will be addressed in some later OpenAL version (That's one of the good things, if a new version becomes available ot can replace the current one out of the box.)
One more thing: The 64 bit version of OpenAL I compiled myself from the current Git repo. For 32 bit this did not work, because I was unable to build it with the XP toolset so this is still the official one. This was mostly done because the reverb code has seen a major overhaul recently.
Sounds good to me. I'll keep my eyes peeled for a dev build once OpenAL updates with better stereo support. Keep up the good work, and thanks for the info on what's going on. :)
ENEMY!!!
Posts: 5
Joined: Sun Jan 08, 2017 3:27 pm

Re: GZDoom 3.0.0 Released

Post by ENEMY!!! »

In the previous version of GZDoom that I had, there was a visual bug where at a certain sector brightness level the walls came out a lot darker than they should, but it seems to have been fixed for version 3.0.0.
User avatar
Zanieon
Posts: 2059
Joined: Tue Jan 13, 2009 4:13 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support
Location: Somewhere in the future
Contact:

Re: GZDoom 3.0.0 Released

Post by Zanieon »

Well, this a great advance specially in the renderer but seems it was at the cost of sound, in my end everything pretty much sounds mono and OpenAL seems to have a forced active LPF with Hard Limiter that simply annoys me because when there's too many sounds playing all what i hear is the deep bass in an attempt to OAL trying to volume down all treble.
User avatar
Nash
 
 
Posts: 17433
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia
Contact:

Re: GZDoom 3.0.0 Released

Post by Nash »

The hard limiter seems to be a modern soundcard feature I think... no matter what game I play, if too many sounds are overlapping and the master volume overshoots 0 dBFS, some hard compression/limiting seems to be applied. It's like this with all games on my computer...

(By comparison, my recording studio computer's audio interface doesn't have this feature so if even a single tiny sound overshoots the volume by like .1 dB over 0 dBFS... you will hear this nasty, NASTY clipping unlike anything you've ever heard.)
User avatar
Zanieon
Posts: 2059
Joined: Tue Jan 13, 2009 4:13 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support
Location: Somewhere in the future
Contact:

Re: GZDoom 3.0.0 Released

Post by Zanieon »

Well by that way it's not a soundcard feature, Windows 10 have a hard limiter enabled by default but on my machine i leave it off, OAL anyway still seems to LPF everything and if these Basslines reaches the 0 dBFS it goes nuts and cutoff all treble, i kinda knows that this is not a problem with OpenAL itself but rather a problem with the way it is implemented into the engine which by now seems to be something very simple, well seeing that FMod had a lot of options to use and OAL has only two, i think the problem lies there.
User avatar
Chris
Posts: 2940
Joined: Thu Jul 17, 2003 12:07 am
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: GZDoom 3.0.0 Released

Post by Chris »

OpenAL won't apply a low-pass filter to anything if the engine doesn't tell it to (or I should say, OpenAL Soft won't, which is what GZDoom ships with). Without the engine telling it to use a low-pass filter, it at most does resampling, which by default is Linear just like FMOD. It's interesting that you're hearing a low-pass effect, considering the reports up to now were that OpenAL has slightly more top-end frequencies than FMOD (with a spectral analysis to show it).

The limiter only kicks in when the amplitude goes out of range and would distort. So if the limiter is having a noticeable effect, there would otherwise be much more distortion going on. There are a few ways to deal with it if it's really an issue for you. First, turn down the game volume and turn up your speakers. OpenAL won't limit the output if the signal won't be clamped.

Alternatively, if you don't care about the distortion, use the official alsoft-config utility (temporary link until a proper 1.18 release is done). Under the Advanced Settings section for Playback, uncheck Enable Gain Limiter then click Apply. Or if you don't want to use the app, simply create/modify the %AppData%\alsoft.ini file (where %AppData% should be the location of your user's Application Data folder) and add:

Code: Select all

[general]
output-limiter = false
User avatar
Zanieon
Posts: 2059
Joined: Tue Jan 13, 2009 4:13 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support
Location: Somewhere in the future
Contact:

Re: GZDoom 3.0.0 Released

Post by Zanieon »

Yeah it was the resampling that was fooling me, it sounded LPF for the earphones i have because they actually have a good range in treble but i was not getting it due to that.

Though even disabling the limiter in the tool you said, seems it is still active in the game (Plasma Rifle at least still seems to turn down the volume a bit when in a slaughterfest).

Though seems that stereo sounds seems to be completely gone in this, i remember the Wiki saying that sounds which plays from the world will get downmixed to mono but that wasn't the case of sounds playing from the weapons or without any attenuation established, like A_PlaySound with ATTN_NONE or (Local)AmbientSound in ACS.

Well thanks for that, it helped already.

EDIT: Speaking about filters, with OpenAL being the solo sound backend now, it is possible to revive this feature request? It will just take a minute to transfer this to a Git-suggestion anyway.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 3.0.0 Released

Post by Graf Zahl »

Speaking of configuring OpenAL, I am not sure I like that this is all global. Right now GZDoom is the only thing I use that requires OpenAL but what if you use it with several games that have sufficiently different audio properties so that you may want to set it differently? I really would prefer if some of this stuff could be set through an advanced sound setup menu and only apply the settings to GZDoom (or whatever other app is being used.) Is there at least a way to toggle the gain limiter programmatically?

Also, one thing people tend to do wrong with audio is turn up the app volume too much. This puts a hard limit on the headroom that is left. It is always advisable to keep the app volume at a smaller volume and either turn up your computer's output or on the speaker/amplifier. In the analogue realm there's just far better options to amplify a sound than in digital where you are limited by value ranges of the sample formats.

I have set my in-app volume to 0.25 and let the rest do by the output hardware. If you use maximum app volume as the genreal setting for outputting sound you sacrifice nearly the entire headroom the speakers got. So effectively you set your games to full "loudness war" mode. And we all know that loudness sacrifices sound quality. After doing some minor volume adjustment to account for OpenAL a bit more quiet than FMod, I never experienced any sort of quality degradation, even with very sound-heavy mods

In that regard one question to the experts: If the sound is played at 16 bit it is obviously that it clips if the amplitude exceeds the value range - but what is if the sound was sent to the hardware as floats? Will this be handled differently or will it also be clipped by some later stages in the processing chain? I believe FMod by default played through Windows WASAPI with floating point samples. Can this be the issue here?
I can see that this can be set through the config utility. Can it also be set through the app?
dpJudas
 
 
Posts: 3036
Joined: Sat May 28, 2016 1:01 pm

Re: GZDoom 3.0.0 Released

Post by dpJudas »

Graf Zahl wrote:In that regard one question to the experts: If the sound is played at 16 bit it is obviously that it clips if the amplitude exceeds the value range - but what is if the sound was sent to the hardware as floats? Will this be handled differently or will it also be clipped by some later stages in the processing chain? I believe FMod by default played through Windows WASAPI with floating point samples. Can this be the issue here?
The mixer built into WASAPI only supports floats. You need to initialize the sound in exclusive mode to get anything else (kind of how the DWM only supports RGBA8 and any other format requires a fullscreen mode). I can't remember if WASAPI allows you to specify a different format if not in exclusive mode, but if it does I am pretty sure it is converted to float when mixed into the shared stream sent to the sound card.

Edit: I'm not sure if it is still correct that the mixer only supports floats - I can't seem to find the sections in MSDN anymore saying this, although it does still hint that Windows Vista had this limitation. For newer versions of Windows it appears to be a global setting on the sound card that you can change, but never the less an application wishing to maximize quality will have to use the frequency and sample format specified by IAudioClient::GetMixFormat because any other format will be resampled to this format.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 3.0.0 Released

Post by Graf Zahl »

Which makes sense, considering that the sound hardware is shared between apps, so specifying any other format will inevitably require another resampling pass.
I haven't looked too closely at OpenAL's mixer yet, but does it support this form of output?
User avatar
Chris
Posts: 2940
Joined: Thu Jul 17, 2003 12:07 am
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: GZDoom 3.0.0 Released

Post by Chris »

Graf Zahl wrote:Speaking of configuring OpenAL, I am not sure I like that this is all global. Right now GZDoom is the only thing I use that requires OpenAL but what if you use it with several games that have sufficiently different audio properties so that you may want to set it differently? I really would prefer if some of this stuff could be set through an advanced sound setup menu and only apply the settings to GZDoom (or whatever other app is being used.) Is there at least a way to toggle the gain limiter programmatically?
The general idea is that any specific options that apps would be interested in would be exposed in some way (through extensions, or just taking advantage of what the spec allows). The global config options would either be user- or system-specific that should apply to all OpenAL apps for the user/system, or act as defaults or overrides (in case the app is unaware or incorrectly thinks it knows better and forcefully sets something the user doesn't want). If there's anything specific you feel is important and/or should be prioritized (an extension for the resampler is coming), I'll take suggestions.

In regards to the limiter, I don't think it should be too much of a problem to at least provide a toggle. More general control over its properties (the actual limit, the attack rate, release rate, etc), will have to wait until I can get a better consensus on what should be available.
In that regard one question to the experts: If the sound is played at 16 bit it is obviously that it clips if the amplitude exceeds the value range - but what is if the sound was sent to the hardware as floats? Will this be handled differently or will it also be clipped by some later stages in the processing chain?
As far as I know, all hardware has limits given that it needs to transform the digital amplitude values into analog voltages for the speakers. These limits are -1 to +1 for floating point samples, -32768 to +32767 in signed 16-bit int, -128 to 127 in signed 8-bit int, etc. They all cover the same output range, the difference just dictates how accurate it can be to a given amplitude value within its set output range (and the more accurate it can be, the lower the noise floor is for quantization/dithering, thus more dynamic range being available). Aside from float's increased dynamic range over 16-bit, the ability for samples to go out of the normalized -1 to +1 range is to aid intermediate processing. It allows samples to go out of range without being clamped, in case further processing will bring it back in range, but it doesn't help the DAC.
Graf Zahl wrote:Which makes sense, considering that the sound hardware is shared between apps, so specifying any other format will inevitably require another resampling pass.
I haven't looked too closely at OpenAL's mixer yet, but does it support this form of output?
By default, OpenAL will output float samples if possible (which it almost always is, unless handling the hardware directly). However, given what I said above, the -1 to +1 range of floating point is still the physical limit for DACs, so unless the system does more attenuation after OpenAL sends the samples out, anything outside of -1 to +1 is as good as being -1 or +1.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 3.0.0 Released

Post by Graf Zahl »

Makes sense, I was just wondering how FMod apparently manages to avoid a breakdown of the sound in such case. Do you have any idea?
Post Reply

Return to “ZDoom (and related) News”