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.
- docs/Makefile +20 -0
- docs/api_reference.rst +20 -0
- docs/conf.py +167 -0
- docs/contributing.rst +1 -0
- docs/history.rst +1 -0
- docs/index.rst +4 -0
- docs/make.bat +36 -0
- docs/readme.rst +1 -0
- docs/resources/conventions.py +162 -0
- docs/resources/working_with_sofa_HRIR_lateral.png +0 -0
- docs/resources/working_with_sofa_source_horizontal.png +0 -0
- docs/resources/working_with_sofa_source_lateral.png +0 -0
- docs/sofar.rst +82 -0
- sofar/__init__.py +28 -0
- sofar/io.py +427 -0
- sofar/sofa.py +1835 -0
- sofar/sofa_conventions/VERSION +1 -0
- sofar/sofa_conventions/conventions/AnnotatedEmitterAudio_0.2.csv +46 -0
- sofar/sofa_conventions/conventions/AnnotatedEmitterAudio_0.2.json +353 -0
- sofar/sofa_conventions/conventions/AnnotatedReceiverAudio_0.2.csv +46 -0
- sofar/sofa_conventions/conventions/AnnotatedReceiverAudio_0.2.json +353 -0
- sofar/sofa_conventions/conventions/FreeFieldDirectivityTF_1.1.csv +59 -0
- sofar/sofa_conventions/conventions/FreeFieldDirectivityTF_1.1.json +444 -0
- sofar/sofa_conventions/conventions/FreeFieldHRIR_1.0.csv +43 -0
- sofar/sofa_conventions/conventions/FreeFieldHRIR_1.0.json +333 -0
- sofar/sofa_conventions/conventions/FreeFieldHRTF_1.0.csv +44 -0
- sofar/sofa_conventions/conventions/FreeFieldHRTF_1.0.json +340 -0
- sofar/sofa_conventions/conventions/GeneralFIR-E_2.0.csv +37 -0
- sofar/sofa_conventions/conventions/GeneralFIR-E_2.0.json +270 -0
- sofar/sofa_conventions/conventions/GeneralFIR_1.0.csv +40 -0
- sofar/sofa_conventions/conventions/GeneralFIR_1.0.json +295 -0
- sofar/sofa_conventions/conventions/GeneralSOS_1.0.csv +40 -0
- sofar/sofa_conventions/conventions/GeneralSOS_1.0.json +306 -0
- sofar/sofa_conventions/conventions/GeneralTF-E_1.0.csv +38 -0
- sofar/sofa_conventions/conventions/GeneralTF-E_1.0.json +277 -0
- sofar/sofa_conventions/conventions/GeneralTF_1.0.csv +38 -0
- sofar/sofa_conventions/conventions/GeneralTF_1.0.json +277 -0
- sofar/sofa_conventions/conventions/GeneralTF_2.0.csv +38 -0
- sofar/sofa_conventions/conventions/GeneralTF_2.0.json +277 -0
- sofar/sofa_conventions/conventions/SimpleFreeFieldHRIR_1.0.csv +47 -0
- sofar/sofa_conventions/conventions/SimpleFreeFieldHRIR_1.0.json +369 -0
- sofar/sofa_conventions/conventions/SimpleFreeFieldHRSOS_1.0.csv +43 -0
- sofar/sofa_conventions/conventions/SimpleFreeFieldHRSOS_1.0.json +349 -0
- sofar/sofa_conventions/conventions/SimpleFreeFieldHRTF_1.0.csv +44 -0
- sofar/sofa_conventions/conventions/SimpleFreeFieldHRTF_1.0.json +340 -0
- sofar/sofa_conventions/conventions/SimpleFreeFieldSOS_1.0.csv +43 -0
- sofar/sofa_conventions/conventions/SimpleFreeFieldSOS_1.0.json +349 -0
- sofar/sofa_conventions/conventions/SimpleHeadphoneIR_1.0.csv +51 -0
- sofar/sofa_conventions/conventions/SimpleHeadphoneIR_1.0.json +396 -0
- sofar/sofa_conventions/conventions/SingleRoomMIMOSRIR_1.0.csv +78 -0
- sofar/sofa_conventions/conventions/SingleRoomMIMOSRIR_1.0.json +601 -0
- sofar/sofa_conventions/conventions/SingleRoomSRIR_1.0.csv +78 -0
- sofar/sofa_conventions/conventions/SingleRoomSRIR_1.0.json +601 -0
- sofar/sofa_conventions/conventions/deprecated/AnnotatedEmitterAudio_0.1.csv +46 -0
- sofar/sofa_conventions/conventions/deprecated/AnnotatedEmitterAudio_0.1.json +351 -0
- sofar/sofa_conventions/conventions/deprecated/AnnotatedReceiverAudio_0.1.csv +46 -0
- sofar/sofa_conventions/conventions/deprecated/AnnotatedReceiverAudio_0.1.json +351 -0
- sofar/sofa_conventions/conventions/deprecated/FreeFieldDirectivityTF_1.0.csv +58 -0
- sofar/sofa_conventions/conventions/deprecated/FreeFieldDirectivityTF_1.0.json +437 -0
- sofar/sofa_conventions/conventions/deprecated/GeneralFIRE_1.0.csv +37 -0
- sofar/sofa_conventions/conventions/deprecated/GeneralFIRE_1.0.json +270 -0
- sofar/sofa_conventions/conventions/deprecated/MultiSpeakerBRIR_0.3.csv +48 -0
- sofar/sofa_conventions/conventions/deprecated/MultiSpeakerBRIR_0.3.json +376 -0
- sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldHRIR_0.4.csv +43 -0
- sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldHRIR_0.4.json +333 -0
- sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldTF_0.4.csv +44 -0
- sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldTF_0.4.json +340 -0
- sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldTF_1.0.csv +44 -0
- sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldTF_1.0.json +340 -0
- sofar/sofa_conventions/conventions/deprecated/SimpleHeadphoneIR_0.1.csv +51 -0
- sofar/sofa_conventions/conventions/deprecated/SimpleHeadphoneIR_0.1.json +396 -0
- sofar/sofa_conventions/conventions/deprecated/SimpleHeadphoneIR_0.2.csv +51 -0
- sofar/sofa_conventions/conventions/deprecated/SimpleHeadphoneIR_0.2.json +396 -0
- sofar/sofa_conventions/conventions/deprecated/SingleRoomDRIR_0.2.csv +47 -0
- sofar/sofa_conventions/conventions/deprecated/SingleRoomDRIR_0.2.json +360 -0
- sofar/sofa_conventions/conventions/deprecated/SingleRoomDRIR_0.3.csv +47 -0
- sofar/sofa_conventions/conventions/deprecated/SingleRoomDRIR_0.3.json +360 -0
- sofar/sofa_conventions/conventions/deprecated/SingleTrackedAudio_0.1.csv +47 -0
- sofar/sofa_conventions/conventions/deprecated/SingleTrackedAudio_0.1.json +366 -0
- sofar/sofa_conventions/conventions/deprecated/SingleTrackedAudio_0.2.csv +51 -0
- sofar/sofa_conventions/conventions/deprecated/SingleTrackedAudio_0.2.json +397 -0
- sofar/sofa_conventions/rules/deprecations.json +13 -0
- sofar/sofa_conventions/rules/rules.json +819 -0
- sofar/sofa_conventions/rules/unit_aliases.json +11 -0
- sofar/sofa_conventions/rules/upgrade.json +226 -0
- sofar/sofa_conventions/write_upgrade_rules.py +139 -0
- sofar/sofa_conventions/write_verification_data.py +313 -0
- sofar/sofa_conventions/write_verification_rules.py +356 -0
- sofar/sofastream.py +301 -0
- sofar/update_conventions.py +449 -0
- sofar/utils.py +316 -0
- sofar-1.2.1.dist-info/LICENSE +22 -0
- sofar-1.2.1.dist-info/METADATA +136 -0
- sofar-1.2.1.dist-info/RECORD +105 -0
- sofar-1.2.1.dist-info/WHEEL +5 -0
- sofar-1.2.1.dist-info/top_level.txt +3 -0
- tests/__init__.py +0 -0
- tests/conftest.py +27 -0
- tests/test_deprecations.py +19 -0
- tests/test_io.py +349 -0
- tests/test_sofa.py +353 -0
- tests/test_sofa_upgrade_conventions.py +111 -0
- tests/test_sofa_verify.py +480 -0
- tests/test_sofastream.py +127 -0
- tests/test_utils.py +250 -0
@@ -0,0 +1,340 @@
|
|
1
|
+
{
|
2
|
+
"GLOBAL:Conventions": {
|
3
|
+
"default": "SOFA",
|
4
|
+
"flags": "rm",
|
5
|
+
"dimensions": null,
|
6
|
+
"type": "attribute",
|
7
|
+
"comment": ""
|
8
|
+
},
|
9
|
+
"GLOBAL:Version": {
|
10
|
+
"default": "2.1",
|
11
|
+
"flags": "rm",
|
12
|
+
"dimensions": null,
|
13
|
+
"type": "attribute",
|
14
|
+
"comment": ""
|
15
|
+
},
|
16
|
+
"GLOBAL:SOFAConventions": {
|
17
|
+
"default": "FreeFieldHRTF",
|
18
|
+
"flags": "rm",
|
19
|
+
"dimensions": null,
|
20
|
+
"type": "attribute",
|
21
|
+
"comment": "This conventions is for HRTFs created under conditions where room information is irrelevant and stored as SH coefficients"
|
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": null,
|
68
|
+
"dimensions": null,
|
69
|
+
"type": "attribute",
|
70
|
+
"comment": ""
|
71
|
+
},
|
72
|
+
"GLOBAL:DataType": {
|
73
|
+
"default": "TF-E",
|
74
|
+
"flags": "rm",
|
75
|
+
"dimensions": null,
|
76
|
+
"type": "attribute",
|
77
|
+
"comment": ""
|
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:ListenerShortName": {
|
94
|
+
"default": "",
|
95
|
+
"flags": "m",
|
96
|
+
"dimensions": null,
|
97
|
+
"type": "attribute",
|
98
|
+
"comment": "ID of the subject from the database"
|
99
|
+
},
|
100
|
+
"GLOBAL:Organization": {
|
101
|
+
"default": "",
|
102
|
+
"flags": "m",
|
103
|
+
"dimensions": null,
|
104
|
+
"type": "attribute",
|
105
|
+
"comment": ""
|
106
|
+
},
|
107
|
+
"GLOBAL:References": {
|
108
|
+
"default": "",
|
109
|
+
"flags": null,
|
110
|
+
"dimensions": null,
|
111
|
+
"type": "attribute",
|
112
|
+
"comment": ""
|
113
|
+
},
|
114
|
+
"GLOBAL:RoomType": {
|
115
|
+
"default": "free field",
|
116
|
+
"flags": "m",
|
117
|
+
"dimensions": null,
|
118
|
+
"type": "attribute",
|
119
|
+
"comment": ""
|
120
|
+
},
|
121
|
+
"GLOBAL:Origin": {
|
122
|
+
"default": "",
|
123
|
+
"flags": null,
|
124
|
+
"dimensions": null,
|
125
|
+
"type": "attribute",
|
126
|
+
"comment": ""
|
127
|
+
},
|
128
|
+
"GLOBAL:DateCreated": {
|
129
|
+
"default": "",
|
130
|
+
"flags": "m",
|
131
|
+
"dimensions": null,
|
132
|
+
"type": "attribute",
|
133
|
+
"comment": ""
|
134
|
+
},
|
135
|
+
"GLOBAL:DateModified": {
|
136
|
+
"default": "",
|
137
|
+
"flags": "m",
|
138
|
+
"dimensions": null,
|
139
|
+
"type": "attribute",
|
140
|
+
"comment": ""
|
141
|
+
},
|
142
|
+
"GLOBAL:Title": {
|
143
|
+
"default": "",
|
144
|
+
"flags": "m",
|
145
|
+
"dimensions": null,
|
146
|
+
"type": "attribute",
|
147
|
+
"comment": ""
|
148
|
+
},
|
149
|
+
"GLOBAL:DatabaseName": {
|
150
|
+
"default": "",
|
151
|
+
"flags": "m",
|
152
|
+
"dimensions": null,
|
153
|
+
"type": "attribute",
|
154
|
+
"comment": "Name of the database to which these data belong"
|
155
|
+
},
|
156
|
+
"ListenerPosition": {
|
157
|
+
"default": [
|
158
|
+
0,
|
159
|
+
0,
|
160
|
+
0
|
161
|
+
],
|
162
|
+
"flags": "m",
|
163
|
+
"dimensions": "IC, MC",
|
164
|
+
"type": "double",
|
165
|
+
"comment": ""
|
166
|
+
},
|
167
|
+
"ListenerPosition:Type": {
|
168
|
+
"default": "cartesian",
|
169
|
+
"flags": "m",
|
170
|
+
"dimensions": null,
|
171
|
+
"type": "attribute",
|
172
|
+
"comment": ""
|
173
|
+
},
|
174
|
+
"ListenerPosition:Units": {
|
175
|
+
"default": "metre",
|
176
|
+
"flags": "m",
|
177
|
+
"dimensions": null,
|
178
|
+
"type": "attribute",
|
179
|
+
"comment": ""
|
180
|
+
},
|
181
|
+
"ReceiverPosition": {
|
182
|
+
"default": [
|
183
|
+
[
|
184
|
+
0,
|
185
|
+
0.09,
|
186
|
+
0
|
187
|
+
],
|
188
|
+
[
|
189
|
+
0,
|
190
|
+
-0.09,
|
191
|
+
0
|
192
|
+
]
|
193
|
+
],
|
194
|
+
"flags": "m",
|
195
|
+
"dimensions": "RCI, RCM",
|
196
|
+
"type": "double",
|
197
|
+
"comment": ""
|
198
|
+
},
|
199
|
+
"ReceiverPosition:Type": {
|
200
|
+
"default": "cartesian",
|
201
|
+
"flags": "m",
|
202
|
+
"dimensions": null,
|
203
|
+
"type": "attribute",
|
204
|
+
"comment": ""
|
205
|
+
},
|
206
|
+
"ReceiverPosition:Units": {
|
207
|
+
"default": "metre",
|
208
|
+
"flags": "m",
|
209
|
+
"dimensions": null,
|
210
|
+
"type": "attribute",
|
211
|
+
"comment": ""
|
212
|
+
},
|
213
|
+
"SourcePosition": {
|
214
|
+
"default": [
|
215
|
+
0,
|
216
|
+
0,
|
217
|
+
0
|
218
|
+
],
|
219
|
+
"flags": "m",
|
220
|
+
"dimensions": "IC, MC",
|
221
|
+
"type": "double",
|
222
|
+
"comment": "Source position is assumed to be the ListenerPosition in order to reflect Emitters surrounding the Listener"
|
223
|
+
},
|
224
|
+
"SourcePosition:Type": {
|
225
|
+
"default": "spherical",
|
226
|
+
"flags": "m",
|
227
|
+
"dimensions": null,
|
228
|
+
"type": "attribute",
|
229
|
+
"comment": ""
|
230
|
+
},
|
231
|
+
"SourcePosition:Units": {
|
232
|
+
"default": "degree, degree, metre",
|
233
|
+
"flags": "m",
|
234
|
+
"dimensions": null,
|
235
|
+
"type": "attribute",
|
236
|
+
"comment": ""
|
237
|
+
},
|
238
|
+
"EmitterPosition": {
|
239
|
+
"default": [
|
240
|
+
0,
|
241
|
+
0,
|
242
|
+
0
|
243
|
+
],
|
244
|
+
"flags": "m",
|
245
|
+
"dimensions": "IC, ECI, ECM",
|
246
|
+
"type": "double",
|
247
|
+
"comment": "Radius in 'spherical harmonics', Position in 'cartesian' and 'spherical'"
|
248
|
+
},
|
249
|
+
"EmitterPosition:Type": {
|
250
|
+
"default": "spherical harmonics",
|
251
|
+
"flags": "m",
|
252
|
+
"dimensions": null,
|
253
|
+
"type": "attribute",
|
254
|
+
"comment": "Can be 'spherical harmonics', 'cartesian', or 'spherical'"
|
255
|
+
},
|
256
|
+
"EmitterPosition:Units": {
|
257
|
+
"default": "degree, degree, metre",
|
258
|
+
"flags": "m",
|
259
|
+
"dimensions": null,
|
260
|
+
"type": "attribute",
|
261
|
+
"comment": ""
|
262
|
+
},
|
263
|
+
"ListenerUp": {
|
264
|
+
"default": [
|
265
|
+
0,
|
266
|
+
0,
|
267
|
+
1
|
268
|
+
],
|
269
|
+
"flags": "m",
|
270
|
+
"dimensions": "IC, MC",
|
271
|
+
"type": "double",
|
272
|
+
"comment": ""
|
273
|
+
},
|
274
|
+
"ListenerView": {
|
275
|
+
"default": [
|
276
|
+
1,
|
277
|
+
0,
|
278
|
+
0
|
279
|
+
],
|
280
|
+
"flags": "m",
|
281
|
+
"dimensions": "IC, MC",
|
282
|
+
"type": "double",
|
283
|
+
"comment": ""
|
284
|
+
},
|
285
|
+
"ListenerView:Type": {
|
286
|
+
"default": "cartesian",
|
287
|
+
"flags": "m",
|
288
|
+
"dimensions": null,
|
289
|
+
"type": "attribute",
|
290
|
+
"comment": ""
|
291
|
+
},
|
292
|
+
"ListenerView:Units": {
|
293
|
+
"default": "metre",
|
294
|
+
"flags": "m",
|
295
|
+
"dimensions": null,
|
296
|
+
"type": "attribute",
|
297
|
+
"comment": ""
|
298
|
+
},
|
299
|
+
"N": {
|
300
|
+
"default": 0,
|
301
|
+
"flags": "m",
|
302
|
+
"dimensions": "N",
|
303
|
+
"type": "double",
|
304
|
+
"comment": ""
|
305
|
+
},
|
306
|
+
"N:LongName": {
|
307
|
+
"default": "frequency",
|
308
|
+
"flags": "m",
|
309
|
+
"dimensions": null,
|
310
|
+
"type": "attribute",
|
311
|
+
"comment": "narrative name of N"
|
312
|
+
},
|
313
|
+
"N:Units": {
|
314
|
+
"default": "hertz",
|
315
|
+
"flags": "m",
|
316
|
+
"dimensions": null,
|
317
|
+
"type": "attribute",
|
318
|
+
"comment": ""
|
319
|
+
},
|
320
|
+
"Data.Real": {
|
321
|
+
"default": [
|
322
|
+
0,
|
323
|
+
0
|
324
|
+
],
|
325
|
+
"flags": "m",
|
326
|
+
"dimensions": "mrne",
|
327
|
+
"type": "double",
|
328
|
+
"comment": ""
|
329
|
+
},
|
330
|
+
"Data.Imag": {
|
331
|
+
"default": [
|
332
|
+
0,
|
333
|
+
0
|
334
|
+
],
|
335
|
+
"flags": "m",
|
336
|
+
"dimensions": "MRNE",
|
337
|
+
"type": "double",
|
338
|
+
"comment": ""
|
339
|
+
}
|
340
|
+
}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
Name Default Flags Dimensions Type Comment
|
2
|
+
GLOBAL:Conventions SOFA rm attribute
|
3
|
+
GLOBAL:Version 2.1 rm attribute
|
4
|
+
GLOBAL:SOFAConventions GeneralFIR-E rm attribute This conventions stores IRs for general purposes, i.e., only the mandatory, SOFA general metadata are pre-defined
|
5
|
+
GLOBAL:SOFAConventionsVersion 2.0 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 attribute
|
12
|
+
GLOBAL:DataType FIR-E 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 free field m attribute The room information can be arbitrary
|
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 0] m IC, RC, 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 IC, EC, 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
|
+
Data.IR 0 m mrne double Impulse responses
|
35
|
+
Data.SamplingRate 48000 m I, M double Sampling rate of the samples in Data.IR and Data.Delay
|
36
|
+
Data.SamplingRate:Units hertz m attribute Unit of the sampling rate
|
37
|
+
Data.Delay 0 m IRE, MRE double Additional delay of each IR (in samples)
|
@@ -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": "2.1",
|
11
|
+
"flags": "rm",
|
12
|
+
"dimensions": null,
|
13
|
+
"type": "attribute",
|
14
|
+
"comment": ""
|
15
|
+
},
|
16
|
+
"GLOBAL:SOFAConventions": {
|
17
|
+
"default": "GeneralFIR-E",
|
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": "2.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": null,
|
68
|
+
"dimensions": null,
|
69
|
+
"type": "attribute",
|
70
|
+
"comment": ""
|
71
|
+
},
|
72
|
+
"GLOBAL:DataType": {
|
73
|
+
"default": "FIR-E",
|
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": "IC, RC, 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": "IC, EC, 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": "mrne",
|
246
|
+
"type": "double",
|
247
|
+
"comment": "Impulse responses"
|
248
|
+
},
|
249
|
+
"Data.SamplingRate": {
|
250
|
+
"default": 48000,
|
251
|
+
"flags": "m",
|
252
|
+
"dimensions": "I, M",
|
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,40 @@
|
|
1
|
+
Name Default Flags Dimensions Type Comment
|
2
|
+
GLOBAL:Conventions SOFA rm attribute
|
3
|
+
GLOBAL:Version 2.1 rm attribute
|
4
|
+
GLOBAL:SOFAConventions GeneralFIR rm attribute This conventions stores IRs for general purposes, i.e., only the mandatory, SOFA general metadata are pre-defined
|
5
|
+
GLOBAL:SOFAConventionsVersion 1.0 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 FIR rm attribute We store IRs here
|
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 free field m attribute The room information can be arbitrary
|
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 0] m IC, RC, RCM double
|
26
|
+
ReceiverPosition:Type cartesian m attribute
|
27
|
+
ReceiverPosition:Units metre m attribute
|
28
|
+
SourcePosition [0 0 1] m IC, MC double In order to store different directions/positions around the listener, SourcePosition is assumed to vary
|
29
|
+
SourcePosition:Type spherical m attribute
|
30
|
+
SourcePosition:Units degree, degree, metre m attribute
|
31
|
+
EmitterPosition [0 0 0] m eCI, eCM double
|
32
|
+
EmitterPosition:Type cartesian m attribute
|
33
|
+
EmitterPosition:Units metre m attribute
|
34
|
+
Data.IR 0 m mrn double Impulse responses
|
35
|
+
Data.SamplingRate 48000 m I, M double Sampling rate of the samples in Data.IR and Data.Delay
|
36
|
+
Data.SamplingRate:Units hertz m attribute Unit of the sampling rate
|
37
|
+
Data.Delay 0 m IR, MR double Additional delay of each IR (in samples)
|
38
|
+
ListenerView [1 0 0] IC, MC double
|
39
|
+
ListenerView:Type cartesian attribute
|
40
|
+
ListenerView:Units metre attribute
|