SOUND DEFINITIONS

The sound.xml / soundai.xml file goes in the sound / soundai folder beside the other folders for the object and should be formatted as follows:

<?xml version="1.0" encoding="UTF-8"?>
<SoundInfo Version="1.0">
    <!-- SOUND DATA HERE -->
</SoundInfo>

Here you must include the <SoundInfo> element. The rest of the XML is comprised of the elements listed on this page. It is worth noting that possibly the most important of these elements is the <SimVarSounds> container, as it is possibly the easiest and most powerful way to incorporate sounds into the simulation.

 

Note For AI Aircraft

It should be noted that AI aircraft are limited in the SimVars they can use in the sound.xml file, due to the fact that they really only have engine and ground audio effects assigned to them. The full list of the SimVars that these AI aircraft can use is as follows:

 

  • Far distance (up to a maximum of 10,000m, although sounds will not be audible after 5,000m):
    1. SIM ON GROUND
    2. GENERAL ENG PCT MAX_RPM
    3. GENERAL ENG RPM
    4. VELOCITY WORLD X
    5. VELOCITY WORLD Y
    6. VELOCITY WORLD Z
    7. GROUND VELOCITY
    8. TURB ENG REVERSE NOZZLE PERCENT
    9. TURB ENG N1
    10. TURB ENG N2
    11. PROP BETA
    12. PROP RPM
    13. GENERAL ENG COMBUSTION
    14. GENERAL ENG COMBUSTION SOUND PERCENT
    15. ENG ROTOR RPM
    16. TURN INDICATOR RATE
    17. ROTOR COLLECTIVE BLADE PITCH PCT
    18. ROTOR CYCLIC BLADE PITCH PCT
    19. ROTOR CYCLIC BLADE MAX PITCH POSITION
    20. DISK PITCH ANGLE
    21. DISK BANK ANGLE
    22. DISK PITCH PCT
    23. DISK BANK PCT
    24. DISK CONING PCT
    25. ROTOR ROTATION ANGLE
    26. ROTOR LATERAL TRIM PCT
    27. ROTOR LONGITUDINAL TRIM PCT

 

  • Close distance (up to 500m):
    1. GEAR POSITION
    2. TRAILING EDGE FLAPS LEFT PERCENT
    3. TRAILING EDGE FLAPS RIGHT PERCENT
    4. LEADING EDGE FLAPS LEFT PERCENT
    5. LEADING EDGE FLAPS RIGHT PERCENT
    6. SPOILERS LEFT POSITION
    7. SPOILERS RIGHT POSITION
    8. GEAR ANIMATION POSITION
    9. CENTER WHEEL ROTATION ANGLE
    10. GEAR CENTER STEER ANGLE
    11. GEAR LEFT STEER ANGLE
    12. GEAR RIGHT STEER ANGLE
    13. GEAR STEER ANGLE
    14. RUDDER DEFLECTION PCT
    15. RUDDER TRIM PCT
    16. ELEVATOR DEFLECTION PCT
    17. AILERON LEFT DEFLECTION PCT
    18. AILERON RIGHT DEFLECTION PCT
    19. FLAPS HANDLE PERCENT
    20. PROP MAX RPM PERCENT
    21. PROP THRUST
    22. ENG RPM ANIMATION PERCENT
    23. PROP ROTATION ANGLE
    24. GENERAL ENG STARTER ACTIVE
    25. TURB ENG AFTERBURNER
    26. TURB ENG AFTERBURNER PCT ACTIVE
    27. TURB ENG AFTERBURNER STAGE ACTIVE

 

 

<SoundInfo>

This element is a container element for all the sound information. This element can contain the following sub-elements:

 

Attribute Description Type Required
Version Should represent the version of the program this XML is made for. String Yes

 

 

<WwisePackages>

This element allows to define the names of the main package and any additional packages to be loaded with the SimObject for <Sound> elements using the wwisedata=true attribute. This element has no attributes and is a container element for <MainPackage> and <AdditionalPackage> elements.

 

See this section of the examples page for more details: Wwise Package Definition Examples

 

<MainPackage>

This element describes the name of the MainPackage that needs to be loaded by the SimObject and is a sub-element of <WwisePackages>. This element has the following attribute:

 

Attribute Description Type Required
Name The name of the package. String Yes

 

For an audio package to be publishable, you must write your company name as a prefix, followed by the name of your aircraft, for example:

<MainPackage Name="Asobo_C152"/>

IMPORTANT: All wwise events included in the MainPackage must have its name as a prefix, followed by the name described by the WwiseEvent attributes.

 

<AdditionalPackage>

This element describes the name of any additional packages used for the add-on and is a sub-element of <WwisePackages>. This element has the following attribute:

 

Attribute Description Type Required
Name The name of the additional package. String Yes

 

The same as for the main packages, you must write your company name as a prefix, followed by the name of the aircraft, and followed by the name of the additional content.

IMPORTANT: Every event in wwise are prefixed by the name of the MainPackage and followed by the name described in the WwiseEvent attributes whether it comes from the main package or from any additional packages. So, for additional packages we recommend that you add a signature nomenclature to your WwiseEvents attributes so there won't be any collision between the mainpackage or other additional packages. For example, by adding the name of your company, if you are not the content creator of the main package.

 

 

<AcousticParameters>

This element permits you to set up the different acoustic parameters for the audio and is a sub-element of <SoundInfo>. This element has the no attributes and is a container element for <Parameter />. See this section of the examples page for more details:

 

<Parameter />

This sub-element of <AcousticParameters> permits you to define specific parameters for the acoustic environment. It has the following attributes:

 

Attribute Description Type Required
Name One of three names of the parameter to set.

String:

"ReverberationPreset"

"Insulation_ExitClosed"

"Insulation_ExitOpen"

Yes
ShareSetInside

These attributes are only used when the Name attribute is "ReverberationPreset". They allow you to customize special sharesets for the inside/outside buses. Shareset will be applied at runtime on a custom auxiliary bus.

NOTE: AI planes do not support shareset configuration for the inside bus.

String No
ShareSetOutside
Value

This attribute is only used when the Name attribute is "Insulation_ExitClosed" or "Insulation_ExitOpen". This allows you to set up the sound insulation of a cockpit to attenuate outside sounds. Values are set in dB, with a range of -24dB to 0dB (no attenuation). The attributes are the following:

  • "Insulation_ExitClosed": the value in dB with exit door closed
  • "Insulation_ExitOpen": the value in dB with exit door open
Float

 

 

<AlwaysPlaySounds>

This container element permits you to list various sound elements that play at all times and do not require any parameter to set up how and when they are triggered. It is a sub-element of <SoundInfo>, has no attributes and can contain one or more <Sound> elements.

 

 

<WindSounds>

This container element permits you to list various sound elements that play at all times and do not require any parameter to set up how and when they are triggered. The sounds listed here will also receive physics simulation variables by default through Wwise RTPCs in the Wwise data approach. All of these RTPCs are available in the WwiseSampleProject. The list of the shared RTPC can be found in the shared RTPC list.

 

This element is a sub-element of <SoundInfo>, has no attributes and can contain one or more <Sound> elements.

 

 

<GroundSounds>

This container element permits you to list various sound elements that will play when an aircraft is in contact with the ground in some way. This element is a sub-element of <SoundInfo>, has no attributes and can contain one or more <Sound> elements.

 

When defining the <Sound> sub-elements (and the WwiseData attribute is set to "true") the WwiseEvent attribute should be one of the following:

WwiseEvent Description
"GROUND_ROLL" Continuous sound when the wheels are in contact with the ground (sound loops).
"CENTER_TOUCHDOWN"

When the aircraft wheels touch the ground (sound is a one-shot).

"AUX_TOUCHDOWN"
"LEFT_TOUCHDOWN"
"RIGHT_TOUCHDOWN"
"FUSELAGE_SCRAPE" When a non-wheel component touches a solid element (sound loops).
"LEFT_WING_SCRAPE"
"RIGHT_WING_SCRAPE"
"AUX1_SCRAPE"
"AUX2_SCRAPE"
"XTAIL_SCRAPE"
"CRASH_SOUND" When the aircraft body touches the ground (sound is a one-shot).
"SPLASH_SOUND"

 

 

<EngineSoundStates>

This container element is linked to the state of the engine of the SimObject. This element is a sub-element of <SoundInfo>, has no attributes and can contain one or more <Sound> elements. Three different engine states are differentiated - Off, Start, and On - and three boolean values must be defined to set when the sound should be played in relation to the engine's state. These values are set using the <Sound> element attributes StateOff, StateStart, and StateOn for each engine sound.

 

See this section of the examples page for more details: Engine State And Transition Examples

 

 

<EngineSoundPresets>

This container element has no attributes and links sounds to specific play conditions based on their WwiseEvent, and mimics the behavior of the respective presets in the legacy sound.cfg format. The WwiseEvent will be named accordingly to the EngineIndex/RotorIndex (X) and the FSX legacy naming. This element is a sub-element of <SoundInfo>, has no attributes and can contain one or more <Sound> elements.

 

The table below lists the presets for the WwiseEvent attribute in the <Sound> element:

 

XML WwiseEvent Behavior Event Name in Wwise Loop or OneShot
JetWhine Played all the time engX_jet_whine Loop
NonCombustion When engine is "off" engX_non_combustion Loop
Starter When the engine is "starting" engX_starter Loop
CombustionStart When the e"gine goes from "starting” to "on" engX_combustion_start OneShot
Combustion When engine is "on" engX_combustion Loop
Propeller When engine is "on" engX_prop Loop
Rotor When engine is "on" rotorX_rotor Loop
Shutdown When the engine goes from "on" to "off" engX_shutdown OneShot

 

The <Sound> element for engine presets also have the following attributes included:

  • RPMMin - This setting allows to set the minimum RPM threshold (GENERAL ENG RPM simvar) from which the engine loop stops, and from which the Shutdown sound plays. Its purpose is to get a better transition between the loop and the engine shutdown when the engine state goes off.
  • CustomSuffix - In Wwise, each event has its own name and ID. This setting allows to use as many <EngineSoundPresets> as needed.

See this section of the examples page for more details: Engine Preset Examples

NOTE: By default, in a wwise data approach, each <EngineSoundPresets> event receives SimVar values through Wwise RTPCs. All of these RTPC are available in the WwiseSampleProject. The list of the shared RTPC can be found in the shared RTPC list.

 

 

<EngineSoundTransitions>

This container element for <Sound> has no attributes and triggers sounds when the engine goes from one state to another. The <Sound> element requires the attributes StateTo and StateFrom for the sound to be playable, and each can be set to Off, Start, or On.

 

See this section of the examples page for more details:

 

 

<MiscellaneousSounds>

This container element has no attributes and is for <Sound> to set those sounds that trigger when a corresponding event occurs. When the WwiseData attribute for the for <Sound> is true, there should be an accompanying WwiseEvent attribute, which will contain one of the following trigger strings to identify the type of sound event:

 

WwiseEvent Description
"FLAPS" Sound used for flaps.
"GEAR_UP" Sound used for retracting the landing gear.
"GEAR_DOWN" Sound used for lowering the landing gear.
"EXIT_OPEN" Sound used for opening the exit doors.
"EXIT_CLOSE" Sound used for closing the exit doors.
"BLAST_SHIELD_UP" Sound used for raising a blast shield.
"BLAST_SHIELD_DOWN" Sound used for lowering a blast shield.
"GYRO_SOUND" Sound used for the gyro.
"FUEL_PUMP" Sound used for the fuel pump.
"OVERSPEED_WARNING_SOUND" Warning sound for when the aircraft is over speed.
"STALL_WARNING" Warning sound for when the aircraft is going to enter in a stall.
"OVERSTRESS_WARNING" Warning sound for when the aircraft is over stressed.
"ALERT_OVER_G" Warning sound for when the aircraft is over Gs.
"GLIDESLOPE_WARNING_SOUND" Warning sound for when the aircraft is outside the glideslope.
"NO_SMOKING_ALERT" Sound for the no smoking alert.
"SEATBELTS_ALERT" Sound for the seatbelts alert.
"AP_DISENGAGE_WARNING" Warning for when the auto-pilot is disengaged.
"AP_PREFLIGHT_CHECK_OVER" Warning for when the auto-piolt pre-flight check is over.
"SONIC_BOOM" This sound event is a one shot sound, triggered when the listener enters the mach cone.

 

See this section of the examples page for more details:

 

 

<SimVarSounds>

This is a container element for one or more <Sound> sub-elements, and has no attributes. The sounds added to this element react to changes in values from the simulation variables directly. They can either be played when the watched value changes, or when the value reaches a specific range, which is defined by a LowerBound attribute and an UpperBound attribute (which default to -∞ and +∞) in the <Range /> sub-element.

 

Note that a <Sound> listed with this element will need a SimVar attribute, followed by Units and Index attributes. These three settings will define the simulation variable value that will be watched. The <Sound> element can also make use of the <Requires> sub-element to add another SimVar or LocalVar and create conditions under which sounds would be played. If the <Sound> element is using the LocalVar attribute, it should not have the Units and Index attributes.

 

See this section of the examples page for more details:

 

 

<EventIdSounds>

This is a container element for one or more <Sound> sub-elements, and has no attributes. The sounds added to this element are set to receive events from the simulation, and each event is paired with an associated value. The <Sound> elements require an EventId attribute (a string) to specify the event that they have to react to. They can be set to act every time the event is fired or only when the event changes its value by adding the attribute ChangedOnly to the <Sound> element. This attribute would be either "true" or "false", with the value being "false".

 

See this section of the examples page for more details:

 

 

<AnimationSounds>

This is a container element for one or more <Sound> sub-elements, and has no attributes. Sounds added in this element are triggered on animations implemented in the SimObject [model].xml files, and use the <Behaviors> element. Their main purpose is to play button and switch sounds in the cockpit, but they can also be used elsewhere, e.g: on flight controls, levers, jetway animations, etc...

 

See this section of the examples page for more details:

 

 

<AvionicSounds>

This is a container element for one or more <Sound> sub-elements, and has no attributes. It is primarily used to trigger sounds from the interior cockpit avionics. The <Sound> element WwiseEvent attribute should match the event defined in the panel.xml for the aircraft in the <SoundEvent> element (as part of an the <Alert>).

 

 

<Sound>

This element is a sub-element of all the elements listed in the document above and is used to define a single sound. In general, this is a self-closing element, although it can also contain the elements <Range />, <Requires>, and <WwiseRtpc />.

NOTE: Both sub-elements <Range /> and <Requires> are only applicable when the <Sound> element is within a <SimVarSounds> container.

The table below lists all the attributes that are shared between all the different sound elements, and they help define the most important elements of a sound. These attributes can be used as an attribute of a <Sound> element when using either a Wave Data and Wwise Data approach.

NOTE: Some special attributes are available for this element depending on what parent element it belongs to. These extra attributes are listed under the relevant parent element.

It is important to note that specific attributes come from the legacy sound.cfg properties and are only appropriate when the WwiseData attribute is set to "False". These attributes are set when porting from the old format to the XML format, and as such are listed separately here:

 

The available attributes have been split into two categories since some are universal (can be used in all cases), while others are only applicable when the element is included within the <SimVarSounds> container:

 

Attribute Description Type Required

Universal Attributes

WwiseEvent

This is a mandatory attribute in both wwiseData and WaveData approaches. It defines the name of the Wwise event to play in a sound element (the exception being sounds in the <EngineSoundPresets> element). In the WaveData approach, this attribute defines the Wwise event as a slot for the *.wav sound to be routed. These slots are limited to the existing ones. Please have a look to the Wave Data Sounds Properties page to get an overview of all the available Wwise event slots in a WaveData approach.

For information on how events should be named, please see the following section of the documentation:

String Yes
WwiseData

This setting defines if the sound is a *.wav file in the sound folder or audio included in a Wwise Soundbank. If "True" then the sound is using the WwiseData approach and is included in the SimObject *.PC.PCK file package. If "False" then the sound is using the WaveData approach and is a *.wav file located in the SimObject sound folder.

Bool No
ViewPoint This attribute specifies if the sound can be heard from outside the SimObject, inside the SimObject or both.

String:

"Inside"

"Outside"

"All"

FadeOutType This attribute allows for sounds to fade out when asked to stop playing. The value given determines how the fade out will be implemented.

Integer:

"0" - None

"1" - Linear

"2" - Sine

"3" - Reciprocal Sine

FadeOutTime This represents the time in seconds that the sound will take to fade out. Should only be included when FadeOutType is not "0" (None). Float
BreakOnStop

This attribute controls how a sound will behave when stopped. If "True", when a stop is called on a sound, it will play until its end before stopping. If "False" (the default value) the sound will be stopped instantly.

Bool
Continuous This attribute allows you to override the default value which defines whether a sound is played in a loop, or as a one-shot sound. Setting it to "True" tells the sim to loop the sound while setting it to "False" tells the sim to only play the sound once. Bool
ContinuousStopDelay

This attribute can be set to a value in seconds, and will delay the stop of a continuous sound. It is linked to the SimVar after the SimVar itself has stopped changing over time.

Float
ApplyCockpitReverb

This attribute allows you to activate (set to "True") or deactivate (set to "False") sending the sound to the game-defined bus set in the ReverberationPreset attribute (see <AcousticParameters>), when inside cockpit.

Bool
NodeName This attribute allows you to specify a node from the model to attach the sound to. If not set or if the node is not found, the system will attach the sound to the main node of the SimObject. This attribute is not available on engines sounds (<EngineSoundStates>, <EngineSoundPresets>, <EngineSoundTransitions>) as engines sounds are attached to the position of the engines specified in the engine configuration file (engines.cfg) thanks to the EngineIndex attribute. String
ConePitch The pitch, in degrees, of the sound cone. Float
ConeHeading The direction of the sound cone, in degrees. 0° is facing forward. Float
CancelConeHeadingWhenInside This attribute permits the cancellation of the ConeHeading setting (set to "True") whenever the simulation's ViewPoint is Inside. Set to "False" if you don't want to cancel this. Bool
EngineIndex The index of the engine to target, from 1 to 4. Integer
RotorIndex

The index of the rotor to target (for helicopters), from 1 to 2.

Note that the RotorIndex attribute is not independant, as it still needs an EngineIndex to work properly. See the Engine Preset Examples for an example of use.

Integer
RPMMin This allows you to define at which RPM the combustion and propeller / rotor events stop and the shutdown event will play. See the Engine Preset Examples for an example of use. Float
CustomSuffix This attribute allows you to add additional suffixes to any WwiseEvents. This way trigger sounds (<WindSounds>, <GroundSounds>, <MiscellaneousSounds>, etc...) can be doubled for the addition of new layers, or be replaced within an additional package. This attribute only works when the WwiseData attribute is "True". String

<SimVarSounds> Only Attributes

Animation The name of the animation group to target instead of a SimVar as the controller for the sound. If this attribute is supplied then you must also supply the Model attribute. Cannot be used if the SimVar, LocalVar, or InputEvent attributes have been used. String No
Model Flag the animation as being from either the interior or exterior models.

String:

  1. "Interior"
  2. "Exterior"
No
(Yes if the Animation attribute has been used)
InputEvent Defines an Input Event to be used to control the sound. Cannot be used if the SimVar, LocalVar, or Animation attributes have been used. String No
SimVar A SimVar to be used to control the sound. This attribute will also require you to use the Units and Index attributes. Cannot be used if the LocalVar, Animation, or InputEvent attributes have been used. String No
LocalVar A LocalVar to be used to control the sound. Cannot be used if the SimVar, Animation, or InputEvent attributes have been used. String No
Units The units of the SimVar or the InputEvent. This attribute is optional for Input Events since the simualtion will use the default units for the event if it is not included. If you do specify the unit here, the event value will be converted. String No
(Yes if the SimVar attribute has been used)
Index The SimVar index value. Integer No
(Yes if the SimVar attribute has been used)

 

<Range />

This self-closing element can be used to set the range for a <Sound> element using SimVars or LocalVars. It can have the following attributes:

NOTE: This sub-element is only applicable when the parent <Sound> element is in the <SimVarSounds> container.

 

Attribute Description Type Required
LowerBound The lower bound of the range. Float Yes
UpperBound The upper bound of the range Float Yes

 

<Requires>

This element permits you to add a SimVar or LocalVar to a <Sound> element to create conditions for playing a sound. It can have the following attributes:

NOTE: This sub-element is only applicable when the parent <Sound> element is in the <SimVarSounds> container.

 

Attribute Description Type Required
SimVar The required SimVar. Cannot be used if the LocalVar attribute has been used. String Yes
LocalVar The required LocalVar. Cannot be used if the SimVar attribute has been used. String Yes
Units The units of the SimVar. String Yes
Index The SimVar index value. Integer Yes

 

<WwiseRtpc />

This self-closing element is a sub-element of <Sound> and can only be used when the sound attribute WwiseData is "True". This element can be used to either:

  • send a simulation variable directly to Wwise, which requires that a SimVar or LocalVar value has been defined, as well as the name of the RTPC in Wwise.
  • use an animation position in the same way you'd use a SimVar, which requires that an animation group and model be given.

Note that a sound can have as many RTPC values as required.

 

The available attributes have been split into two categories since some are universal (can be used in all cases), while others are only applicable when the element is included within the <SimVarSounds> container:

 

Attribute Description Type Required

Universal Attributes

Derived Whether to permit a derived SimVar value ("True") or not ("False"). Bool No
RTPCName The name of the game parameter in Wwise. String Yes
RTPCAttackTime This attribute permits you to customize the smooth time during ascending movement. The smaller the value, the faster the target will be reached. Float No
RTPCReleaseTime This attribute permits you to customize the smooth time during descending movement. The smaller the value, the faster the target will be reached. Float No

<SimVarSounds> Only Attributes

SimVar A SimVar to be used to control the sound. This attribute will also require you to use the Units and Index attributes. Cannot be used if the LocalVar, Animation, or InputEvent attributes have been used. String No
LocalVar A LocalVar to be used to control the sound. Cannot be used if the SimVar, Animation, or InputEvent attributes have been used. String No
Units The units of the SimVar or the InputEvent. This attribute is optional for Input Events since the simualtion will use the default units for the event if it is not included. If you do specify the unit here, the event value will be converted. String No
(Yes if the SimVar attribute has been used)
Index The SimVar index value. Integer No
(Yes if the SimVar attribute has been used)
Animation The name of the animation group to target instead of a SimVar. If this attribute is supplied then you must also supply the Model attribute. Cannot be used if the SimVar, LocalVar, or InputEvent attributes have been used. String No
Model Flag the animation as being from either the interior or exterior models.

String:

  1. "Interior"
  2. "Exterior"
No
(Yes if the Animation attribute has been used)
InputEvent Defines an Input Event to be used to control the sound. Cannot be used if the SimVar, LocalVar, or Animation attributes have been used. String No