Jump to content
The Dark Mod Forums

Recommended Posts

Posted

I have tried to update the wiki page and realized that the whole system is quite messy.

This awful system of translating one values to other values, with total confusion of EAX / EFX values...

And no presets, that's why Judith had to translate them by hand (sorry for that).

I simply don't know how to update the section on properties now.

 

I think for 2.07 it would make sense to do the following:

  1. Implement a new set of properties, which will have exactly the same names as the EFX constants (without the leading "AL_EAXREVERB_"). These properties would be passed to EFX as is, no need to convert bells to dolls.
  2. Implement a "preset" property, similar to what "environment" property meant before EFX update killed it. Enumerate all presets listed in efx-presets.h and make them all available by number.
  3. All of these changes will be available when "Version 2" is specified in the first line of the file. The "Version 1" definitions continue to work as they do now (forever).

If we do this, then we can simply reference the OpenAL EFX manual in wiki, which already has detailed explanation of all properties.

Also, we can list preset names with their numbers in the wiki --- mappers will most likely simply use this number. The number of available presets will increase of course.

 

The possible downside is breaking compatibility with Doom 3 and EAX (although kcat recently noted that at least one property is converted incorrectly from EAX to EFX, so EAX compatibility is not perfect now).

But I have a feeling that both are rather dead now, so maintaining this compatiblity does not provide us with any additional knowledge of EFX.

 

P.S. If we recall another TODO for 2.07, then it is a global revision of all stock sound shaders and putting no_efx in some.

  • Like 2
Posted

I agree that it would be better to have EFX system that reflects the actual OpenAL standard, instead of being something on its own. Mappers could just copy and paste presets found elsewhere.

Posted

Hello Judith,

 

Thanks a lot for the presets and thanks a lot @stgatilov for the wiki text.

 

Just created the set-up as per the instructions and copied in the cave reverb of yours. Works perfectly and adds significantly to the mood of the settings!

 

Can't wait to hear the other presets in action, expecially the sewer script as I think I have a fitting environment for it.

  • Like 2
  • 3 weeks later...
  • 3 weeks later...
Posted

How about settings for "rooms" with rain or snow or fog in them?

Probably AL_EAXREVERB_AIR_ABSORPTION_GAINHF:

The Air Absorption Gain HF property controls the distance-dependent attenuation at high frequencies caused by the propagation medium. It applies to reflected sound only. You can use Air Absorption Gain HF to simulate sound transmission through foggy air, dry air, smoky atmosphere, and so on. The default value is 0.994 (-0.05 dB) per meter, which roughly corresponds to typical condition of atmospheric humidity, temperature, and so on. Lowering the value simulates a more absorbent medium (more humidity in the air, for example); raising the value simulates a less absorbent medium (dry desert air, for example).

 

 

It is called air absorption hf in the current effects system, and it must currently be set in millibels instead of gain.

However, this does not apply to direct sound --- those should be affected by sound source settings (outside of EFX).

 

To be honest, the more I look into EFX effects guide, the more I see that D3 integration with it is rudimentary.

It does not take into account at least the following things:

1. Listener close to walls in a big room hears things differently than in the middle of the room.

2. When listener-source direct path is blocked, the sound should be very different (i.e. occlusion).

3. The sounds coming from neighboring rooms should be handled differently, including different reverb properties and setting some overall direction for them.

  • Like 1
Posted (edited)

To be honest, the more I look into EFX effects guide, the more I see that D3 integration with it is rudimentary.

It does not take into account at least the following things:

1. Listener close to walls in a big room hears things differently than in the middle of the room.

2. When listener-source direct path is blocked, the sound should be very different (i.e. occlusion).

3. The sounds coming from neighboring rooms should be handled differently, including different reverb properties and setting some overall direction for them.

 

I noticed that myself, it's basically using the reverb settings of a room the player currently stands in. Sounds coming from other rooms don't have properties of those rooms, even if you just stand at the open doorway. You can check that by standing next to visportal with location separator and going through it repeatedly.

Edited by Judith
  • Like 1
Posted

I have got to doing a small revamp of EFX definitions (4815)

There is an important question.

 

OpenAL supports having several different effects on single effect slot.

Aside from EAXREVERB, there are also: REVERB (reduced version of eaxreverb), CHORUS, DISTORTION, ECHO, FLANGER, FREQUENCY_SHIFTER, VOCAL_MORPHER, PITCH_SHIFTER, RING_MODULATOR, AUTOWAH, COMPRESSOR, EQUALIZER.

Speaking solely about room settings, does it make sense to support any other effects than EAXREVERB?

After reading a bit on these effects, it seems that most of they make sense only for vocal/music studios. REVERB and ECHO are the only things interesting, but it seems that EAXREVERB covers them both. Pitch modulation is unlikely interesting (recall that it is configured room-wise), and EQUALIZER is probably not that important.

  • Like 1
Posted

Aside from EAXREVERB, there are also: REVERB (reduced version of eaxreverb), CHORUS, DISTORTION, ECHO, FLANGER, FREQUENCY_SHIFTER, VOCAL_MORPHER, PITCH_SHIFTER, RING_MODULATOR, AUTOWAH, COMPRESSOR, EQUALIZER.

Speaking solely about room settings, does it make sense to support any other effects than EAXREVERB?

Some of the effects could maybe be used to alter the sound of dream or other surreal / mystic scenes.

The equalizer might additionally allow simulation of environments with special absorption characteristics (underwater or thick fog?).

Posted

Equalizer would be good for sound dampening over distance and around obstructions as well.

It would get applied to all sound the avatar hears while standing in the area with the assigned effect. So i would expect that it could not be applied to specific sources only (wich would be great for dampening a thunderstorm while inside).

Posted

So...

 

The current system requires setting up locations and working visportals

associated with each location.

 

How about allowing mappers to define EFX zones with area brushes like the SEED system

or the water system?

 

This would reduce the amount of entities needed for this.

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Posted

So will 2.07 give us soft shadows - for sound? ;)

Perhaps you have too much hope for these changes.

It has no new capabilities compared to TDM 2.06.

Just it makes it somewhat easier to use.

 

How about allowing mappers to define EFX zones with area brushes like the SEED system

or the water system?

If you point me to some particular example, I'll try to see if it is possible.

But if location entity is needed for ambient sounds, then probably it makes no sense to do anything,

  • 3 weeks later...
Posted

If you point me to some particular example, I'll try to see if it is possible.

But if location entity is needed for ambient sounds, then probably it makes no sense to do anything,

 

I know you're on vacation but I guess it's no harm updating the thread here anyway...

 

At the simplest level, it would be great to be able to define a location with a trigger_once brush

 

GetPhysics()->SetContents( CONTENTS_TRIGGER ); ?

 

or like the seedEntityBounds attribute. Ideally, however, this "Location Brush" would act like a parent visportal

and enforce portal bounding behavior within the location.

 

The current system of looking for every hole in a location and making a location separator seems to be very fragile

and cumbersome.

 

Just dragging a brush around the area you want to be a Location would not only benefit EFX but location management in general.

 

 

On a related note...

 

Grayman's upcoming mission is perfectly configured for EFX (as I can tell), yet produces no reverb.

 

Is there anything short of compiling a Debug build that would help to identify what is keeping this from working?

  • Like 1

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

  • 4 weeks later...
Posted

The current system of looking for every hole in a location and making a location separator seems to be very fragile

and cumbersome.

Just dragging a brush around the area you want to be a Location would not only benefit EFX but location management in general.

I'm afraid I don't know well how these things are working.

Anyway, two questions:

1) Are you talking about another way of specifying locations in general? I mean, it also affects ambient sounds...

2) While setting up a box volume would work for box-shaped rooms, there are many cases when it is impossible to cover two rooms with boxes so that they don't intersect.

 

Grayman's upcoming mission is perfectly configured for EFX (as I can tell), yet produces no reverb.

 

I think it was some case-sensitivity issue, probably already fixed.
  • Like 1
  • 1 month later...
Posted

Since from time to time I'm getting questions (and complaints ;)) about EFX system, I should probably address some of the most common misconceptions about its functionality.

 

First of all, it's not a magical system that will automatically propagate your sound just like in real life. It just applies a reverb filter with settings that change when you move from location to location, and not much else. It basically means that e.g.:

 

1. You will hear sounds coming from other EFX location with the reverb settings of the location you're currently in.

2. Changing EFX locations often will sound jarring, especially if they're small, there are big differences in settings, and player is running through them.

3. You will want to exclude fair amount of sounds from EFX reverb. Basically all non-diegetic (not coming from the game world) sounds and music.

 

Last but not least, if you expect some sort of automated approach, or want to do this quick-and-dirty way – don't. It will undermine your whole mapping effort, as people are much more sensitive to bad sound, than poor visuals. It is a careful handiwork, and it's better to abandon the whole idea, rather than trying to whip up something overnight. Have additional week or two for setting up and testing this, if you want your mission to sound really well.

  • Like 3
Posted (edited)

One and two was something that EAX had the ability to solve, I remember Creative demos showcasing those and plenty of other effects like sound reflecting on surfaces and changing sound depending on what material they were made, wood, rock, etc, so EFX should have those has well but EAX 4 was implemented (by Creative) in Doom 3 in a hurry and so they only implemented the basic stuff.

 

Also is good to mention for those that don't know, this stuff runs on the CPU, is not accelerated by sound cards like in the old days, so the more advanced the sound system is, the more heavy it will be, unless the team makes this stuff run on a separate CPU core, then is better to be conservative on EFX, TDM is still very CPU dependent and i don't know how good is its multicore support.

Edited by HMart
  • Like 2
  • 2 months later...
  • 1 month later...
Posted

I was getting this error:

 

WARNING:alEffectf(AL_EAXREVERB_ECHO_TIME, 0.060) failed: 0xa003
I tracked it to this setting in my reverb definition:
"echo time" "0.060"
When I look at the accepted range for AL_EAXREVERB_ECHO_TIME, I find that it's 0.075->0.250.
So 0.060 is out of range, thus the error (I guess).
Resetting echo time in the reverb definition to 0.075 caused the warning to go away.
I'm using the room settings defined in the OP, so anywhere it says echo time should be 0.060, that should be changed to 0.075.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recent Status Updates

    • JackFarmer

      "The Year of the Rat." 
      😄

      Al Stewart must be proud of you!
      Happy testing!
      @MirceaKitsune
      · 1 reply
    • datiswous

      I posted about it before, but I think the default tdm logo video looks outdated. For a (i.m.o.) better looking version, you can download the pk4 attached to this post and plonk it in your tdm root folder. Every mission that starts with the tdm logo then starts with the better looking one. Try for example mission COS1 Pearls and Swine.
      tdm_logo_video.pk4
      · 2 replies
    • JackFarmer

      Kill the bots! (see the "Who is online" bar)
      · 3 replies
    • STiFU

      I finished DOOM - The Dark Ages the other day. It is a decent shooter, but not as great as its predecessors, especially because of the soundtrack.
      · 5 replies
    • JackFarmer

      What do you know about a 40 degree day?
      @demagogue
      · 4 replies
×
×
  • Create New...