Users Guide to FlightGear sound configuration
-Version 0.7.10, Mar 02 2002
+Version 0.7.11, apr 27 2002
Author: Erik Hofman <erik@ehofman.com>
This document is an attempt to describe the configuration of
<name>engine</name>
<path>Sounds/wasp.wav</path>
<mode>looped</mode>
- <property>/engines/engine/running</property>
+ <condition>
+ <property>/engines/engine/running</property>
+ </condition>
<volume>
<property>/engines/engine/mp-osi</property>
<factor>0.005</factor>
< ... >
This is the event seperator. The text inside the brackets
can be anything. Bit it is adviced to give it a meaningfull name
- like: crank, engine, rumble, gear, squeal, flap, wind or stall
+ like: crank, engine, rumble, gear, squeal, flap, wind or stall
The value can be defined multiple times, thus anything which is
related may have the same name (grouping them together).
<name>
This defines the name of the event. This name is used internally
and, although it can me defined multiple times in the same file,
- should normally have an unique value.
+ should normally have an unique value.
Multiple definitions of the same name will allow multiple sections
to interfere in the starting and stopping of the sample.
Using the type "fall" will stop playback when the event turns true.
IMPORTANT:
- If the trigger is used for anything else but stopping the sound
+ If the trigger is used for anything else but stopping the sound
at a certain event, all sections with the same name *should* have
exactly the same sections for everything but property and type.
<path>
This defined th path to the sound file. The path is relative to the
FlightGear root directory but could be specified absolute.
-
- <property>
- Define which property triggers the event, and reffers to a node
- in the FlightGear property tree.
-
- The value is converted to an integer value (anything less than 0.5 is
- is considered to be 0) and handled if it were a boolean value
- (0 = false, anything else = true).
-
- The triger depends on the value of <type>.
-
- <type>
- This specifies how the event is triggered. When an event is triggered
- the sample will start playing. Since the effects scheduler can have
- multiple events controll a single sound event, it depends on the
- situation if an event actually stops playing the sound.
- Basically the following is true:
- The first event requesting to start playback, triggers playback.
- The last event requesting to stop playback, will stop playback.
+ <condition>
+ Define a condition that triggers the event.
+ For a complete description of the FlightGear conditions,
+ please read docs-mini/README.conditions
- There are multiple options:
+ An event should define either a condition or a property.
- level: events are active if the value is true.
- this is the default behaviour.
-
- inverted: events are active if the value is false.
-
- flipflop: events are triggered on state changes.
- this is only usefull for samples which are played
- once.
-
- raise: start playing at the raise of the event.
- explicitly stop playing when the event turns false.
+ <property>
+ Define which property triggers the event, and reffers to a node
+ in the FlightGear property tree. Action is taken when the property
+ is non zero.
- fall: start playing at the fall of the event.
- explicitly stop playing when the event turns true.
+ A more sophisticated mechanism to trigger the event is described
+ in <condition>
<mode>
This defines how the sample should be played:
looped: the sample plays continuesly,
until the event turns false.
-
+
+ in-transit: the sample plays continuesly,
+ while the property is changing its value.
<volume> / <pitch>
Volume or Pitch definition. Currently there may be up to 5
<property>
Defins which property supplies the value for the calculation.
+ Either a <property> or an <internal> should be defined.
The value is treatened as a floating point number.
+
+ <internal>
+ Defins which internal variable should be used for the calculation.
+ The value is treatened as a floating point number.
+ The following internals are available at this time:
+
+ dt_play: the number of seconds since the sound started playing.
+
+ dt_stop: the number of seconds after the sound has stopped.
<type>
Defines the function that should be used upon the property
this is the default.
ln: convert the property value to a natural logarithmic
- value before scaling it.
+ value before scaling it. Anything below 1 will return
+ zero.
log: convert the property value to a true logarithmic
- value before scaling it.
+ value before scaling it. Anything below 1 will return
+ zero.
inv: inverse lineair handling (1/x).
will be truncated to this value.
<max>
-
Maximum allowed value.
This is usefull if sounds gets to loud. Anything higher will be
truncated to this value.
+ <position>
+ Specify the position of the sounds source relative to the
+ pilot's ears. The coordinate system used is a right hand
+ coordinate system where -X = left, +X = right, -Y = down, +Y =
+ up, -Z = forward, +Z = aft. Distances are in meters.
+
+ <x>
+ X dimension offset
+
+ <y>
+ Y dimension offset
+
+ <z>
+ Z dimension offset
+
+
+ <orientation>
+ Specify the orientation of the sounds source.
+
+ The zero vector is default, indicating that a Source is not directional.
+ Specifying a non-zero vector will make the Source directional.
+
+ <x>
+ X dimension angle (0.0 - 360.0)
+
+ <y>
+ Y dimension angle (0.0 - 360.0)
+
+ <z>
+ Z dimension angle (0.0 - 360.0)
+
+ <inner-cone>
+ The inner edge of the audio cone in degrees (0.0 - 360.0).
+ Any sound withing that angle will be played at the current gain.
+
+ <outer-cone>
+ The outer edge of the audio cone in degrees (0.0 - 360.0).
+ Any sound beyond the outer cone will be played at "outer-gain" volume.
+
+ <outer-gain>
+ The gain at the outer edge of the cone.
+
+
+ <reference-dist>
+ Set a reference distance of sound in meters. This is the
+ distance where the gain/volume will be halved. This can be
+ useful for limiting cockpit sounds to the cockpit.
+
+ <max-dist>
+ Set the maximum audible distance for the sound in meters.
+ This can be useful for limiting cockpit sounds to the cockpit.
+
+
Creating a configrationfile:
---------------------------
type: lin
factor: 1.0
offset: 0.0 for volume, 1.0 for pitch
-min: 0.0 (don't check)
+min: 0.0
max: 0.0 (don't check)
for (n = 0; n < max; n++) {
if (factor < 0)
{
- value += offset[n] - abs(factor[n]) * function(property[n]);
+ value += offset[n] - abs(factor[n]) * function(property[n]);
}
else
{
- value += factor[n] * function(property[n]);
- offs += offset[n];
+ value += factor[n] * function(property[n]);
+ offs += offset[n];
}
}