Directivity Extension
Version 30 (Nils Peters, 06/02/2009 01:16 am)
| 1 | 1 | h1. Directivity Extension |
|
|---|---|---|---|
| 2 | 1 | ||
| 3 | 1 | * Orientation of entity (Yaw, Pitch, Roll) |
|
| 4 | 1 | * Directivity model ...... there are different models out there, what might be the best? |
|
| 5 | 1 | o AudioTwist |
|
| 6 | 1 | o Spatialisateur (aperture) |
|
| 7 | 1 | o Space Unit Generator |
|
| 8 | 6 | Nils Peters | o openAL, directX |
| 9 | 1 | o X3D (ellipsoids) |
|
| 10 | 1 | o CATT-Acoustics (SD0, SD1, SD2 file format) |
|
| 11 | 1 | o Common Loudspeaker File Format (CLF) |
|
| 12 | 2 | Nils Peters | |
| 13 | 22 | Nils Peters | h1. Review |
| 14 | 2 | Nils Peters | |
| 15 | 14 | Nils Peters | h2. "OpenAL":http://connect.creativelabs.com/openal/default.aspx |
| 16 | 2 | Nils Peters | |
| 17 | 5 | Nils Peters | ??ability to simulate realistic directivity characteristics by either *specifying parametric filtering associated to radiation angles*, or *triplets of angle, frequency and attenuation*.?? |
| 18 | 7 | Nils Peters | (Jean Marc Jot, "Scene Description Model and Rendering Engine for Interactive Virtual Acoustics", 120th AES Convention) |
| 19 | 7 | Nils Peters | |
| 20 | 7 | Nils Peters | |
| 21 | 24 | Nils Peters | h2. "X3D":http://libx3d.sourceforge.net/ISO-IEC-19775-X3DAbstractSpecification/index.html Sound Node |
| 22 | 7 | Nils Peters | |
| 23 | 7 | Nils Peters | |
| 24 | 24 | Nils Peters | * Inner ellipsoid defines a volume of space in which the maximum level of the sound is audible. Within this ellipsoid, the normalized sample data is scaled by the intensity field and there is no attenuation. The inner ellipsoid is defined by extending the direction vector through the location. The @minBack@ and @minFront@ fields specify distances behind and in front of the location along the direction vector respectively. The inner ellipsoid has one of its foci at location (the second focus is implicit) and intersects the direction vector at @minBack@ and @minFront@. |
| 25 | 24 | Nils Peters | |
| 26 | 24 | Nils Peters | * Outer ellipsoid defines a volume of space that bounds the audibility of the sound. No sound can be heard outside of this outer ellipsoid. The outer ellipsoid is defined by extending the direction vector through the location. The @maxBack@ and @maxFront@ fields specify distances behind and in front of the location along the direction vector respectively. The outer ellipsoid has one of its foci at location (the second focus is implicit) and intersects the direction vector at @maxBack@ and @maxFront@. |
| 27 | 27 | Nils Peters | * The @minFront@, @maxFront@, @minBack@, and @maxBack@ fields are defined in local coordinates, and are ≥ zero. |
| 28 | 24 | Nils Peters | * @minBack@ ≤ @maxBack@ |
| 29 | 1 | * @minFront@ ≤ @maxFront@ |
|
| 30 | 24 | Nils Peters | * Parameters are specified in the local coordinate system but the ellipsoids' geometry is affected by ancestors' transformations. |
| 31 | 27 | Nils Peters | * Between the two ellipsoids, there shall be a *linear attenuation ramp* in loudness, from 0 dB at the minimum ellipsoid to -20 dB at the maximum ellipsoid: *attenuation = -20 × (d' / d")* (*d'* is the distance along the location-to-viewer vector, measured from the transformed minimum ellipsoid boundary to the viewer, and *d"* is the distance along the location-to-viewer vector from the transformed minimum ellipsoid boundary to the transformed maximum ellipsoid boundary) |
| 32 | 24 | Nils Peters | |
| 33 | 24 | Nils Peters | |
| 34 | 10 | Nils Peters | !X3D.gif! |
| 35 | 10 | Nils Peters | |
| 36 | 25 | Nils Peters | <pre> |
| 37 | 25 | Nils Peters | Sound : X3DSoundNode { |
| 38 | 25 | Nils Peters | SFVec3f [in,out] direction 0 0 1 (-∞,∞) |
| 39 | 25 | Nils Peters | SFFloat [in,out] intensity 1 [0,1] |
| 40 | 25 | Nils Peters | SFVec3f [in,out] location 0 0 0 (-∞,∞) |
| 41 | 25 | Nils Peters | SFFloat [in,out] maxBack 10 [0,∞) |
| 42 | 25 | Nils Peters | SFFloat [in,out] maxFront 10 [0,∞) |
| 43 | 25 | Nils Peters | SFNode [in,out] metadata NULL [X3DMetadataObject] |
| 44 | 25 | Nils Peters | SFFloat [in,out] minBack 1 [0,∞) |
| 45 | 25 | Nils Peters | SFFloat [in,out] minFront 1 [0,∞) |
| 46 | 25 | Nils Peters | SFFloat [in,out] priority 0 [0,1] |
| 47 | 25 | Nils Peters | SFNode [in,out] source NULL [X3DSoundSourceNode] |
| 48 | 25 | Nils Peters | SFBool [] spatialize TRUE |
| 49 | 25 | Nils Peters | }</pre> |
| 50 | 25 | Nils Peters | |
| 51 | 25 | Nils Peters | |
| 52 | 28 | Nils Peters | h2. [[Space Unit Generator]] |
| 53 | 28 | Nils Peters | |
| 54 | 28 | Nils Peters | !SUG.gif! |
| 55 | 10 | Nils Peters | |
| 56 | 11 | Nils Peters | h2. AudioTwist |
| 57 | 11 | Nils Peters | |
| 58 | 1 | h2. X3DAudio |
|
| 59 | 11 | Nils Peters | |
| 60 | 24 | Nils Peters | h2. "DirectX Audio / XACT":http://msdn.microsoft.com/en-us/library/bb147394(VS.85).aspx AUDIO_CONE |
| 61 | 15 | Nils Peters | |
| 62 | 23 | Nils Peters | * concentric cones |
| 63 | 23 | Nils Peters | |
| 64 | 23 | Nils Peters | * at any angle outside the outer cone, the volume is attenuated. The outside cone volume level is expressed as a linear amplitude scaler: 1.0f represents no attenuation applied to the original signal, 0.5f denotes an attenuation of 6dB, and 0.0f results in silence. Amplification (volume > 1.0f) is also allowed and is not clamped. The valid volume range is actually 0.0f to 2.0f. |
| 65 | 15 | Nils Peters | |
| 66 | 16 | Nils Peters | * Between the inner and outer cones is a zone of transition from the inside volume to the outside volume. The volume approaches the cone's outer volume as the angle increases. |
| 67 | 16 | Nils Peters | |
| 68 | 16 | Nils Peters | * Cones can affect parameters other than volume. Low pass filter and reverb send level may also be affected. For example, with a cone on the listener, one can specify all sounds behind the listener get a bit muffled and have slightly higher reverb-to-direct ratio content. |
| 69 | 16 | Nils Peters | |
| 70 | 16 | Nils Peters | !DirectX-Audio.gif! |
| 71 | 12 | Nils Peters | |
| 72 | 18 | Nils Peters | |
| 73 | 22 | Nils Peters | h3. API X3DAUDIO_CONE |
| 74 | 18 | Nils Peters | |
| 75 | 18 | Nils Peters | Specifies directionality for a single-channel non-LFE emitter by scaling DSP behavior with respect to the emitter's orientation. |
| 76 | 18 | Nils Peters | <pre> |
| 77 | 18 | Nils Peters | typedef struct X3DAUDIO_CONE { |
| 78 | 18 | Nils Peters | FLOAT32 InnerAngle; |
| 79 | 18 | Nils Peters | FLOAT32 OuterAngle; |
| 80 | 18 | Nils Peters | FLOAT32 InnerVolume; |
| 81 | 18 | Nils Peters | FLOAT32 OuterVolume; |
| 82 | 18 | Nils Peters | FLOAT32 InnerLPF; |
| 83 | 18 | Nils Peters | FLOAT32 OuterLPF; |
| 84 | 18 | Nils Peters | FLOAT32 InnerReverb; |
| 85 | 18 | Nils Peters | FLOAT32 OuterReverb; |
| 86 | 18 | Nils Peters | } X3DAUDIO_CONE, *LPX3DAUDIO_CONE;</pre> |
| 87 | 18 | Nils Peters | |
| 88 | 18 | Nils Peters | Members |
| 89 | 18 | Nils Peters | |
| 90 | 21 | Nils Peters | @InnerAngle@: Inner cone angle in radians. This value must be within 0.0f to X3DAUDIO_2PI. |
| 91 | 21 | Nils Peters | @OuterAngle@: Outer cone angle in radians. This value must be within InnerAngle to X3DAUDIO_2PI. |
| 92 | 21 | Nils Peters | @InnerVolume@: Volume scaler on/within inner cone. This value must be within 0.0f to 2.0f. |
| 93 | 21 | Nils Peters | @OuterVolume@: Volume scaler on/beyond outer cone. This value must be within 0.0f to 2.0f. |
| 94 | 21 | Nils Peters | @InnerLPF@: LPF direct-path or reverb-path coefficient scaler on/within inner cone. This value is only used for LPF calculations and must be within 0.0f to 1.0f. |
| 95 | 21 | Nils Peters | @OuterLPF@: LPF direct-path or reverb-path coefficient scaler on or beyond outer cone. This value is only used for LPF calculations and must be within 0.0f to 1.0f. |
| 96 | 21 | Nils Peters | @InnerReverb@: Reverb send level scaler on or within inner cone. This must be within 0.0f to 2.0f. |
| 97 | 21 | Nils Peters | @OuterReverb@: Reverb send level scaler on/beyond outer cone. This must be within 0.0f to 2.0f. |
| 98 | 18 | Nils Peters | |
| 99 | 18 | Nils Peters | |
| 100 | 12 | Nils Peters | h1. Files |