Directivity Extension

Version 44 (Nils Peters, 06/02/2009 04:50 pm)

1 1 Nils Peters
h1. Directivity Extension
2 1 Nils Peters
3 41 Nils Peters
* to describe radiation pattern of virtual sound sources 
4 41 Nils Peters
5 1 Nils Peters
    * Orientation of entity (Yaw, Pitch, Roll)
6 1 Nils Peters
    * Directivity model ...... there are different models out there, what might be the best?
7 1 Nils Peters
          o AudioTwist
8 1 Nils Peters
          o Spatialisateur (aperture)
9 1 Nils Peters
          o Space Unit Generator
10 6 Nils Peters
          o openAL, directX 
11 1 Nils Peters
          o X3D (ellipsoids)
12 1 Nils Peters
          o CATT-Acoustics (SD0, SD1, SD2 file format)
13 1 Nils Peters
          o Common Loudspeaker File Format (CLF)
14 2 Nils Peters
15 22 Nils Peters
h1. Review
16 2 Nils Peters
17 31 Nils Peters
h2. [[Spatialisateur]] 
18 31 Nils Peters
19 39 Nils Peters
not written yet
20 39 Nils Peters
21 31 Nils Peters
h2. [[Space Unit Generator]]
22 41 Nils Peters
23 41 Nils Peters
Frequency independent source radiation pattern is defined through the @back@ parameter which sets the radiation gain between 0 and 1. in the opposite direction. The result is a radiation pattern in cardioid shape form.
24 31 Nils Peters
25 31 Nils Peters
!SUG.gif!
26 1 Nils Peters
27 40 Nils Peters
h2. [[jmod.sur.vimic~|ViMiC]]
28 32 Nils Peters
29 35 Nils Peters
The source directivity can be modeled through a frequency independent gain factor between 0 and 1. for each radiation angle to a 1º accuracy.     
30 35 Nils Peters
                                                                          
31 32 Nils Peters
!ViMiC.gif!
32 1 Nils Peters
33 1 Nils Peters
h2. AudioTwist
34 39 Nils Peters
35 39 Nils Peters
not written yet
36 1 Nils Peters
37 36 Nils Peters
h2. "OpenAL":http://connect.creativelabs.com/openal/default.aspx
38 1 Nils Peters
39 36 Nils Peters
??ability to simulate realistic directivity characteristics by either *specifying parametric filtering associated to radiation angles*, or *triplets of angle, frequency and attenuation*.??
40 36 Nils Peters
(Jean Marc Jot, "Scene Description Model and Rendering Engine for Interactive Virtual Acoustics", 120th AES Convention)
41 31 Nils Peters
42 36 Nils Peters
h2. "X3D":http://libx3d.sourceforge.net/ISO-IEC-19775-X3DAbstractSpecification/index.html Sound Node
43 1 Nils Peters
44 36 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@.
45 1 Nils Peters
46 36 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@.
47 36 Nils Peters
* The @minFront@, @maxFront@, @minBack@, and @maxBack@ fields are defined in local coordinates, and are ≥ zero.
48 36 Nils Peters
* @minBack@ ≤ @maxBack@
49 36 Nils Peters
* @minFront@ ≤ @maxFront@
50 36 Nils Peters
* Parameters are specified in the local coordinate system but the ellipsoids' geometry is affected by ancestors' transformations.
51 36 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)
52 1 Nils Peters
53 36 Nils Peters
!X3D.gif!
54 1 Nils Peters
55 36 Nils Peters
 
56 38 Nils Peters
<pre>
57 1 Nils Peters
 Sound : X3DSoundNode { 
58 1 Nils Peters
   SFVec3f [in,out] direction    0 0 1 (-∞,∞) 
59 36 Nils Peters
   SFFloat [in,out] intensity    1       [0,1] 
60 36 Nils Peters
   SFVec3f [in,out] location     0 0 0 (-∞,∞) 
61 36 Nils Peters
   SFFloat [in,out] maxBack      10      [0,∞) 
62 1 Nils Peters
   SFFloat [in,out] maxFront     10      [0,∞) 
63 36 Nils Peters
   SFNode    [in,out] metadata     NULL    [X3DMetadataObject] 
64 36 Nils Peters
   SFFloat [in,out] minBack      1       [0,∞) 
65 36 Nils Peters
   SFFloat [in,out] minFront     1       [0,∞) 
66 36 Nils Peters
   SFFloat [in,out] priority     0       [0,1] 
67 36 Nils Peters
   SFNode    [in,out] source       NULL    [X3DSoundSourceNode] 
68 36 Nils Peters
   SFBool    []         spatialize TRUE 
69 38 Nils Peters
 }</pre>
70 36 Nils Peters
71 36 Nils Peters
72 36 Nils Peters
73 36 Nils Peters
h2. "DirectX Audio / XACT":http://msdn.microsoft.com/en-us/library/bb147394(VS.85).aspx AUDIO_CONE
74 36 Nils Peters
75 36 Nils Peters
* concentric cones
76 36 Nils Peters
77 36 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.
78 36 Nils Peters
79 36 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.
80 36 Nils Peters
81 36 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.
82 36 Nils Peters
83 36 Nils Peters
!DirectX-Audio.gif!
84 36 Nils Peters
85 36 Nils Peters
h3. API X3DAUDIO_CONE
86 36 Nils Peters
87 36 Nils Peters
Specifies directionality for a single-channel non-LFE emitter by scaling DSP behavior with respect to the emitter's orientation.
88 36 Nils Peters
89 36 Nils Peters
 
90 36 Nils Peters
<pre>
91 36 Nils Peters
 typedef struct X3DAUDIO_CONE { 
92 36 Nils Peters
     FLOAT32 InnerAngle; 
93 36 Nils Peters
     FLOAT32 OuterAngle; 
94 36 Nils Peters
     FLOAT32 InnerVolume; 
95 36 Nils Peters
     FLOAT32 OuterVolume; 
96 36 Nils Peters
     FLOAT32 InnerLPF; 
97 36 Nils Peters
     FLOAT32 OuterLPF; 
98 36 Nils Peters
     FLOAT32 InnerReverb; 
99 36 Nils Peters
     FLOAT32 OuterReverb; 
100 37 Nils Peters
 } X3DAUDIO_CONE, *LPX3DAUDIO_CONE;
101 36 Nils Peters
</pre>
102 36 Nils Peters
103 36 Nils Peters
Members
104 36 Nils Peters
105 36 Nils Peters
@InnerAngle@: Inner cone angle in radians. This value must be within 0.0f to X3DAUDIO_2PI.
106 36 Nils Peters
@OuterAngle@: Outer cone angle in radians. This value must be within InnerAngle to X3DAUDIO_2PI.
107 36 Nils Peters
@InnerVolume@: Volume scaler on/within inner cone. This value must be within 0.0f to 2.0f.
108 36 Nils Peters
@OuterVolume@: Volume scaler on/beyond outer cone. This value must be within 0.0f to 2.0f.
109 36 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.
110 36 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.
111 36 Nils Peters
@InnerReverb@: Reverb send level scaler on or within inner cone. This must be within 0.0f to 2.0f.
112 36 Nils Peters
@OuterReverb@: Reverb send level scaler on/beyond outer cone. This must be within 0.0f to 2.0f.
113 36 Nils Peters
114 42 Nils Peters
115 44 Nils Peters
h2. "Common Loudspeaker File Format":http://www.clfgroup.org/  (CLF)
116 42 Nils Peters
117 42 Nils Peters
* Open file format to describe loudspeaker performance and polar data
118 42 Nils Peters
* CLF is defined in two parts, a text-based format used for data input and editing, and a binary format for data distribution. 
119 42 Nils Peters
* "Tools":http://www.clfgroup.org/author.htm are available for data editing, conversion from text to binary format and viewing binary data.
120 43 Nils Peters
* CLF 1.0 supports two data resolutions. A CLF Type 1 file contains Octave/10 degree data, a CLF Type 2 file contains Third Octave/5 degree data. 
121 42 Nils Peters
122 36 Nils Peters
h1. Files