sofar 1.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. docs/Makefile +20 -0
  2. docs/api_reference.rst +20 -0
  3. docs/conf.py +167 -0
  4. docs/contributing.rst +1 -0
  5. docs/history.rst +1 -0
  6. docs/index.rst +4 -0
  7. docs/make.bat +36 -0
  8. docs/readme.rst +1 -0
  9. docs/resources/conventions.py +162 -0
  10. docs/resources/working_with_sofa_HRIR_lateral.png +0 -0
  11. docs/resources/working_with_sofa_source_horizontal.png +0 -0
  12. docs/resources/working_with_sofa_source_lateral.png +0 -0
  13. docs/sofar.rst +82 -0
  14. sofar/__init__.py +28 -0
  15. sofar/io.py +427 -0
  16. sofar/sofa.py +1835 -0
  17. sofar/sofa_conventions/VERSION +1 -0
  18. sofar/sofa_conventions/conventions/AnnotatedEmitterAudio_0.2.csv +46 -0
  19. sofar/sofa_conventions/conventions/AnnotatedEmitterAudio_0.2.json +353 -0
  20. sofar/sofa_conventions/conventions/AnnotatedReceiverAudio_0.2.csv +46 -0
  21. sofar/sofa_conventions/conventions/AnnotatedReceiverAudio_0.2.json +353 -0
  22. sofar/sofa_conventions/conventions/FreeFieldDirectivityTF_1.1.csv +59 -0
  23. sofar/sofa_conventions/conventions/FreeFieldDirectivityTF_1.1.json +444 -0
  24. sofar/sofa_conventions/conventions/FreeFieldHRIR_1.0.csv +43 -0
  25. sofar/sofa_conventions/conventions/FreeFieldHRIR_1.0.json +333 -0
  26. sofar/sofa_conventions/conventions/FreeFieldHRTF_1.0.csv +44 -0
  27. sofar/sofa_conventions/conventions/FreeFieldHRTF_1.0.json +340 -0
  28. sofar/sofa_conventions/conventions/GeneralFIR-E_2.0.csv +37 -0
  29. sofar/sofa_conventions/conventions/GeneralFIR-E_2.0.json +270 -0
  30. sofar/sofa_conventions/conventions/GeneralFIR_1.0.csv +40 -0
  31. sofar/sofa_conventions/conventions/GeneralFIR_1.0.json +295 -0
  32. sofar/sofa_conventions/conventions/GeneralSOS_1.0.csv +40 -0
  33. sofar/sofa_conventions/conventions/GeneralSOS_1.0.json +306 -0
  34. sofar/sofa_conventions/conventions/GeneralTF-E_1.0.csv +38 -0
  35. sofar/sofa_conventions/conventions/GeneralTF-E_1.0.json +277 -0
  36. sofar/sofa_conventions/conventions/GeneralTF_1.0.csv +38 -0
  37. sofar/sofa_conventions/conventions/GeneralTF_1.0.json +277 -0
  38. sofar/sofa_conventions/conventions/GeneralTF_2.0.csv +38 -0
  39. sofar/sofa_conventions/conventions/GeneralTF_2.0.json +277 -0
  40. sofar/sofa_conventions/conventions/SimpleFreeFieldHRIR_1.0.csv +47 -0
  41. sofar/sofa_conventions/conventions/SimpleFreeFieldHRIR_1.0.json +369 -0
  42. sofar/sofa_conventions/conventions/SimpleFreeFieldHRSOS_1.0.csv +43 -0
  43. sofar/sofa_conventions/conventions/SimpleFreeFieldHRSOS_1.0.json +349 -0
  44. sofar/sofa_conventions/conventions/SimpleFreeFieldHRTF_1.0.csv +44 -0
  45. sofar/sofa_conventions/conventions/SimpleFreeFieldHRTF_1.0.json +340 -0
  46. sofar/sofa_conventions/conventions/SimpleFreeFieldSOS_1.0.csv +43 -0
  47. sofar/sofa_conventions/conventions/SimpleFreeFieldSOS_1.0.json +349 -0
  48. sofar/sofa_conventions/conventions/SimpleHeadphoneIR_1.0.csv +51 -0
  49. sofar/sofa_conventions/conventions/SimpleHeadphoneIR_1.0.json +396 -0
  50. sofar/sofa_conventions/conventions/SingleRoomMIMOSRIR_1.0.csv +78 -0
  51. sofar/sofa_conventions/conventions/SingleRoomMIMOSRIR_1.0.json +601 -0
  52. sofar/sofa_conventions/conventions/SingleRoomSRIR_1.0.csv +78 -0
  53. sofar/sofa_conventions/conventions/SingleRoomSRIR_1.0.json +601 -0
  54. sofar/sofa_conventions/conventions/deprecated/AnnotatedEmitterAudio_0.1.csv +46 -0
  55. sofar/sofa_conventions/conventions/deprecated/AnnotatedEmitterAudio_0.1.json +351 -0
  56. sofar/sofa_conventions/conventions/deprecated/AnnotatedReceiverAudio_0.1.csv +46 -0
  57. sofar/sofa_conventions/conventions/deprecated/AnnotatedReceiverAudio_0.1.json +351 -0
  58. sofar/sofa_conventions/conventions/deprecated/FreeFieldDirectivityTF_1.0.csv +58 -0
  59. sofar/sofa_conventions/conventions/deprecated/FreeFieldDirectivityTF_1.0.json +437 -0
  60. sofar/sofa_conventions/conventions/deprecated/GeneralFIRE_1.0.csv +37 -0
  61. sofar/sofa_conventions/conventions/deprecated/GeneralFIRE_1.0.json +270 -0
  62. sofar/sofa_conventions/conventions/deprecated/MultiSpeakerBRIR_0.3.csv +48 -0
  63. sofar/sofa_conventions/conventions/deprecated/MultiSpeakerBRIR_0.3.json +376 -0
  64. sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldHRIR_0.4.csv +43 -0
  65. sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldHRIR_0.4.json +333 -0
  66. sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldTF_0.4.csv +44 -0
  67. sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldTF_0.4.json +340 -0
  68. sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldTF_1.0.csv +44 -0
  69. sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldTF_1.0.json +340 -0
  70. sofar/sofa_conventions/conventions/deprecated/SimpleHeadphoneIR_0.1.csv +51 -0
  71. sofar/sofa_conventions/conventions/deprecated/SimpleHeadphoneIR_0.1.json +396 -0
  72. sofar/sofa_conventions/conventions/deprecated/SimpleHeadphoneIR_0.2.csv +51 -0
  73. sofar/sofa_conventions/conventions/deprecated/SimpleHeadphoneIR_0.2.json +396 -0
  74. sofar/sofa_conventions/conventions/deprecated/SingleRoomDRIR_0.2.csv +47 -0
  75. sofar/sofa_conventions/conventions/deprecated/SingleRoomDRIR_0.2.json +360 -0
  76. sofar/sofa_conventions/conventions/deprecated/SingleRoomDRIR_0.3.csv +47 -0
  77. sofar/sofa_conventions/conventions/deprecated/SingleRoomDRIR_0.3.json +360 -0
  78. sofar/sofa_conventions/conventions/deprecated/SingleTrackedAudio_0.1.csv +47 -0
  79. sofar/sofa_conventions/conventions/deprecated/SingleTrackedAudio_0.1.json +366 -0
  80. sofar/sofa_conventions/conventions/deprecated/SingleTrackedAudio_0.2.csv +51 -0
  81. sofar/sofa_conventions/conventions/deprecated/SingleTrackedAudio_0.2.json +397 -0
  82. sofar/sofa_conventions/rules/deprecations.json +13 -0
  83. sofar/sofa_conventions/rules/rules.json +819 -0
  84. sofar/sofa_conventions/rules/unit_aliases.json +11 -0
  85. sofar/sofa_conventions/rules/upgrade.json +226 -0
  86. sofar/sofa_conventions/write_upgrade_rules.py +139 -0
  87. sofar/sofa_conventions/write_verification_data.py +313 -0
  88. sofar/sofa_conventions/write_verification_rules.py +356 -0
  89. sofar/sofastream.py +301 -0
  90. sofar/update_conventions.py +449 -0
  91. sofar/utils.py +316 -0
  92. sofar-1.2.1.dist-info/LICENSE +22 -0
  93. sofar-1.2.1.dist-info/METADATA +136 -0
  94. sofar-1.2.1.dist-info/RECORD +105 -0
  95. sofar-1.2.1.dist-info/WHEEL +5 -0
  96. sofar-1.2.1.dist-info/top_level.txt +3 -0
  97. tests/__init__.py +0 -0
  98. tests/conftest.py +27 -0
  99. tests/test_deprecations.py +19 -0
  100. tests/test_io.py +349 -0
  101. tests/test_sofa.py +353 -0
  102. tests/test_sofa_upgrade_conventions.py +111 -0
  103. tests/test_sofa_verify.py +480 -0
  104. tests/test_sofastream.py +127 -0
  105. tests/test_utils.py +250 -0
@@ -0,0 +1,270 @@
1
+ {
2
+ "GLOBAL:Conventions": {
3
+ "default": "SOFA",
4
+ "flags": "rm",
5
+ "dimensions": null,
6
+ "type": "attribute",
7
+ "comment": ""
8
+ },
9
+ "GLOBAL:Version": {
10
+ "default": "1.0",
11
+ "flags": "rm",
12
+ "dimensions": null,
13
+ "type": "attribute",
14
+ "comment": ""
15
+ },
16
+ "GLOBAL:SOFAConventions": {
17
+ "default": "GeneralFIRE",
18
+ "flags": "rm",
19
+ "dimensions": null,
20
+ "type": "attribute",
21
+ "comment": "This conventions stores IRs for general purposes, i.e., only the mandatory, SOFA general metadata are pre-defined"
22
+ },
23
+ "GLOBAL:SOFAConventionsVersion": {
24
+ "default": "1.0",
25
+ "flags": "rm",
26
+ "dimensions": null,
27
+ "type": "attribute",
28
+ "comment": ""
29
+ },
30
+ "GLOBAL:APIName": {
31
+ "default": "",
32
+ "flags": "rm",
33
+ "dimensions": null,
34
+ "type": "attribute",
35
+ "comment": ""
36
+ },
37
+ "GLOBAL:APIVersion": {
38
+ "default": "",
39
+ "flags": "rm",
40
+ "dimensions": null,
41
+ "type": "attribute",
42
+ "comment": ""
43
+ },
44
+ "GLOBAL:ApplicationName": {
45
+ "default": "",
46
+ "flags": null,
47
+ "dimensions": null,
48
+ "type": "attribute",
49
+ "comment": ""
50
+ },
51
+ "GLOBAL:ApplicationVersion": {
52
+ "default": "",
53
+ "flags": null,
54
+ "dimensions": null,
55
+ "type": "attribute",
56
+ "comment": ""
57
+ },
58
+ "GLOBAL:AuthorContact": {
59
+ "default": "",
60
+ "flags": "m",
61
+ "dimensions": null,
62
+ "type": "attribute",
63
+ "comment": ""
64
+ },
65
+ "GLOBAL:Comment": {
66
+ "default": "",
67
+ "flags": "m",
68
+ "dimensions": null,
69
+ "type": "attribute",
70
+ "comment": ""
71
+ },
72
+ "GLOBAL:DataType": {
73
+ "default": "FIRE",
74
+ "flags": "rm",
75
+ "dimensions": null,
76
+ "type": "attribute",
77
+ "comment": "We use FIR datatype which in addition depends on Emitters (E)"
78
+ },
79
+ "GLOBAL:History": {
80
+ "default": "",
81
+ "flags": null,
82
+ "dimensions": null,
83
+ "type": "attribute",
84
+ "comment": ""
85
+ },
86
+ "GLOBAL:License": {
87
+ "default": "No license provided, ask the author for permission",
88
+ "flags": "m",
89
+ "dimensions": null,
90
+ "type": "attribute",
91
+ "comment": ""
92
+ },
93
+ "GLOBAL:Organization": {
94
+ "default": "",
95
+ "flags": "m",
96
+ "dimensions": null,
97
+ "type": "attribute",
98
+ "comment": ""
99
+ },
100
+ "GLOBAL:References": {
101
+ "default": "",
102
+ "flags": null,
103
+ "dimensions": null,
104
+ "type": "attribute",
105
+ "comment": ""
106
+ },
107
+ "GLOBAL:RoomType": {
108
+ "default": "free field",
109
+ "flags": "m",
110
+ "dimensions": null,
111
+ "type": "attribute",
112
+ "comment": "The room information can be arbitrary"
113
+ },
114
+ "GLOBAL:Origin": {
115
+ "default": "",
116
+ "flags": null,
117
+ "dimensions": null,
118
+ "type": "attribute",
119
+ "comment": ""
120
+ },
121
+ "GLOBAL:DateCreated": {
122
+ "default": "",
123
+ "flags": "m",
124
+ "dimensions": null,
125
+ "type": "attribute",
126
+ "comment": ""
127
+ },
128
+ "GLOBAL:DateModified": {
129
+ "default": "",
130
+ "flags": "m",
131
+ "dimensions": null,
132
+ "type": "attribute",
133
+ "comment": ""
134
+ },
135
+ "GLOBAL:Title": {
136
+ "default": "",
137
+ "flags": "m",
138
+ "dimensions": null,
139
+ "type": "attribute",
140
+ "comment": ""
141
+ },
142
+ "ListenerPosition": {
143
+ "default": [
144
+ 0,
145
+ 0,
146
+ 0
147
+ ],
148
+ "flags": "m",
149
+ "dimensions": "IC, MC",
150
+ "type": "double",
151
+ "comment": ""
152
+ },
153
+ "ListenerPosition:Type": {
154
+ "default": "cartesian",
155
+ "flags": "m",
156
+ "dimensions": null,
157
+ "type": "attribute",
158
+ "comment": ""
159
+ },
160
+ "ListenerPosition:Units": {
161
+ "default": "metre",
162
+ "flags": "m",
163
+ "dimensions": null,
164
+ "type": "attribute",
165
+ "comment": ""
166
+ },
167
+ "ReceiverPosition": {
168
+ "default": [
169
+ 0,
170
+ 0,
171
+ 0
172
+ ],
173
+ "flags": "m",
174
+ "dimensions": "rCI, rCM",
175
+ "type": "double",
176
+ "comment": ""
177
+ },
178
+ "ReceiverPosition:Type": {
179
+ "default": "cartesian",
180
+ "flags": "m",
181
+ "dimensions": null,
182
+ "type": "attribute",
183
+ "comment": ""
184
+ },
185
+ "ReceiverPosition:Units": {
186
+ "default": "metre",
187
+ "flags": "m",
188
+ "dimensions": null,
189
+ "type": "attribute",
190
+ "comment": ""
191
+ },
192
+ "SourcePosition": {
193
+ "default": [
194
+ 0,
195
+ 0,
196
+ 1
197
+ ],
198
+ "flags": "m",
199
+ "dimensions": "IC, MC",
200
+ "type": "double",
201
+ "comment": ""
202
+ },
203
+ "SourcePosition:Type": {
204
+ "default": "spherical",
205
+ "flags": "m",
206
+ "dimensions": null,
207
+ "type": "attribute",
208
+ "comment": ""
209
+ },
210
+ "SourcePosition:Units": {
211
+ "default": "degree, degree, metre",
212
+ "flags": "m",
213
+ "dimensions": null,
214
+ "type": "attribute",
215
+ "comment": ""
216
+ },
217
+ "EmitterPosition": {
218
+ "default": [
219
+ 0,
220
+ 0,
221
+ 0
222
+ ],
223
+ "flags": "m",
224
+ "dimensions": "eCI, eCM",
225
+ "type": "double",
226
+ "comment": "Each speaker is represented as an emitter. Use EmitterPosition to represent the position of a particular speaker. Size of EmitterPosition determines E"
227
+ },
228
+ "EmitterPosition:Type": {
229
+ "default": "cartesian",
230
+ "flags": "m",
231
+ "dimensions": null,
232
+ "type": "attribute",
233
+ "comment": ""
234
+ },
235
+ "EmitterPosition:Units": {
236
+ "default": "metre",
237
+ "flags": "m",
238
+ "dimensions": null,
239
+ "type": "attribute",
240
+ "comment": ""
241
+ },
242
+ "Data.IR": {
243
+ "default": 0,
244
+ "flags": "m",
245
+ "dimensions": "mREn",
246
+ "type": "double",
247
+ "comment": "Impulse responses"
248
+ },
249
+ "Data.SamplingRate": {
250
+ "default": 48000,
251
+ "flags": "m",
252
+ "dimensions": "I",
253
+ "type": "double",
254
+ "comment": "Sampling rate of the samples in Data.IR and Data.Delay"
255
+ },
256
+ "Data.SamplingRate:Units": {
257
+ "default": "hertz",
258
+ "flags": "m",
259
+ "dimensions": null,
260
+ "type": "attribute",
261
+ "comment": "Unit of the sampling rate"
262
+ },
263
+ "Data.Delay": {
264
+ "default": 0,
265
+ "flags": "m",
266
+ "dimensions": "IRE, MRE",
267
+ "type": "double",
268
+ "comment": "Additional delay of each IR (in samples)"
269
+ }
270
+ }
@@ -0,0 +1,48 @@
1
+ Name Default Flags Dimensions Type Comment
2
+ GLOBAL:Conventions SOFA rm attribute
3
+ GLOBAL:Version 1.0 rm attribute
4
+ GLOBAL:SOFAConventions MultiSpeakerBRIR rm attribute This convention is for BRIRs recorded in reverberant conditions from multiple loudspeaker sources at a number of listener orientations.
5
+ GLOBAL:SOFAConventionsVersion 0.3 rm attribute
6
+ GLOBAL:APIName rm attribute
7
+ GLOBAL:APIVersion rm attribute
8
+ GLOBAL:ApplicationName attribute
9
+ GLOBAL:ApplicationVersion attribute
10
+ GLOBAL:AuthorContact m attribute
11
+ GLOBAL:Comment m attribute
12
+ GLOBAL:DataType FIRE rm attribute We use FIR datatype which in addition depends on Emitters (E)
13
+ GLOBAL:History attribute
14
+ GLOBAL:License No license provided, ask the author for permission m attribute
15
+ GLOBAL:Organization m attribute
16
+ GLOBAL:References attribute
17
+ GLOBAL:RoomType reverberant m attribute
18
+ GLOBAL:Origin attribute
19
+ GLOBAL:DateCreated m attribute
20
+ GLOBAL:DateModified m attribute
21
+ GLOBAL:Title m attribute
22
+ ListenerPosition [0 0 0] m IC, MC double
23
+ ListenerPosition:Type cartesian m attribute
24
+ ListenerPosition:Units metre m attribute
25
+ ReceiverPosition [0 0.09 0; 0 -0.09 0] m rCI, rCM double
26
+ ReceiverPosition:Type cartesian m attribute
27
+ ReceiverPosition:Units metre m attribute
28
+ SourcePosition [0 0 1] m IC, MC double
29
+ SourcePosition:Type spherical m attribute
30
+ SourcePosition:Units degree, degree, metre m attribute
31
+ EmitterPosition [0 0 0] m eCI, eCM double Each speaker is represented as an emitter. Use EmitterPosition to represent the position of a particular speaker. Size of EmitterPosition determines E
32
+ EmitterPosition:Type cartesian m attribute
33
+ EmitterPosition:Units metre m attribute
34
+ GLOBAL:DatabaseName m attribute name of the database to which these data belong
35
+ GLOBAL:ListenerShortName m attribute ID of the subject from the database
36
+ GLOBAL:RoomDescription attribute narrative description of the room
37
+ ListenerUp [0 0 1] m IC, MC double
38
+ ListenerView [1 0 0] m IC, MC double
39
+ ListenerView:Type cartesian m attribute
40
+ ListenerView:Units metre m attribute
41
+ EmitterUp [0 0 1] ECI, ECM double When EmitterUp provided, EmitterView must be provided as well
42
+ EmitterView [1 0 0] ECI, ECM double When EmitterView provided, EmitterUp must be provided as well
43
+ EmitterView:Type cartesian attribute
44
+ EmitterView:Units metre attribute
45
+ Data.IR [1 1] m mREn double
46
+ Data.SamplingRate 48000 m I double
47
+ Data.SamplingRate:Units hertz m attribute
48
+ Data.Delay [0 0] m IRE, MRE double
@@ -0,0 +1,376 @@
1
+ {
2
+ "GLOBAL:Conventions": {
3
+ "default": "SOFA",
4
+ "flags": "rm",
5
+ "dimensions": null,
6
+ "type": "attribute",
7
+ "comment": ""
8
+ },
9
+ "GLOBAL:Version": {
10
+ "default": "1.0",
11
+ "flags": "rm",
12
+ "dimensions": null,
13
+ "type": "attribute",
14
+ "comment": ""
15
+ },
16
+ "GLOBAL:SOFAConventions": {
17
+ "default": "MultiSpeakerBRIR",
18
+ "flags": "rm",
19
+ "dimensions": null,
20
+ "type": "attribute",
21
+ "comment": "This convention is for BRIRs recorded in reverberant conditions from multiple loudspeaker sources at a number of listener orientations."
22
+ },
23
+ "GLOBAL:SOFAConventionsVersion": {
24
+ "default": "0.3",
25
+ "flags": "rm",
26
+ "dimensions": null,
27
+ "type": "attribute",
28
+ "comment": ""
29
+ },
30
+ "GLOBAL:APIName": {
31
+ "default": "",
32
+ "flags": "rm",
33
+ "dimensions": null,
34
+ "type": "attribute",
35
+ "comment": ""
36
+ },
37
+ "GLOBAL:APIVersion": {
38
+ "default": "",
39
+ "flags": "rm",
40
+ "dimensions": null,
41
+ "type": "attribute",
42
+ "comment": ""
43
+ },
44
+ "GLOBAL:ApplicationName": {
45
+ "default": "",
46
+ "flags": null,
47
+ "dimensions": null,
48
+ "type": "attribute",
49
+ "comment": ""
50
+ },
51
+ "GLOBAL:ApplicationVersion": {
52
+ "default": "",
53
+ "flags": null,
54
+ "dimensions": null,
55
+ "type": "attribute",
56
+ "comment": ""
57
+ },
58
+ "GLOBAL:AuthorContact": {
59
+ "default": "",
60
+ "flags": "m",
61
+ "dimensions": null,
62
+ "type": "attribute",
63
+ "comment": ""
64
+ },
65
+ "GLOBAL:Comment": {
66
+ "default": "",
67
+ "flags": "m",
68
+ "dimensions": null,
69
+ "type": "attribute",
70
+ "comment": ""
71
+ },
72
+ "GLOBAL:DataType": {
73
+ "default": "FIRE",
74
+ "flags": "rm",
75
+ "dimensions": null,
76
+ "type": "attribute",
77
+ "comment": "We use FIR datatype which in addition depends on Emitters (E)"
78
+ },
79
+ "GLOBAL:History": {
80
+ "default": "",
81
+ "flags": null,
82
+ "dimensions": null,
83
+ "type": "attribute",
84
+ "comment": ""
85
+ },
86
+ "GLOBAL:License": {
87
+ "default": "No license provided, ask the author for permission",
88
+ "flags": "m",
89
+ "dimensions": null,
90
+ "type": "attribute",
91
+ "comment": ""
92
+ },
93
+ "GLOBAL:Organization": {
94
+ "default": "",
95
+ "flags": "m",
96
+ "dimensions": null,
97
+ "type": "attribute",
98
+ "comment": ""
99
+ },
100
+ "GLOBAL:References": {
101
+ "default": "",
102
+ "flags": null,
103
+ "dimensions": null,
104
+ "type": "attribute",
105
+ "comment": ""
106
+ },
107
+ "GLOBAL:RoomType": {
108
+ "default": "reverberant",
109
+ "flags": "m",
110
+ "dimensions": null,
111
+ "type": "attribute",
112
+ "comment": ""
113
+ },
114
+ "GLOBAL:Origin": {
115
+ "default": "",
116
+ "flags": null,
117
+ "dimensions": null,
118
+ "type": "attribute",
119
+ "comment": ""
120
+ },
121
+ "GLOBAL:DateCreated": {
122
+ "default": "",
123
+ "flags": "m",
124
+ "dimensions": null,
125
+ "type": "attribute",
126
+ "comment": ""
127
+ },
128
+ "GLOBAL:DateModified": {
129
+ "default": "",
130
+ "flags": "m",
131
+ "dimensions": null,
132
+ "type": "attribute",
133
+ "comment": ""
134
+ },
135
+ "GLOBAL:Title": {
136
+ "default": "",
137
+ "flags": "m",
138
+ "dimensions": null,
139
+ "type": "attribute",
140
+ "comment": ""
141
+ },
142
+ "GLOBAL:DatabaseName": {
143
+ "default": "",
144
+ "flags": "m",
145
+ "dimensions": null,
146
+ "type": "attribute",
147
+ "comment": "name of the database to which these data belong"
148
+ },
149
+ "GLOBAL:ListenerShortName": {
150
+ "default": "",
151
+ "flags": "m",
152
+ "dimensions": null,
153
+ "type": "attribute",
154
+ "comment": "ID of the subject from the database"
155
+ },
156
+ "GLOBAL:RoomDescription": {
157
+ "default": "",
158
+ "flags": null,
159
+ "dimensions": null,
160
+ "type": "attribute",
161
+ "comment": "narrative description of the room"
162
+ },
163
+ "ListenerPosition": {
164
+ "default": [
165
+ 0,
166
+ 0,
167
+ 0
168
+ ],
169
+ "flags": "m",
170
+ "dimensions": "IC, MC",
171
+ "type": "double",
172
+ "comment": ""
173
+ },
174
+ "ListenerPosition:Type": {
175
+ "default": "cartesian",
176
+ "flags": "m",
177
+ "dimensions": null,
178
+ "type": "attribute",
179
+ "comment": ""
180
+ },
181
+ "ListenerPosition:Units": {
182
+ "default": "metre",
183
+ "flags": "m",
184
+ "dimensions": null,
185
+ "type": "attribute",
186
+ "comment": ""
187
+ },
188
+ "ReceiverPosition": {
189
+ "default": [
190
+ [
191
+ 0,
192
+ 0.09,
193
+ 0
194
+ ],
195
+ [
196
+ 0,
197
+ -0.09,
198
+ 0
199
+ ]
200
+ ],
201
+ "flags": "m",
202
+ "dimensions": "rCI, rCM",
203
+ "type": "double",
204
+ "comment": ""
205
+ },
206
+ "ReceiverPosition:Type": {
207
+ "default": "cartesian",
208
+ "flags": "m",
209
+ "dimensions": null,
210
+ "type": "attribute",
211
+ "comment": ""
212
+ },
213
+ "ReceiverPosition:Units": {
214
+ "default": "metre",
215
+ "flags": "m",
216
+ "dimensions": null,
217
+ "type": "attribute",
218
+ "comment": ""
219
+ },
220
+ "SourcePosition": {
221
+ "default": [
222
+ 0,
223
+ 0,
224
+ 1
225
+ ],
226
+ "flags": "m",
227
+ "dimensions": "IC, MC",
228
+ "type": "double",
229
+ "comment": ""
230
+ },
231
+ "SourcePosition:Type": {
232
+ "default": "spherical",
233
+ "flags": "m",
234
+ "dimensions": null,
235
+ "type": "attribute",
236
+ "comment": ""
237
+ },
238
+ "SourcePosition:Units": {
239
+ "default": "degree, degree, metre",
240
+ "flags": "m",
241
+ "dimensions": null,
242
+ "type": "attribute",
243
+ "comment": ""
244
+ },
245
+ "EmitterPosition": {
246
+ "default": [
247
+ 0,
248
+ 0,
249
+ 0
250
+ ],
251
+ "flags": "m",
252
+ "dimensions": "eCI, eCM",
253
+ "type": "double",
254
+ "comment": "Each speaker is represented as an emitter. Use EmitterPosition to represent the position of a particular speaker. Size of EmitterPosition determines E"
255
+ },
256
+ "EmitterPosition:Type": {
257
+ "default": "cartesian",
258
+ "flags": "m",
259
+ "dimensions": null,
260
+ "type": "attribute",
261
+ "comment": ""
262
+ },
263
+ "EmitterPosition:Units": {
264
+ "default": "metre",
265
+ "flags": "m",
266
+ "dimensions": null,
267
+ "type": "attribute",
268
+ "comment": ""
269
+ },
270
+ "ListenerUp": {
271
+ "default": [
272
+ 0,
273
+ 0,
274
+ 1
275
+ ],
276
+ "flags": "m",
277
+ "dimensions": "IC, MC",
278
+ "type": "double",
279
+ "comment": ""
280
+ },
281
+ "ListenerView": {
282
+ "default": [
283
+ 1,
284
+ 0,
285
+ 0
286
+ ],
287
+ "flags": "m",
288
+ "dimensions": "IC, MC",
289
+ "type": "double",
290
+ "comment": ""
291
+ },
292
+ "ListenerView:Type": {
293
+ "default": "cartesian",
294
+ "flags": "m",
295
+ "dimensions": null,
296
+ "type": "attribute",
297
+ "comment": ""
298
+ },
299
+ "ListenerView:Units": {
300
+ "default": "metre",
301
+ "flags": "m",
302
+ "dimensions": null,
303
+ "type": "attribute",
304
+ "comment": ""
305
+ },
306
+ "EmitterUp": {
307
+ "default": [
308
+ 0,
309
+ 0,
310
+ 1
311
+ ],
312
+ "flags": null,
313
+ "dimensions": "ECI, ECM",
314
+ "type": "double",
315
+ "comment": "When EmitterUp provided, EmitterView must be provided as well"
316
+ },
317
+ "EmitterView": {
318
+ "default": [
319
+ 1,
320
+ 0,
321
+ 0
322
+ ],
323
+ "flags": null,
324
+ "dimensions": "ECI, ECM",
325
+ "type": "double",
326
+ "comment": "When EmitterView provided, EmitterUp must be provided as well"
327
+ },
328
+ "EmitterView:Type": {
329
+ "default": "cartesian",
330
+ "flags": null,
331
+ "dimensions": null,
332
+ "type": "attribute",
333
+ "comment": ""
334
+ },
335
+ "EmitterView:Units": {
336
+ "default": "metre",
337
+ "flags": null,
338
+ "dimensions": null,
339
+ "type": "attribute",
340
+ "comment": ""
341
+ },
342
+ "Data.IR": {
343
+ "default": [
344
+ 1,
345
+ 1
346
+ ],
347
+ "flags": "m",
348
+ "dimensions": "mREn",
349
+ "type": "double",
350
+ "comment": ""
351
+ },
352
+ "Data.SamplingRate": {
353
+ "default": 48000,
354
+ "flags": "m",
355
+ "dimensions": "I",
356
+ "type": "double",
357
+ "comment": ""
358
+ },
359
+ "Data.SamplingRate:Units": {
360
+ "default": "hertz",
361
+ "flags": "m",
362
+ "dimensions": null,
363
+ "type": "attribute",
364
+ "comment": ""
365
+ },
366
+ "Data.Delay": {
367
+ "default": [
368
+ 0,
369
+ 0
370
+ ],
371
+ "flags": "m",
372
+ "dimensions": "IRE, MRE",
373
+ "type": "double",
374
+ "comment": ""
375
+ }
376
+ }