Jump to content
.kju

Brief overview on update audio tech for terrains (soundSetEnvironment in CfgEnvSounds)

Recommended Posts

1. by default terrains inherit from cfgEnvSounds root class via DefaultWorld (cfgWorlds) a standard soundSetEnvironment setup:
https://pastebin.ubuntu.com/25087883/

 

2. soundSetEnvironment use is very much recommended as it uses the new soundSet/soundShader tech - the old EnvSounds classes are backwards compatible still used if no fitting soundSet is found

3. one can change this per terrain in cfgWorlds terrain class and add "class EnvSounds: EnvSounds" with proper inheritance to DefaultWorld

 

class DefaultWorld
{
    class EnvSounds;
};
class CAWorld: DefaultWorld
{
};
class Tanoa: CAWorld
{
    class EnvSounds: EnvSounds
    {
        soundSetEnvironment[] = {...

 

4. soundSetEnvironment is a list (array) of soundSets

 

soundSetEnvironment[] = {"Meadows_Low_SoundSet","Meadows_High_SoundSet","Forest_Low_SoundSet","Forest_High_SoundSet","Forest_Rattles_SoundSet","Greek_Crickets_Day_SoundSet","Greek_Crickets_Night_SoundSet","Birds_Forest_Day_SoundSet","Birds_Meadows_Day_SoundSet","Wind_Low_SoundSet","Wind_High_SoundSet","Stratis_RainMeadows_Low_SoundSet","Stratis_RainMeadows_Medium_SoundSet","Stratis_RainMeadows_High_SoundSet","Stratis_RainHouses_SoundSet","Sea_SoundSet","Coast_SoundSet"};

 

5. Tanoa offers a second custom setup:

 

soundSetEnvironment[] = {"ForestMorning_SoundSet","ForestAfternoon_SoundSet","ForestNight_SoundSet","HousesDay_SoundSet","HousesNight_SoundSet","MeadowsDay_SoundSet","MeadowsNight_SoundSet","WindForest_Low_SoundSet","WindForest_High_SoundSet","WindMeadows_Low_SoundSet","WindMeadows_High_SoundSet","WindHouses_Low_SoundSet","WindHouses_High_SoundSet","RainForest_Low_SoundSet","RainForest_Medium_SoundSet","RainForest_High_SoundSet","RainMeadows_Low_SoundSet","RainMeadows_Medium_SoundSet","RainMeadows_High_SoundSet","RainHouses_High_SoundSet","Sea_SoundSet","Coast_SoundSet","Wind_Generic_Low_SoundSet","Wind_Generic_High_SoundSet"};

 

6. One has to overwrite/redefine the complete soundSetEnvironment definition if one wants to alter/customize it.

7. In CfgSoundSets a basic configuration is done and the soundShader assigned

 

class CfgSoundSets
{
    class Meadows_Low_SoundSet
    {
        soundShaders[] = {"Meadows_Low_SoundShader"};
        volumeFactor = 0.4;
        spatial = 0;
        loop = 1;
    };

 

8. Finally in CfgSoundShaders parameters define under what conditions the sound is to be played (volume parameter)

 

class CfgSoundShaders
{
    class Meadows_Low_SoundShader
    {
        samples[] = {{"A3\Sounds_F\environment\ambient\redesigned\meadows_low", 1}};
        volume = "0.85 * (1-0.5*forest)*(1-0.5*houses)*(1-sea)* (0.5*(windy factor[0.8,0.1])) * (1*(altitudeGround envelope [10,80,100,1000]))";
    };

 

---

 

Full lists for environment sounds:

 

CfgSoundSets

https://pastebin.ubuntu.com/25087942/

 

CfgSoundShaders
https://pastebin.ubuntu.com/25087956/

 

---

 

DefaultWorld
* Meadows_Low
* Meadows_High
* Forest_Low
* Forest_High
* Forest_Rattles
* Greek_Crickets_Day
* Greek_Crickets_Night
* Birds_Forest_Day
* Birds_Meadows_Day
* Wind_Low
* Wind_High
* Stratis_RainMeadows_Low
* Stratis_RainMeadows_Medium
* Stratis_RainMeadows_High
* Stratis_RainHouses
* Sea
* Coast

Tanoa:
* ForestMorning
* ForestAfternoon
* ForestNight
* HousesDay
* HousesNight
* MeadowsDay
* MeadowsNight
* WindForest_Low
* WindForest_High
* WindMeadows_Low
* WindMeadows_High
* WindHouses_Low
* WindHouses_High
* RainForest_Low
* RainForest_Medium
* RainForest_High
* RainMeadows_Low
* RainMeadows_Medium
* RainMeadows_High
* RainHouses_High
* Sea
* Coast
* Wind_Generic_Low
* Wind_Generic_High

  • Like 4
  • Thanks 1

Share this post


Link to post
Share on other sites

Hello kju, I try to activate the sounds "forest" but I can not make it play!, I have tree questions about that

 

how to know the parameters to set at altitudeGround ?

And the values 100,30 tells me that the sounds will be played between 30 m and 100 m of altitude ??

there are two daytime, one for before midnight and one for after midnight is that right?

 

class ForestNight_SoundShader
    {
        samples[] = {{"A3\Sounds_F_Exp\Environment\ambient\forest\forest_night", 1}};
        volume = "(altitudeGround factor [100,30]) * (altitudeGround factor [100,30]) * ((daytime factor [0.75, 0.83]) + (daytime factor [0.33, 0.25]))";
    };

Share this post


Link to post
Share on other sites

Check https://community.bistudio.com/wiki/Arma_3_Sound:_SoundControllers and the referenced scripting commands.

Also these:

https://community.bistudio.com/wiki/Simple_Expression

https://community.bistudio.com/wiki/Ambient_Parameters

 

also try mergeConfig to tweak the definitions while the game is running - you might have to reload the terrain to make changes active

https://community.bistudio.com/wiki/diag_mergeConfigFile

 

> (altitudeGround factor [100,30]) * (altitudeGround factor [100,30])

two times make the growth exponential rather than linear

 

just make some examples yourself (in calc/excel) with 0, 0.5 and 1 as input value to see curve development

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×