SimObjects‎ > ‎Containers‎ > ‎

Sound Configuration Files

Overview

This document describes the format of sound configuration files, which determine the sounds to use for each aircraft, or other simulated object.

Unlike commercial game engines such as Unreal Engine 4, which are able to make use of a front end 'blueprint editor' for implementing audio, instead FSW relies on configuration files (.cfg) that 'direct' the game to where the audio files are located. These sound.cfg files allow you to define the parameters for the playback of sounds, such as where they can be heard, their pitch and volume, etc. 

It is advised you install a program such as Notepad++ or Visual Studio Community Edition so that you can create and edit these sound.cfg files, which are essentially text files. Below is a screenshot of the sound config file for the PA-18 SuperCub from FSW open in Notepad++ to act as an example for what a typical sound config file will look like. 

Remember, that when writing these .cfg files, the engine will ignore any text on the same line after '//' is written. These can be very handy for creating comments and headings that you don't want the engine to read, and can be very helpful when organizing and keeping track of sounds in your config file.

Audio Formatting

Currently on FSW, audio audio files have very stringent formatting requirements. This is due to the technical limitations of the FSW engine; file size considerations; and from various compatibility changes. As it stands:
  • All aircraft, ambient, mission VO/SFX, weather and UI sounds MUST be set to have a sample rate of 44.1 kHz and a bit depth of 16 bits.
  • ATC voices MUST be set to 8 kHz and 8 bits.
Additionally, all sounds on a particular in-game “channel” (such as aircraft sounds or UI sounds) need to have the same number of channels (mono/stereo). For aircraft sounds we use mono, whilst UI and weather sounds are all stereo.

If something is incorrectly formatted and you are running the game through Steam on the test branch then asserts will trigger to tell you something is wrong.

    Naming Conventions

When naming our audio files internally, we tend to stick to the following format, the sections of this you choose to use will largely differ from one aircraft to the next:

    'COMPANY'_FSW_Aircraft_'AircraftName'_'exterior (x)/interior (blank)' 'sound' 'front/rear' 'number' 'left/right'

Here are some examples of this from some of our core bundled aircraft:

    DTG_FSW_Aircraft_PiperSupercub_xRPMf01
    DTG_FSW_Aircraft_DA42_RPM01Left

Looking at the first example given above, working from left to right we're able to see that: this sound was produced internally at DTG, that it's for use in Flight Sim World, it's a sound for the PA-18 SuperCub aircraft, the use of 'x' in front of the sound name denotes that this is an exterior sound (if there was no 'x' present we would know that it's a sound that should be heard in internal views), we can see that because it's named 'RPM' that it's an engine sound, the 'f' tells us that it should be heard when the player camera is in front of the engine ('r' would tell us it should be heard when the player camera is behind the engine), and lastly the '01' states that this is the first loop in a list of sounds. 

Of course you're welcome to follow whatever naming convention/s are most easily understandable to you, the most important thing is to make sure you're able to just read the audio file's name and be able to understand exactly what the sound is. The only bits from the guide given above that we highly recommend you use are denoting whether a sound is exterior ('x') or interior (leave blank) and whether a sound should be heard in a front ('f') or rear ('r') arc around the engine. 

Audio Directories

The are several directories in FSW where audio files are stored: the "core audio folder", "pack audio folders" and "mission audio folders". The core audio folder, as the name suggests, is centrally located and can be referenced by anything bundled with the core product or by any DLC. Pack and mission audio folders need to be kept specific to each DLC pack and thus should only be referenced by that pack specifically.

    Core Audio Folder

Provided you have installed FSW in the directory Steam allocates by default, the core audio folder is found here:

    C:\Program Files (x86)\Steam\steamapps\common\DFS\sound

The core audio folder is where sounds are stored that can be referenced by multiple DLC packs, such as default mission music files, a myriad of default aircraft sounds, crash, splash and ground rolling sounds, as well as a few "special" sound effects that can be used in missions, if you so wish!

    Pack Audio Folders

Pack audio folders are those that are specific to certain DLC packs. They are found in the SimObjects folder and technically apply to everything in there (Airplanes, Animals, Boats, Characters, Ground Vehicles, Misc), though we just focus on the aircraft and leave the rest with their defaults. For now we'll look at the "Airplanes" folder, and as an example we shall look at the PA-18 SuperCub:

    C:\Program Files (x86)\Steam\steamapps\common\DFS\SimObjects\Airplanes\Piper_PA18

Within this folder are two sound folders, one simply named "sound" and one named "soundai". Both work in exactly the same way, with the only differences being that one is for the player aircraft and the other is for all AI aircraft in the game-world. Generally the AI folder should have less sounds in it for two reasons:

  • Technical limitations in the engine mean that AI aircraft cannot use startup, shutdown, starter, wind, ground or miscellaneous sounds. Just engine sounds. 
  • The AI version of an aircraft may simply reference files in the "sound" folder, since both the player and AI versions will be provided as part of the same DLC pack. 
What is important to remember is that all the sounds in both folders are heard from the player's perspective, so all internal sounds in the "sound" folder are for those heard by the player in the internal camera views (same applies to external sounds when in external views), but it also means that internal sounds in the AI folder are for when the player is in an internal camera view of their own aircraft (same applies to external AI sounds).

Once again, config files in a pack audio folder should only ever reference sound files in the pack it is in or in the core audio folder, NEVER anything from another pack. This is because not all users will have all the DLC and so each piece of DLC needs to be self-contained. 

    Mission Audio Folders

Mission audio folders are specific to each mission and are for mainly storing mission specific voice over as well as the occasional sound effect, such as an aircraft being loaded with bags or engines 'popping'. You may wish to also include music files in these folders, however there is now also a core folder that missions can reference that contains generic music that can be referenced. As an example we'll take a look at a mission folder from the Epic Approaches Mission Pack DLC:

    C:\Program Files (x86)\Steam\steamapps\common\DFS\DLC\630910\Missions\Approaches\Big Bear Approach\Big Bear Approach - Level 1\Sound

Audio specific configs are not needed as part of missions. Instead, the mission writers have their own files that they will reference both your voice over and sound effect audio files from. 

The Sound System

The sound.cfg file is located in an aircraft’s Sound folder, and defines the sounds to use for that aircraft (such as the sound of the engine at various speeds, the sound of the landing gear going down, and so on). This file also specifies attributes for each sound that determine exactly how the sound is played.

Many aircraft sounds are composed of multiple .wav files (called a sound list) that are linked to one another, processed in sequence, and then played as a group. These sounds are updated by the simulator’s sound engine every time the screen refreshes (once every frame). Whilst these sounds don't need to be listed in a particular order, it will make your life easier if you group certain sound lists together (combustion, prop, startup, shutdown, starter, etc).

As you read this section, you should look at actual sound.cfg files to become more familiar with the structure and syntax of them. They can be found in the Sound subfolders of the aircraft containers, and viewed using any text editor. To hear any particular component of a sound in its pure form (unaffected by the attributes in the sound.cfg file), just play the .wav file referenced in the sound.cfg (.wav files are located in either the Sound folder in an aircraft’s container, or in the core audio folder).

    Notes:

  • For clarity, the naming convention used for our core bundled Flight Sim World aircraft engine sounds was to put an “x” at the beginning of all external sound (heard in external spot and tower views) headers, and to number consecutive sound headers (e.g., [SHUTDOWN], [SHUTDOWN.1]). The specific header names used does not matter, as long as they are consistent in the [SOUND_ENGINE] section and across link parameters. Additionally, the order of the sections within the sound.cfg file does not matter, nor does the order of the parameters within a section.

    Defining the Flight Sim and Sound Engine

In the first section of the config file there are two sections. The first, titled "[FLTSIM]" is the section where define the product code ("FSIM") and whether or not there is an alias. An alias is used to basically say "this aircraft will use the sounds of this other aircraft" if they will be completely identical. A hypothetical example of this could be for an aircraft that we wish to use completely the same sounds and settings as the PA-28 Cherokee. In this case we would write "alias=Piper_PA28\sound", this tells the Flight Sim engine where to look for the intended sound.cfg file. It is thus very important that what you write in the 'alias=' section matches exactly the containing folder names of the sound.cfg you wish to point to.  

The second section is where you define the sound lists for the engines, props and startup/shutdown/starter sounds as well as the number of engines. Looking at an example of the sound config file from the PA-28 Cherokee (shown below) we can see that it has a single engine and that for this single engine there are single sound-lists for each of the various groups of sounds: combustion (engine loops), starter (startup), combustion_start (engine ignition), shutdown, prop (propeller), non-combustion (engine mechanical sounds). 

To act as a comparison, have a look at the sound config file for the core bundled Diamond DA42 (screenshot below), this shows how things should be set up for aircraft that have two engines. 


The [SOUND_ENGINE] section focuses specifically on the engine sounds for the aircraft and nothing needs to be added to this for covering the ground, wind or miscellaneous sounds (these will be discussed in following sections). Additionally, each engine specified in the sound config file will then have its source point assigned automatically by finding the corresponding number in the aircraft config file. Note that in the sound config file the engines will be named from '1' to 'N', whereas in the aircraft config file they will be named from '0' to 'N-1'. So it ends up looking somewhat like the following:

 Sound Config File Aircraft Config File
1
0
21
32
43
 ... and so on

General Sections

[FLTSIM]

 Property Description Examples 
 product_codeThis should always be set to 'FSIM' and should never change

 Diamond_DA42 ( product_code=FSIM ) 
 aliasIf using an alias do not enter any information after it. This will redirect the game engine to another sound config file and will use it instead. It should be written in relation to the intended sound.cfg folder path.

 AIo_Pa28_180 ( alias=PA28\sound )

[SOUND_ENGINE]

These parameters concern the engine sounds of an aircraft. They specify the number of engines the aircraft has, and the sound lists the simulation should use to create the aircraft’s engine sounds. Each sound list is referenced by the header of the first sound in the list (additional sounds are linked to in sequence from that first sound). The individual sounds in a list are defined in their own sections within the sound.cfg file.

The engine numbers reference the engine positions in the [generalenginedata] section of the aircraft configuration file, and are numbered as mentioned previously (see The Sound System section above).

 Property Description Examples 
 number_of_engines How many engines the aircraft has. Up to a maximum of four. Piper_PA28 ( number_of_engines=1 )

 Piper_PA34 ( number_of_engines=2 )

 eng1_combustion
to
 eng4_combustion

 Points to the first sound in a sound list of engine 1 combustion sounds.  Piper_PA18 ( eng1_combustion=COMBUSTION.1.00 )
 eng1_starter
to
 eng4_starter

 Points to the first sound in a sound list of engine 1 starter sounds. Diamond_DA40 ( eng1_starter=starter )

 Diamond_DA42 ( eng1_starter=starterA )

 Piper_PA34 ( eng2_starter=starterB )

 eng1_combustion_start
to
 eng4_combustion_start

 Points to the first sound in a sound list of engine 1 combustion start sounds. Piper_PA46 ( eng1_combustion_start=combstart )

 Diamond_DA42 ( eng2_combustion_start=combstartB )
 eng1_shutdown
to
 eng4_shutdown

 Points to the first sound in a sound list of engine 1 shutdown sounds. Piper_PA28 ( eng1_shutdown=shutdown )

 Piper_PA34 ( eng2_shutdown=shutdownA )
 eng1_jet_whine
to
 eng4_jet_whine

 Points to the first sound in a sound list of engine 1 jet whine sounds. Applies to Jets and Turboprops only. ( eng1_jet_whine=JET.WHINE.1.00 )
 eng1_non_combustion
to
 eng4_non_combustion

 Points to the first sound in a sound list of engine 1 non-combustion sounds (the isolated sounds of the engine's moving parts). Piper_PA28   ( eng1_non_combustion=NON_COMBUSTION.1.00 )
 eng1_prop
to
 eng4_prop

 Points to the first sound in a sound list of engine 1 prop sounds. Applies to Turboprops and Piston aircraft only. Piper_PA46 ( eng1_prop=PROP.1.00 )

 Piper_PA34 ( eng2_prop=PROP.2.00 )
 eng1_prop_strike
to
 eng4_prop_strike

 Points to the first sound in a sound list of engine prop strike sounds. Applies to Turboprops and Piston aircraft only. ( eng1_prop_strike=PROP.STRIKE.1.00 )
 eng1_rotor
to
 eng4_rotor

 Points to the first sound in a sound list of rotor sounds. Applies to helicopters only. ( eng1_rotor=ROTOR.1.00 )

Engine Sounds

This section is different from the above '[SOUND_ENGINE]' section. The above section effectively provides information to the sound/audio engine, whilst the following section specifies the aircraft engine sounds. This is where the sounds for each of the sound lists in the previous section are specified. Each of the various values are explained here, however, it is worthwhile opening the sound configuration files of several aircraft so you can see what is being talked about here alongside working examples

All sounds defined, for example; [STARTER], [XSTARTER], [SHUTDOWN], [COMBSTART], and [COMBUSTION.1.00] and so on, all define one sound and have the following format:

 PropertyDescription Examples 
 filename Specifies the name of the .wav file to play. The .wav extension should not be specified. The Sound folder in the specific aircraft container is searched first, and then, if the file isn't found, the core audio Sound folder is searched. NOTE: The filename parameters for [CRASH_SOUND], [SPLASH_SOUND] and a number of other miscellaneous sounds have commas separating the filenames (e.g. filename=DTG_FSW_DefDirec_CrashImpact01,DTG_FSW_DefDirec_CrashImpact02). In these instances the simulator code will randomly choose to play one of the listed .wav files each time the section is triggered.  Piper_PA18   ( filename=DTG_FSW_Aircraft_PiperSupercub_RPM01 )

 Vans_RV7A
 ( filename=ss_btrv7_int_idle )

 Diamond_DA42
 ( filename=DTG_FSW_Aircraft_DA42_StarterLeft )

 flags Flags have different functions when associated with different sounds:

 For all sounds: 0 = no flag, 1 = disable sound

 For [combustion] sounds: 2 = damaged, 4 = boost (not supported), 8 = jet engine rumble sound

 For [prop] sounds: 2 = min prop pitch, 4 = max prop pitch, 8 = min reverse prop pitch

 Piper_PA34 - [COMBUSTION.1.00]
 ( flags=0 )

 Piper_PA28 - [PROP.1.00]
 ( flags=2 )
 viewpoint Determines when the sound is audible, one of:

1 = only in internal cockpit views

2 = only in external spot and tower views

If left blank or not defined the sound will be heard across all camera views.
 
 Piper_PA18 - [STARTER]
 ( viewpoint=1 )

 Piper_PA18 - [XSTARTER]
 ( viewpoint=2 )
 rparams Defines the sound's pitch envelope. Represents the sound's relative pitch (and playback speed) as a function of a generic value.

Each pair of values specified in rparams represents a single (x,y) point; you can use up to 2 points to describe the pitch envelope. The format and behavior of rparams is very similar to vparams (detailed below), except that the second (y) value of each point represents a pitch scaler. A value of 1.000000 specifies that the sound is played at the .wav file's original pitch and speed. A value of 2.0 specifies that the file is played an octave higher than the original .wav file and twice as fast.

We find the best results are achieved when the x value of the first point is equal to or lower than the x value of the first vparams point, and when the x value of the second point is equal to or higher than the x value of the final vparams point. This just ensures that the pitch and speed will be completely variable throughout when the sound can be heard in the game.

(In the first example in the right hand column -> at 0.0 the pitch and speed of the sound is at 0.9 of its original, and at 1.0 the pitch and speed is at 1.25)

 Diamond_DA40 - [COMBUSTION.1.00]
 ( rparams=0.000000,0.900000,1.000000,1.250000 )

 Vans_RV7A - [COMBUSTION.1.015]
 ( rparams=0.000000,0.800000,0.360000,1.250000 )
 vparams Defines the sound's amplitude envelope. Represents the sound's volume as a function. Each pair of values specified in vparams represents a single (x,y) point, you can use up to 8 points to describe the amplitude envelope. The first (x) number in the pair always ranges from 0.0 to 1.0 and represents the engine RPM level (where 1.0 is max RPMs), the second (y) number specifies the volume at that RPM level. The units for volume are linear, with a value of 50 meaning -3dB attenuation, and 0 meaning silence.

(Note: unlike the example given in the right hand column -> none of the equals symbol, numbers and commas should have gaps between them, this was just done for this example to help show the changes in x and y values).

 Piper_PA46 - [COMBUSTION.1.00]
 ( vparams=
 0.000000,49.440000,
 0.050000,49.562000,
 0.100000,49.717000,
 0.150000,49.915000,
 0.200000,50.167000,
 0.250000,15.000000,
 0.350000,5.000000,
 0.500000,0.000000 )

 maximum_volume Specifies the highest possible volume - the sound will never exceed the volume specified.
(Volume is specified in 1/100dB units, with a value of 10,000 being maximum possible volume) 

If a value is not stated, the engine will play the sound at a maximum default of 10,000.

 Piper_PA46 - [PROP.1.00] ( maximum_volume=8500 )

 Piper_PA28 - [PROP.1.00] ( maximum_volume=7000 )

 minimum_volume This parameter sets the point to which a sound can attenuate if there are no vparams. This is a legacy setting, but is easier to configure than sounds with vparams and rparams. Sound configured this way are not 3D sounds and do not recognize the viewpoint parameter.

 Piper_PA34 - [GROUND_ROLL] ( minimum_volume=0 )
 InsideConeAngle The following number of 'cone' parameters are used to define how the sound is heard from the position of external spot or tower camera views in relation to the sound source (i.e. whether you're facing the front of the engine, or facing forwards from behind the engine, etc). Aside from 'OutsideConeVolume' these cone parameters are always specified in degrees, representing an imaginary circle around the aircraft/point source of the sound; a diagram of this is shown below this table under "Cone Parameters Diagram". These parameters will have no effect if added to internal sounds (those defined with a viewpoint value of '1'. 

Inside sound cone angle in degrees. This defines an area around the plane in which the sound will be heard at its maximum possible value (constrained by vparams and maximum_volume of course). It's worth noting that the value given here will be halved to either side of the defined ConeHeading value (this acts as a centre-line); so for an InsideConeAngle of 90.0 this will be split to be 45.0 degrees left of the ConeHeading and 45.0 degrees right of the ConeHeading 'centre-line'

 Piper_PA28 - [PROP.1.04] ( InsideConeAngle=90 )

 Vans_RV7A - [COMBUSTION.1.04]
 ( InsideConeAngle=120 )


 OutsideConeAngle

 Outside sound cone angle in degrees. This defines an area in which the sound will attenuate down to the defined OutsideConeVolume value or up to the volume in the InsideConeAngle area. The value given here will be halved to either side of the defined ConeHeading value (this acts as a centre-line); so for an OutsideConeAngle of 180.0 this will be split to be 90.0 degrees left of the ConeHeading and 90.0 degrees right of the ConeHeading 'centre-line'. 

It's worth noting that the OutsideConeAngle overlaps the InsideConeAngle, where there is this overlap, InsideConeAngle takes priority. Thus when setting the value for OutsideConeAngle, it's important to make sure it's larger than the value for InsideConeAngle, otherwise there will be no gradual increase/decrease in volume as you pan the camera around the aircraft, the volume will simply jump quite noticeably to the OutsideConeVolume setting. 

 Piper_PA28 - [PROP.1.04] ( OutsideConeAngle=300 )

 Vans_RV7A - [COMBUSTION.1.04]
 ( OutsideConeAngle=360 )
 ConePitch

 The pitch, in degrees, of the sound cone.

90 is directly downwards, 270 is directly upwards, 0 is directly forwards. For all engine sounds, this should usually be set to 0.0.

 Piper_PA34 - [NON_COMBUSTION.1.00]
 ( ConePitch=0.000000 )

 ConeHeading

 Direction of sound cone in degrees in a circle around the aircraft, as if from a top-down view.

0 is facing forward, 180 is facing backwards.
 Piper_PA18 - [COMBUSTION.1.00]
 ( ConeHeading=0.000000 )

 Piper_PA18 - [COMBUSTION.1.08]
 ( ConeHeading=180.000000 )

 OutsideConeVolume

 Defined as the maximum volume heard outside the sound cone.  the sound will never exceed the volume specified. (Volume is specified in 1/100dB units, with a value of 10,000 being maximum possible volume).

 Piper_PA28 - [PROP.1.04] ( OutsideConeVolume=6000 )

 Vans_RV7A - [COMBUSTION.1.04]
 ( OutsideConeVolume=9600 )

 full_scale_distance

 The distance in meters away from the sound source, when the sound begins to attenuate. This is not a linear attenuation, but conforms to the inverse square law.

 Piper_PA28 - [PROP.1.04] ( full_scale_distance=30 )

 Piper_PA18 - [COMBUSTION.1.08]
( full_scale_distance=60 )

 panning Determines where the sound is placed in the stereo field:

0 = centre
-10,000 = full left
10,000 = full right

 This should almost always be set to '0'.
 
 Piper_PA18 - [COMBUSTION.1.12] ( panning=0 )

 
 link References the next sound in a sound list (by section heading name). Some sound lists are made up of several .wav files, and each .wav file has its own section in the .cfg file.

When writing out the Link reference, it must be written exactly as it appears within the square ('[' ']') brackets of the sound you wish to link to.  

The last sound referenced in a list doesn't need a Link setting, since there are no more sounds in the list. 
 Piper_PA18 - [COMBUSTION.1.00] 
 ( link=COMBUSTION.1.01 )

 Piper_PA18 - [COMBUSTION.1.01]
 ( link=COMBUSTION.1.02 )

 Piper_PA18 - [COMBUSTION.1.02]
 ( link=COMBUSTION.1.03 )

    Cone Parameters Diagram

The diagram pictured below should help provide some additional context in explaining what is happening when define cone angle parameters, as detailed above. In the diagram we can see a 'cone heading' line (set to be '0' in the sound.cfg) pointing out in a straight line directing in front of the aircraft; this is the center line for the rest of the cone elements. As an example, we'll say that the InsideConeAngle value (area highlighted in red) has been set as 90 degrees, and as detailed above has been divided in half either side of the cone heading center line. Next, we have the OutsideConeAngle (the area it effects highlighted in purple), for the purpose of this example, we'll say this has been set to 180 degrees in the sound.cfg. As we can see from the diagram, this too has been split by the cone heading center line and overlaps with the InsideConeAngle. The remaining (green highlighted) area of the circle is defined as the area in which the volume of the sound is equal to the value set in the OutsideConeVolume parameter.

Note, that the circumference of the circle shown in the diagram below is not representative of the complete area covered by the sounds. The radius lines of each of the angles are defined by the full_scale_distance parameter.

Ground Sounds

Ground sounds are the first of the three sections that do not require defined sound lists under the [SOUND_ENGINE] section at the beginning of the .cfg file. These are broken down into three parts: rolling, touchdown and scraping. 'Rolling' sounds are made when the aircraft is moving on the ground, 'touchdown' is when the aircraft lands and 'scraping' is when parts of the aircraft scrape across the ground. Through the use of 'flags' (explained in the following table in more depth) you can specify specific sounds for particular surfaces types such as concrete, grass, dirt, ice, water, etc.

Ground sounds include: [CENTER_TOUCHDOWN], [AUX_TOUCHDOWN], [LEFT_TOUCHDOWN], [RIGHT_TOUCHDOWN], [FUSELAGE_SCRAPE], [LEFT_WING_SCRAPE], [RIGHT_WING_SCRAPE], [AUX1_SCRAPE], [AUX2_SCRAPE], [XTAIL_SCRAPE] and [GROUND_ROLL].

Some ground sounds consist of multiple sets of .wav files (sound lists as mentioned previously), and each set can correspond to a unique combination of surface types. Each ground sound can be volume and pitch modulated with airspeed.

 Property Description  Examples 
 Filename Specifies the name of the .wav file to play. The .wav extension should not be specified. The Sound folder in the specific aircraft container is searched first, and then, if the file isn't found, the core audio Sound folder is searched. NOTE: The filename parameters for [CRASH_SOUND], [SPLASH_SOUND] and a number of other miscellaneous sounds have commas separating the filenames (e.g. filename=DTG_FSW_DefDirec_CrashImpact01,DTG_FSW_DefDirec_CrashImpact02). In these instances the simulator code will randomly choose to play one of the listed .wav files each time the section is triggered.

 Piper_PA18 - [FUEL_PUMP] 
 filename=DTG_FSW_DefDirec_FuelPump

 Piper_PA28 - [CENTER_TOUCHDOWN]
 filename=DTG_FSW_DefDirec_TouchdownStructuralNoise04,
 DTG_FSW_DefDirec_TouchdownStructuralNoise05
 flags

 For all sounds: 
 0 = no flag
 1 = disable sound
 Flags can have different functions when associated with different sounds. For all sounds you can use '1' and '0' to disable it entirely (like an on/off switch) or assign no flag at all. For ground sounds, by flagging a sound for a particular ground surface type, you tell the simulation to play that sound when the aircraft comes into contact with it. 

The numbers for ground surfaces are as follows:
  • 1 = disable sound
  • 2 = concrete
  • 4 = soft, bumpy ground (landable)
  • 8 = water
  • 16 = very bumpy grass & mud (crashable)
  • 32 = asphalt
  • 64 = short grass
  • 128 = long grass
  • 256 = hard turf
  • 512 = snow
  • 1024 = ice
  • 2048 = urban
  • 4096 = forest
  • 8192 = dirt runway
  • 16384 = coral runway
  • 32768 = gravel runway
  • 65536 = oil treated (tar & chip) runway
  • 131072 = steels mats (steel mesh) temporary
Note that these values are powers of 2 so that they represent bits. If you wish to have a sound play on only one of the above surface types, then simply input the number given above as the flag value. But sometimes you'll wish to have a single sound play when the aircraft comes into contact with a number of different surface types, in instances like this, we have to work out the flags value using binary. 

For instance, for one ground roll sound it may have a flags setting of '125218'. This is 11110100100100010 in binary, and maps to the surface types: concrete, asphalt, hard turf, urban, dirt runway, coral runway, gravel runway & oil treated (tar&chip) runway.

When working out the binary code we write the number backwards from the list of surfaces types given above, using 0's to show surface types that aren't going to use this sound, and 1's to denote those that are. Looking again that the example given in the paragraph above, moving through the binary number from right to left, the first number is a 0 (showing that 'disable sound' is not used), the next number from the right is a 1 (showing that 'concrete is used). Next is another 0 (this denotes that 'soft, bumpy ground (landable) will not use this sound) and so on and so forth.

It's worth noting that if any of the numbers appearing at the start of the binary number (starting from the left) are a zero, they don't need to be used when working out the flags value. For example, a binary number of 00000000000100010 ('concrete' and 'asphalt'), maybe be simply worked out and shortened to 100010; the 0's for everything in the list lower than 'asphalt' can be missed off.

Once you have this binary number you'll need to convert it to a decimal value.  We recommend using the 'Convert Binary Value to Decimal Value' function at the following link: Binary Calculator

Using this calculator we can work out that, from the example above, 100010 becomes '34'. So for this sound, which we only want to play on concrete and asphalt surfaces, the flags value needs to be set at 34. 

In our core audio folder we have .wav files for concrete, grass & dirt, snow and water, for rolling and wing & fuselage scraping sounds. The flag settings we have used for these since the release of FSW (and the settings we recommend you use) have been:

For concrete rolling and scraping: flags=248098
For grass & dirt: flags=12500
For snow: flags=1536
For water: flags=8

 Piper_PA18 - [LEFT_WING_SCRAPE] ( flags=248098 )

 Piper_PA18 - [LEFT_WING_SCRAPE2] ( flags=12500 )

 Piper_PA18 - [LEFT_WING_SCRAPE3] ( flags=1536 )

 Piper_PA18 - [LEFT_WING_SCRAPE4] ( flags=8 )
 viewpoint Determines when the sound is audible, one of: 

1 = only in internal cockpit views

2 = only in external spot and tower views

If left blank or not defined, the sound will be heard across all camera views. Generally speaking for most ground rolling sounds you'll want to omit defining the viewpoint parameter since most ground sounds can be the same across internal and external views. 

 Piper_PA28 - [GYRO_SOUND] ( viewpoint=1 )
 maximum_volume Specifies the highest possible volume - the sound will never exceed the volume specified.
(Volume is specified in 1/100dB units, with a value of 10,000 being maximum possible volume) 

If a value is not stated, the engine will play the sound at a maximum default of 10,000.

 Piper_PA34 - [LEFT_WING_SCRAPE]
 ( maximum_volume=9000 )

 Diamond_DA40 - [FUEL_PUMP]
 ( maximum_volume=8200 )

 minimum_volume Specifies the lowest possible volume - if the sound drops below the minimum volume specified, it will not be heard. Volume is specified in 1/100dB units, with a value of 10,000 being the maximum possible volume. 

In most cases you'll want this to be set to '0'.

 Piper_PA18 - [GROUND_ROLL] ( minimum_volume=0 )


 minimum_speed Specifies the minimum speed (in KTAS - Knots True Air Speed) used by the _volume and _rate parameters

In all instances where this parameter is used in our core bundled aircraft sound.cfg's this is always set to '3', we recommend you do the same. When the KTAS of the aircraft drops below '3' the aircraft is no longer moving fast enough to realistically hear the ground rolling/scrape sounds.
 
 Diamond_DA40 - [FUSELAGE_SCRAPE]
 ( minimum_speed=3 )
 maximum_speed Specifies the speed (in KTAS) above which the sound has a constant volume and pitch.

 Diamond_DA40 - [FUSELAGE_SCRAPE]
 ( maximum_speed=60 )

 Vans_RV7A - [LEFT_WING_SCRAPE]
 ( maximum_speed=55 )

 minimum_rate Specifies the minimum rate (and also pitch) at which the sound is played. If the aircraft's speed is between minimum_speed and maximum_speed, the playback rate is interpolated between the minimum_rate and maximum rate values.

A value of 1.0 specifies that the sound is played at the .wav file's original pitch and speed. A value of 2.0 specifies that the file is played an octave higher than the original .wav file and twice as fast.

 Piper_PA28 - [GROUND_ROLL]
 ( minimum_rate=0.90 )

 Piper_PA34 - [GROUND_ROLL]
 ( minimum_rate=0.80 )
 maximum_rate Specifies the maximum rate (and pitch) at which the sound is played If the aircraft's speed is between minimum_speed and maximum_speed, the playback rate is interpolated between the minimum_rate and maximum rate values.

 Piper_PA28 - [GROUND_ROLL]
 ( maximum_rate=1.2 )

 Piper_PA34 - [GROUND_ROLL]
 ( maximum_rate=1.2 )

 panning Determines where the sound is placed in the stereo field:

0 = centre
-10,000 = full left
10,000 = full right

 This should almost always be set to '0' or the parameter omitted.

 Piper_PA28 - [GROUND_ROLL]
 ( panning=0.000000 )
 initial_volume Specifies the volume at which the sound starts. Volume is specified in 1/100dB units, with a value of 10,000 being the maximum possible volume. 

 Piper_PA18 - [FLAPS] ( initial_volume=8400 )
 link References the next sound in a sound list (by section heading name). Some sound lists are made up of several .wav files, and each .wav file has its own section in the .cfg file.

When writing out the Link reference, it must be written exactly as it appears within the square ('[' ']') brackets of the sound you wish to link to.  

The last sound referenced in a list doesn't need a Link setting, since there are no more sounds in the list.

 Piper_PA28 - [GROUND_ROLL] ( link=GROUND_ROLL2 )

 Piper_PA28 - [GROUND_ROLL2] ( link=GROUND_ROLL3 )

 Piper_PA28 - [GROUND_ROLL3] ( link=GROUND_ROLL4 )

Miscellaneous Sounds

There are some other sounds that can be used on an aircraft and fall into a 'miscellaneous category'. A list of these sounds are as follows:

  • [GEAR_UP_WARNING]
  • [STALL_WARNING]
  • [OVERSPEED_WARNING_SOUND]
  • [GLIDESLOPE_WARNING_SOUND]
  • [AP_DISENGAGE_SOUND]
  • [GEAR_DOWN]
  • [GEAR_UP]
  • [FLAPS]
  • [CRASH_SOUND]
  • [SPLASH_SOUND]
  • [EXIT_OPEN]
  • [EXIT_CLOSED]
  • [NO_SMOKING_ALERT]
  • [SEATBELTS_ALERT]
  • [GYRO_SOUND]
  • [FUEL_PUMP]
  • [AMPHIB_GEAR_UP_WARNING_SOUND]
  • [AMPHIG_GEAR_DOWN_WARNING_SOUND]
  • [CLUTCH]
  • [HORN]
  • [LAUNCHBAR_EXTEND]
  • [LAUNCHBAR_RETRACT]
  • [WING_UNFOLD.0]
  • [WING_UNFOLD.1]
  • [WING_FOLD.0]
  • [WING_FOLD.1]
  • [TAILHOOK_EXTEND]
  • [TAILHOOK_RETRACT]
  • [CARRIER_TRAP]
  • [BLAST_SHIELD_UP.0]
  • [BLAST_SHIELD_UP.1]
  • [BLAST_SHIELD_DOWN.0]
  • [BLAST_SHIELD_DOWN.1]
  • [CATAPULT_LAUNCH.0]
  • [CATAPULT_LAUNCH.1]
For the WING_FOLD and WING_UNFOLD sounds, the .0 and .1 extensions refer to left and right. For the blast shields and catapults, the extensions differentiate between each blast shield and catapult (catapults 1 to 3 for example, being '.01', '.02' and '.03'), even though they may well use the same sound files. These sound sections take the following parameters and, similarly to the ground sounds, do not need to have their sound lists defined in the SOUND_ENGINE section at the start of the config file.

 Property Description  Examples
 filename Specifies the name of the .wav file to play. The .wav extension should not be specified. The Sound folder in the specific aircraft container is searched first, and then, if the file isn't found, the core audio Sound folder is searched. NOTE: The filename parameters for [CRASH_SOUND], [SPLASH_SOUND] and a number of other miscellaneous sounds have commas separating the filenames (e.g. filename=DTG_FSW_DefDirec_CrashImpact01,DTG_FSW_DefDirec_CrashImpact02). In these instances the simulator code will randomly choose to play one of the listed .wav files each time the section is triggered. 

Some miscellaneous sound sections consist of no more than the filename entry. In our core bundled aircraft this is the case for anything that is just to use a default sound from the core sound folder and not needing to have its parameters changed in any way.

 Piper_PA28 - [GEAR_UP_WARNING_SOUND]
 ( filename=DTG_FSW_DefDirec_caGear )

 Diamond_DA42 - [EXIT_OPEN]
 ( filename=DTG_FSW_DefDirec_DoorSmallOpen )
 viewpoint  Determines when the sound is audible, one of: 

1 = only in internal cockpit views

2 = only in external spot and tower views

If left blank or not defined, the sound will be heard across all camera views.

 Piper_PA28 - [GYRO_SOUND] ( viewpoint=1 )
 Flags Flags have different functions when associated with different sounds.

0 = no flag
1 = disable sounds

 Diamond_DA42 - [OVERSPEED_WARNING_SOUND]
 ( flags=1 )
 maximum_volume Specifies the highest possible volume--the sound never exceeds the volume specified. (Volume is specified in 1/100dB units, with a value of 10,000 being the maximum possible volume.).

 Diamond_DA40 - [STALL_WARNING]
 ( maximum_volume=8000 )
 minimum_volume Specifies the lowest possible volume--if the sound drops below the minimum volume specified, it will not be heard. (Volume is specified in 1/100dB units, with a value of 10,000 being the maximum possible volume.).

 ( minimum_volume=0 )
 initial_volume Specifies the volume at which the sound starts. (Volume is specified in 1/100dB units, with a value of 10,000 being the maximum possible volume.).

 Piper_PA18 - [FLAPS] ( initial_volume=8400 )
 link References the next sound in a sound list (by section heading name). Some sounds are made up of several .wav files, and each .wav file has its own section in the .cfg file.

 ( link=GROUND_ROLL2 )

Wind Sounds

Wind sounds are not part of the other weather sounds and are instead aircraft specific. Same as the ground and misc sounds, these do not need to have their sound lists defined in the SOUND_ENGINE section at the top of the config file. The .wav files themselves are kept in the core sound folder, so if you simply wish to use the same default settings on multiple aircraft you are able to copy this section entirely from any of the FSW aircraft and paste is into the config file of your new aircraft. These can be changed to bespoke sounds for an aircraft if need be, but in this case, the sound files need to be included in the pack audio folder and not the core folder. 

 Property Description Examples
 filename Specifies the name of the .wav file to play. The .wav extension should not be specified. The sound folder in the specific aircraft container is searched first, and then, if the file isn't found, the core sound folder is searched. 
 
 Piper_PA18 - [wind_sound] 
 ( filename=DTG_FSW_DefDirec_WindInternal )
 viewpoint Determines when the sound is audible, one of: 

1 = only in internal cockpit views

2 = only in external spot and tower views

If left blank or not defined, the sound will be heard across all camera views.
 
 Piper_PA18 - [wind_sound] ( viewpoint=1 )

 Piper_PA18 - [wind_sound.1.02] ( viewpoint=2 )
 rparams Defines the sound's pitch envelope. Represents the sound's relative pitch (and playback speed) as a function of a generic value.

Each pair of values specified in rparams represents a single (x,y) point; you can use up to 2 points to describe the pitch envelope. The format and behavior of rparams is very similar to vparams (detailed below), except that the second (y) value of each point represents a pitch scaler.

We find the best results are achieved when the x value of the first point is equal to or lower than the x value of the first vparams point, and when the x value of the second point is equal to or higher than the x value of the final vparams point. This just ensures that the pitch and speed will be completely variable throughout when the sound can be heard in the game.

 Piper_PA18 - [wind_sound]
 ( rparams=16.0000,0.660000,120.0000,0.910000 )

 Piper_PA18 - [wind_sound.1.03]
 ( rparams=28.9000,0.767000,120.6000,1.003000 )
 vparams Defines the sound's amplitude envelope. Represents the sound's volume as a function. Each pair of values specified in vparams represents a single (x,y) point, you can use up to 8 points to describe the amplitude envelope. The first (x) number in the pair always ranges from 0.0 to 1.0 and represents the engine RPM level (where 1.0 is max RPMs), the second (y) number specifies the volume at that RPM level. The units for volume are linear, with a value of 50 meaning -3dB attenuation, and 0 meaning silence.

Compared with rparams and vparams for engine sounds, the (x,y) maximum number ranges are slightly higher. Whilst with engine sounds our 'x' (aircraft speed) value would never go above 100.000000, based on examples, for wind sounds this can go anywhere up to 240.000000. And for the 'y' value (volume) this has been observed to be up to 60.000000 in some cases.

(Note: unlike the example given in the right hand column -> none of the equals symbol, numbers and commas should have gaps between them, this was just done for this example to help show the changes in x and y values

 Piper_PA18 - [wind_sound]
 ( vparams=
 0.000000,0.000100,
 15.500000,1.200000,
 40.300000,4.800000,
 65.900000,8.400000,
 80.800000,12.600000,
 95.700000,10.200000,
 105.200000,8.800000,
 120.000000,5.000000 )
 maximum_volume Specifies the highest possible volume--the sound never exceeds the volume specified. (Volume is specified in 1/100dB units, with a value of 10,000 being the maximum possible volume.).

 Piper_PA18 - [wind_sound] ( maximum_volume=6500 )
 minimum_volume Specifies the lowest possible volume--if the sound drops below the minimum volume specified, it will not be heard. Volume is specified in 1/100dB units, with a value of 10,000 being the maximum possible volume.

If the aircraft's speed is between the minimum speed and maximum speed, the playback rate is interpolated.

 ( minimum_volume=0 )
 minimum_rate Specifies the minimum rate at which the sound is played. If the aircraft's speed is between minimum_speed and maximum_speed, the playback rate is interpolated between the minimum_rate and maximum_rate values.

 ( minimum_rate=0 )
 maximum_rate Specifies the maximum rate at which the sound is played. If the aircraft's speed is between minimum_speed and maximum_speed, the playback rate is interpolated between the minimum_rate and maximum_rate values.

 ( maximum_rate=1.0 )
 minimum_speed Specifies the minimum speed (in KTAS) used by the _volume and _rate parameters.

 ( minimum_speed=3 )
 maximum_speed Specifies the speed (in KTAS) above which the sound has constant volume and pitch. 

 ( maximum_speed=55 )
 ConePitch

 The pitch, in degrees, of the sound cone. 

90 is directly downwards, 270 is directly upwards, 0 is directly forwards. For all engine sounds, this should usually be set to 0.0.

 Piper_PA18 - [wind_sound] ( ConePitch=0.000000 )
 ConeHeading

 Direction of sound cone in degrees in a circle around the aircraft, as if from a top-down view. 

0 is facing forward, 180 is facing backwards.

 Piper_PA18 - [wind_sound] ( ConeHeading=0.000000 )
 InsideConeAngle

 The following number of 'cone' parameters are used to define how the sound is heard from the position of external spot or tower camera views in relation to the sound source (i.e. whether you're facing the front of the engine, or facing forwards from behind the engine, etc). Aside from 'OutsideConeVolume' these cone parameters are always specified in degrees, representing an imaginary circle around the aircraft/point source of the sound. These parameters will have no effect if added to internal sounds (those defined with a viewpoint value of '1'). 

Inside sound cone angle in degrees. This defines an area around the plane in which the sound will be heard at its maximum possible value (constrained by vparams and maximum_volume of course). It's worth noting that the value given here will be halved to either side of the defined ConeHeading value (this acts as a centre-line); so for an InsideConeAngle of 90.0 this will be split to be 45.0 degrees left of the ConeHeading and 45.0 degrees right of the ConeHeading 'centre-line'.

 Piper_PA18 - [wind_sound] ( InsideConeAngle=90 )
 OutsideConeAngle

 Outside sound cone angle in degrees. This defines an area in which the sound will attenuate down to the defined OutsideConeVolume value or up to the volume in the InsideConeAngle area. The value given here will be halved to either side of the defined ConeHeading value (this acts as a centre-line); so for an OutsideConeAngle of 180.0 this will be split to be 90.0 degrees left of the ConeHeading and 90.0 degrees right of the ConeHeading 'centre-line'. 

It's worth noting that the OutsideConeAngle overlaps the InsideConeAngle, where there is this overlap, InsideConeAngle takes priority. Thus when setting the value for OutsideConeAngle, it's important to make sure it's larger than the value for InsideConeAngle, otherwise there will be no gradual increase/decrease in volume as you pan the camera around the aircraft, the volume will simply jump quite noticeably to the OutsideConeVolume setting.

 Piper_PA18 - [wind_sound] ( OutsideConeAngle=360 )
 OutsideConeVolume

 Defined as the maximum volume heard outside the sound cone.  the sound will never exceed the volume specified. (Volume is specified in 1/100dB units, with a value of 10,000 being maximum possible volume.

 Piper_PA18 - [wind_sound] ( OutsideConeVolume=8800 )
 full_scale_distance

 The distance in meters away from the sound source, when the sound begins to attenuate. This is not a linear attenuation, but conforms to the inverse square law.

 Piper_PA18 - [wind_sound.1.02] ( full_scale_distance=30 )
 link References the next sound in a sound list (by section heading name). Some ground sounds are made up of several .wav files, and each .wav file has its own section in the .cfg file.

 Piper_PA18 - [wind_sound] ( link=wind_sound.1.01 )

Final Notes

For editing vparams and rparams sections, it's recommended to use a spreadsheet package to model the envelope graphs and extract the values from there. Alternatively, the FSW aircraft should give solid (and tested) reference bases.

Additionally, it's important to ensure that all "forward" sounds on an aircraft, the 'ConeHeading' value is set to point in the intended direction (0 degrees for forward) and that for all "rear" sounds the 'ConeHeading' is set to the opposite (180 degrees). This is something that can easily be missed when setting up the configuration file, however, if there are noticeable sudden dips in-game when panning around the aircraft, then it can usually be assumed that there is an issue with the cone settings. If working examples are required in setting these cone parameters, look at the sound.cfg files for the FSW core bundled aircraft; these have been set up to minimize any sense of the sound dipping massively when panning around an aircraft. 

Comments