Sound: Processing Types – Arma 3
Lou Montana (talk | contribs) m (Lou Montana moved page Arma 3 Sound: Processing Types to Arma 3: Sound: Processing Types: Text replacement - "^Arma 3 " to "Arma 3: ") |
Lou Montana (talk | contribs) m (Text replacement - "ciev" to "ceiv") |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{GameCategory|arma3|Sound}} | |||
== Processing Types == | == Processing Types == | ||
Line 19: | Line 19: | ||
* virtual speakers (emitters) are always facing towards the listeners direction and they remain in the same distance from the listener (and to each other as well), so the positions of virtual speakers keep with player's movement (rotating around a circle) | * virtual speakers (emitters) are always facing towards the listeners direction and they remain in the same distance from the listener (and to each other as well), so the positions of virtual speakers keep with player's movement (rotating around a circle) | ||
{| | {| cellpadding="6" | ||
| [[File:A3_SoundProcessingType_Emitter.jpg]] | | [[File:A3_SoundProcessingType_Emitter.jpg]] | ||
| | | | ||
{| class="wikitable | {| class="wikitable" | ||
|- | |- | ||
! | ! Parameter | ||
! | ! Unit/values | ||
! | ! Default | ||
! | ! Description | ||
|- | |- | ||
!''type'' | ! ''type'' | ||
| type name | | type name | ||
| "emitter" | | "emitter" | ||
Line 37: | Line 37: | ||
|- | |- | ||
!''innerRange'' | ! ''innerRange'' | ||
| [m] | | [m] | ||
| 0 | | 0 | ||
Line 44: | Line 44: | ||
|- | |- | ||
!''range'' | ! ''range'' | ||
| [m] | | [m] | ||
| cfgSoundGlobals | | cfgSoundGlobals | ||
Line 51: | Line 51: | ||
|- | |- | ||
!''rangeCurve'' | ! ''rangeCurve'' | ||
| {{d0, v0}, {d1, v1}, ... } | | {{d0, v0}, {d1, v1}, ... } | ||
or Class name | or Class name | ||
Line 60: | Line 60: | ||
|- | |- | ||
!''radius'' | ! ''radius'' | ||
| [m] | | [m] | ||
| cfgSoundGlobals | | cfgSoundGlobals | ||
Line 67: | Line 67: | ||
|} | |} | ||
{| | {{Feature | informative | ||
| | | | ||
* consider emitter as a generator of virtual speakers for each recorded channel, so it is settings should correspond with the recording's actual microphone positions/directions | * consider emitter as a generator of virtual speakers for each recorded channel, so it is settings should correspond with the recording's actual microphone positions/directions | ||
* if ''range'' < ''innerRange'', the range value is set to the ''innerRange'' value | * if ''range'' < ''innerRange'', the range value is set to the ''innerRange'' value | ||
* if you require a static emitter, set the emitter's innerRange to a value greater than SoundShader's range value (emitters range value does not matter in this case) | * if you require a static emitter, set the emitter's innerRange to a value greater than SoundShader's range value (emitters range value does not matter in this case) | ||
}} | |||
|} | |} | ||
Line 80: | Line 80: | ||
Sound panner was designed for stereo wave files to provide smooth transition between ambient (2D) and positional (3D) sound behavior. | Sound panner was designed for stereo wave files to provide smooth transition between ambient (2D) and positional (3D) sound behavior. | ||
* In closer distances (below innerRange distance) sound behaves as 2D ambient sound, signal is distributed to all channels (left source channel to all left output channels, right source channel to all right output channels, center | * In closer distances (below innerRange distance) sound behaves as 2D ambient sound, signal is distributed to all channels (left source channel to all left output channels, right source channel to all right output channels, center receives mono downmix with half amplitude). | ||
* In larger distances (above ''range'' distance) sound behaves as 3D sound, both source channels are mixed to mono and played from sound source position. | * In larger distances (above ''range'' distance) sound behaves as 3D sound, both source channels are mixed to mono and played from sound source position. | ||
* Between ''innerRange'' and ''range'' there is an interpolation between two states described above, based on custom transition curve. | * Between ''innerRange'' and ''range'' there is an interpolation between two states described above, based on custom transition curve. | ||
{| | {| cellpadding="6" | ||
| [[File:A3 SoundProcessingType Panner.jpg]] | | [[File:A3 SoundProcessingType Panner.jpg]] | ||
| | | | ||
{| class="wikitable | {| class="wikitable" | ||
|- | |- | ||
! | ! Parameter | ||
! | ! Unit/values | ||
! | ! Default | ||
! | ! Description | ||
|- | |- | ||
!''type'' | ! ''type'' | ||
| type name | | type name | ||
| "panner" | | "panner" | ||
Line 102: | Line 102: | ||
|- | |- | ||
!''innerRange'' | ! ''innerRange'' | ||
| [m] | | [m] | ||
| 0 | | 0 | ||
Line 109: | Line 109: | ||
|- | |- | ||
!''range'' | ! ''range'' | ||
| [m] | | [m] | ||
| - | | - | ||
Line 116: | Line 116: | ||
|- | |- | ||
!''rangeCurve'' | ! ''rangeCurve'' | ||
| {{x0, y0}, {x1, y1}, ... } | | {{x0, y0}, {x1, y1}, ... } | ||
or Class name | or Class name | ||
Line 127: | Line 127: | ||
|} | |} | ||
{| | {{Feature | informative | ||
| | | | ||
* If listener is below innerRange distance, sound is played as usual stereo sound without any changes with rotation of the listener. | * If listener is below innerRange distance, sound is played as usual stereo sound without any changes with rotation of the listener. | ||
* If ''range'' < ''innerRange'', range value is set to ''innerRange'' value. | * If ''range'' < ''innerRange'', range value is set to ''innerRange'' value. | ||
}} | |||
|} | |} | ||
Line 143: | Line 143: | ||
* Using environment-related sound controllers, virtual speakers behaves as evaluation points. | * Using environment-related sound controllers, virtual speakers behaves as evaluation points. | ||
{| class="wikitable" | |||
{| class="wikitable | |||
|- | |- | ||
! | ! Parameter | ||
! | ! Unit/values | ||
! | ! Default | ||
! | ! Description | ||
|- | |- | ||
!''type'' | ! ''type'' | ||
| type name | | type name | ||
| "surround_panner" | | "surround_panner" | ||
Line 161: | Line 158: | ||
|- | |- | ||
!''radius'' | ! ''radius'' | ||
| [m] | | [m] | ||
| 7 | | 7 | ||
Line 168: | Line 165: | ||
|- | |- | ||
!''volumeFrontRight'' | ! ''volumeFrontRight'' | ||
| float (0..n) of [dBFS] | | float (0..n) of [dBFS] | ||
| 1 | | 1 | ||
Line 175: | Line 172: | ||
|- | |- | ||
!''volumeFrontLeft'' | ! ''volumeFrontLeft'' | ||
| float (0..n) of [dBFS] | | float (0..n) of [dBFS] | ||
| 1 | | 1 | ||
Line 182: | Line 179: | ||
|- | |- | ||
!''volumeRearRight'' | ! ''volumeRearRight'' | ||
| float (0..n) of [dBFS] | | float (0..n) of [dBFS] | ||
| 1 | | 1 | ||
Line 189: | Line 186: | ||
|- | |- | ||
!''volumeRearLeft'' | ! ''volumeRearLeft'' | ||
| float (0..n) of [dBFS] | | float (0..n) of [dBFS] | ||
| 1 | | 1 | ||
Line 196: | Line 193: | ||
|- | |- | ||
!''volumeAll'' | ! ''volumeAll'' | ||
| float (0..n) of [dBFS] | | float (0..n) of [dBFS] | ||
| 1 | | 1 | ||
Line 203: | Line 200: | ||
|- | |- | ||
!''reference'' | ! ''reference'' | ||
| "camera" | | "camera" | ||
| "camera" | | "camera" | ||
Line 210: | Line 207: | ||
|} | |} | ||
{| | {{Feature | informative | Currently, only these sound controllers are supported: ''forest, houses, sea, coast, meadow'' and only within EnvSounds configuration.}} | ||
| | |||
Currently, only these sound controllers are supported: ''forest, houses, sea, coast, meadow'' and only within EnvSounds configuration. | |||
Latest revision as of 23:33, 26 April 2024
Processing Types
Sound Processing Type in Arma 3 audio engine is method of distribution of source wave file channels to output channels.
All sound processing type classes have to be configured within base class CfgSound3DProcessors.
There are 3 different Sound Processing Types in Arma 3:
- Emitter - spatialized sounds (vehicle engines, animation sounds, weapon shooting without reflections, etc.)
- Panner - stereo sounds which behaves as "local ambients" in closer distance and clearly spatialized sounds in larger distance (weapon shooting reflections, tree leaves rustling, etc.)
- Surround Panner - stereo sounds with custom multichannel panner ("directional ambient ssounds")
Emitter
Sound is played from the location of sound source, so this approach should be used for sounds which need to be clearly spatialized.
- if source wave file is mono, sound is played exactly from the sound source position
- if source wave file is stereo (2 channels), two virtual speakers (emitters) are created on the horizontal circle with the sound source in the center
- virtual speakers (emitters) are always facing towards the listeners direction and they remain in the same distance from the listener (and to each other as well), so the positions of virtual speakers keep with player's movement (rotating around a circle)
Panner
Sound panner was designed for stereo wave files to provide smooth transition between ambient (2D) and positional (3D) sound behavior.
- In closer distances (below innerRange distance) sound behaves as 2D ambient sound, signal is distributed to all channels (left source channel to all left output channels, right source channel to all right output channels, center receives mono downmix with half amplitude).
- In larger distances (above range distance) sound behaves as 3D sound, both source channels are mixed to mono and played from sound source position.
- Between innerRange and range there is an interpolation between two states described above, based on custom transition curve.
|
Surround Panner
Ambient panner was designed to be used with stereo sounds (ambients) to simulate their source location by specifying volume values on predefined directions. Generally, it behaves as a multi-channel panner.
- Consider predefined directions as virtual speakers: front-right, front-left, rear-right, rear-left
- For dynamic changes of volume values, use simple expressions with sound controllers
- Using environment-related sound controllers, virtual speakers behaves as evaluation points.
Parameter | Unit/values | Default | Description |
---|---|---|---|
type | type name | "surround_panner" | |
radius | [m] | 7 |
|
volumeFrontRight | float (0..n) of [dBFS] | 1 |
|
volumeFrontLeft | float (0..n) of [dBFS] | 1 |
|
volumeRearRight | float (0..n) of [dBFS] | 1 |
|
volumeRearLeft | float (0..n) of [dBFS] | 1 |
|
volumeAll | float (0..n) of [dBFS] | 1 |
|
reference | "camera" | "camera" |
|