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,601 @@
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": "SingleRoomMIMOSRIR",
18
+ "flags": "rm",
19
+ "dimensions": null,
20
+ "type": "attribute",
21
+ "comment": "Single-room multiple-input multiple-output spatial room impulse responses, depending on Emitters"
22
+ },
23
+ "GLOBAL:SOFAConventionsVersion": {
24
+ "default": "1.0",
25
+ "flags": "rm",
26
+ "dimensions": null,
27
+ "type": "attribute",
28
+ "comment": ""
29
+ },
30
+ "GLOBAL:DataType": {
31
+ "default": "FIR-E",
32
+ "flags": "rm",
33
+ "dimensions": null,
34
+ "type": "attribute",
35
+ "comment": "Shall be FIR-E"
36
+ },
37
+ "GLOBAL:RoomType": {
38
+ "default": "shoebox",
39
+ "flags": "m",
40
+ "dimensions": null,
41
+ "type": "attribute",
42
+ "comment": "Shall be 'shoebox' or 'dae'"
43
+ },
44
+ "GLOBAL:Title": {
45
+ "default": "",
46
+ "flags": "m",
47
+ "dimensions": null,
48
+ "type": "attribute",
49
+ "comment": ""
50
+ },
51
+ "GLOBAL:DateCreated": {
52
+ "default": "",
53
+ "flags": "m",
54
+ "dimensions": null,
55
+ "type": "attribute",
56
+ "comment": ""
57
+ },
58
+ "GLOBAL:DateModified": {
59
+ "default": "",
60
+ "flags": "m",
61
+ "dimensions": null,
62
+ "type": "attribute",
63
+ "comment": ""
64
+ },
65
+ "GLOBAL:APIName": {
66
+ "default": "",
67
+ "flags": "rm",
68
+ "dimensions": null,
69
+ "type": "attribute",
70
+ "comment": ""
71
+ },
72
+ "GLOBAL:APIVersion": {
73
+ "default": "",
74
+ "flags": "rm",
75
+ "dimensions": null,
76
+ "type": "attribute",
77
+ "comment": ""
78
+ },
79
+ "GLOBAL:AuthorContact": {
80
+ "default": "",
81
+ "flags": "m",
82
+ "dimensions": null,
83
+ "type": "attribute",
84
+ "comment": ""
85
+ },
86
+ "GLOBAL:Organization": {
87
+ "default": "",
88
+ "flags": "m",
89
+ "dimensions": null,
90
+ "type": "attribute",
91
+ "comment": ""
92
+ },
93
+ "GLOBAL:License": {
94
+ "default": "No license provided, ask the author for permission",
95
+ "flags": "m",
96
+ "dimensions": null,
97
+ "type": "attribute",
98
+ "comment": ""
99
+ },
100
+ "GLOBAL:ApplicationName": {
101
+ "default": "",
102
+ "flags": null,
103
+ "dimensions": null,
104
+ "type": "attribute",
105
+ "comment": ""
106
+ },
107
+ "GLOBAL:ApplicationVersion": {
108
+ "default": "",
109
+ "flags": null,
110
+ "dimensions": null,
111
+ "type": "attribute",
112
+ "comment": ""
113
+ },
114
+ "GLOBAL:Comment": {
115
+ "default": "",
116
+ "flags": null,
117
+ "dimensions": null,
118
+ "type": "attribute",
119
+ "comment": ""
120
+ },
121
+ "GLOBAL:History": {
122
+ "default": "",
123
+ "flags": null,
124
+ "dimensions": null,
125
+ "type": "attribute",
126
+ "comment": ""
127
+ },
128
+ "GLOBAL:References": {
129
+ "default": "",
130
+ "flags": null,
131
+ "dimensions": null,
132
+ "type": "attribute",
133
+ "comment": ""
134
+ },
135
+ "GLOBAL:Origin": {
136
+ "default": "",
137
+ "flags": null,
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. Used for classification of the data."
148
+ },
149
+ "GLOBAL:RoomShortName": {
150
+ "default": "",
151
+ "flags": null,
152
+ "dimensions": null,
153
+ "type": "attribute",
154
+ "comment": "Short name of the Room"
155
+ },
156
+ "GLOBAL:RoomDescription": {
157
+ "default": "",
158
+ "flags": null,
159
+ "dimensions": null,
160
+ "type": "attribute",
161
+ "comment": "Informal verbal description of the room"
162
+ },
163
+ "GLOBAL:RoomLocation": {
164
+ "default": "",
165
+ "flags": null,
166
+ "dimensions": null,
167
+ "type": "attribute",
168
+ "comment": "Location of the room"
169
+ },
170
+ "GLOBAL:RoomGeometry": {
171
+ "default": "",
172
+ "flags": null,
173
+ "dimensions": null,
174
+ "type": "attribute",
175
+ "comment": "URI to a file describing the room geometry."
176
+ },
177
+ "GLOBAL:ListenerShortName": {
178
+ "default": "",
179
+ "flags": null,
180
+ "dimensions": null,
181
+ "type": "attribute",
182
+ "comment": ""
183
+ },
184
+ "GLOBAL:ListenerDescription": {
185
+ "default": "",
186
+ "flags": null,
187
+ "dimensions": null,
188
+ "type": "attribute",
189
+ "comment": ""
190
+ },
191
+ "GLOBAL:ReceiverShortName": {
192
+ "default": "",
193
+ "flags": null,
194
+ "dimensions": null,
195
+ "type": "attribute",
196
+ "comment": ""
197
+ },
198
+ "GLOBAL:ReceiverDescription": {
199
+ "default": "",
200
+ "flags": null,
201
+ "dimensions": null,
202
+ "type": "attribute",
203
+ "comment": ""
204
+ },
205
+ "GLOBAL:SourceShortName": {
206
+ "default": "",
207
+ "flags": null,
208
+ "dimensions": null,
209
+ "type": "attribute",
210
+ "comment": ""
211
+ },
212
+ "GLOBAL:SourceDescription": {
213
+ "default": "",
214
+ "flags": null,
215
+ "dimensions": null,
216
+ "type": "attribute",
217
+ "comment": ""
218
+ },
219
+ "GLOBAL:EmitterShortName": {
220
+ "default": "",
221
+ "flags": null,
222
+ "dimensions": null,
223
+ "type": "attribute",
224
+ "comment": ""
225
+ },
226
+ "GLOBAL:EmitterDescription": {
227
+ "default": "",
228
+ "flags": null,
229
+ "dimensions": null,
230
+ "type": "attribute",
231
+ "comment": ""
232
+ },
233
+ "RoomTemperature": {
234
+ "default": 0,
235
+ "flags": null,
236
+ "dimensions": "I, M",
237
+ "type": "double",
238
+ "comment": "Temperature during measurements, given in Kelvin."
239
+ },
240
+ "RoomTemperature:Units": {
241
+ "default": "kelvin",
242
+ "flags": null,
243
+ "dimensions": null,
244
+ "type": "attribute",
245
+ "comment": "Units of the room temperature"
246
+ },
247
+ "RoomVolume": {
248
+ "default": 0,
249
+ "flags": null,
250
+ "dimensions": "I, MI",
251
+ "type": "double",
252
+ "comment": "Volume of the room"
253
+ },
254
+ "RoomVolume:Units": {
255
+ "default": "cubic metre",
256
+ "flags": null,
257
+ "dimensions": null,
258
+ "type": "attribute",
259
+ "comment": "Units of the room volume"
260
+ },
261
+ "RoomCornerA": {
262
+ "default": [
263
+ 0,
264
+ 0,
265
+ 0
266
+ ],
267
+ "flags": null,
268
+ "dimensions": "IC, MC",
269
+ "type": "double",
270
+ "comment": ""
271
+ },
272
+ "RoomCornerB": {
273
+ "default": [
274
+ 1,
275
+ 2,
276
+ 3
277
+ ],
278
+ "flags": null,
279
+ "dimensions": "IC, MC",
280
+ "type": "double",
281
+ "comment": ""
282
+ },
283
+ "RoomCorners": {
284
+ "default": 0,
285
+ "flags": null,
286
+ "dimensions": "II",
287
+ "type": "double",
288
+ "comment": "The value of this attribute is to be ignored. It only exist to for RoomCorners:Type and RoomCorners:Units"
289
+ },
290
+ "RoomCorners:Type": {
291
+ "default": "cartesian",
292
+ "flags": null,
293
+ "dimensions": null,
294
+ "type": "attribute",
295
+ "comment": ""
296
+ },
297
+ "RoomCorners:Units": {
298
+ "default": "metre",
299
+ "flags": null,
300
+ "dimensions": null,
301
+ "type": "attribute",
302
+ "comment": ""
303
+ },
304
+ "ListenerPosition": {
305
+ "default": [
306
+ 0,
307
+ 0,
308
+ 0
309
+ ],
310
+ "flags": "m",
311
+ "dimensions": "MC",
312
+ "type": "double",
313
+ "comment": ""
314
+ },
315
+ "ListenerPosition:Type": {
316
+ "default": "cartesian",
317
+ "flags": "m",
318
+ "dimensions": null,
319
+ "type": "attribute",
320
+ "comment": ""
321
+ },
322
+ "ListenerPosition:Units": {
323
+ "default": "metre",
324
+ "flags": "m",
325
+ "dimensions": null,
326
+ "type": "attribute",
327
+ "comment": ""
328
+ },
329
+ "ListenerView": {
330
+ "default": [
331
+ 1,
332
+ 0,
333
+ 0
334
+ ],
335
+ "flags": "m",
336
+ "dimensions": "IC, MC",
337
+ "type": "double",
338
+ "comment": ""
339
+ },
340
+ "ListenerUp": {
341
+ "default": [
342
+ 0,
343
+ 0,
344
+ 1
345
+ ],
346
+ "flags": "m",
347
+ "dimensions": "IC, MC",
348
+ "type": "double",
349
+ "comment": ""
350
+ },
351
+ "ListenerView:Type": {
352
+ "default": "cartesian",
353
+ "flags": "m",
354
+ "dimensions": null,
355
+ "type": "attribute",
356
+ "comment": ""
357
+ },
358
+ "ListenerView:Units": {
359
+ "default": "metre",
360
+ "flags": "m",
361
+ "dimensions": null,
362
+ "type": "attribute",
363
+ "comment": ""
364
+ },
365
+ "ReceiverDescriptions": {
366
+ "default": [
367
+ ""
368
+ ],
369
+ "flags": null,
370
+ "dimensions": "RS, RSM",
371
+ "type": "string",
372
+ "comment": "R-dependent version of the attribute ReceiverDescription"
373
+ },
374
+ "ReceiverPosition": {
375
+ "default": [
376
+ 0,
377
+ 0,
378
+ 0
379
+ ],
380
+ "flags": "m",
381
+ "dimensions": "IC, RCI, RCM",
382
+ "type": "double",
383
+ "comment": ""
384
+ },
385
+ "ReceiverPosition:Type": {
386
+ "default": "spherical",
387
+ "flags": "m",
388
+ "dimensions": null,
389
+ "type": "attribute",
390
+ "comment": "Can be of any type enabling both spatially discrete and spatially continuous representations."
391
+ },
392
+ "ReceiverPosition:Units": {
393
+ "default": "degree, degree, metre",
394
+ "flags": "m",
395
+ "dimensions": null,
396
+ "type": "attribute",
397
+ "comment": ""
398
+ },
399
+ "ReceiverView": {
400
+ "default": [
401
+ 1,
402
+ 0,
403
+ 0
404
+ ],
405
+ "flags": null,
406
+ "dimensions": "RCI, RCM",
407
+ "type": "double",
408
+ "comment": ""
409
+ },
410
+ "ReceiverUp": {
411
+ "default": [
412
+ 0,
413
+ 0,
414
+ 1
415
+ ],
416
+ "flags": null,
417
+ "dimensions": "RCI, RCM",
418
+ "type": "double",
419
+ "comment": ""
420
+ },
421
+ "ReceiverView:Type": {
422
+ "default": "cartesian",
423
+ "flags": null,
424
+ "dimensions": null,
425
+ "type": "attribute",
426
+ "comment": ""
427
+ },
428
+ "ReceiverView:Units": {
429
+ "default": "metre",
430
+ "flags": null,
431
+ "dimensions": null,
432
+ "type": "attribute",
433
+ "comment": ""
434
+ },
435
+ "SourcePosition": {
436
+ "default": [
437
+ 0,
438
+ 0,
439
+ 1
440
+ ],
441
+ "flags": "m",
442
+ "dimensions": "MC",
443
+ "type": "double",
444
+ "comment": ""
445
+ },
446
+ "SourcePosition:Type": {
447
+ "default": "cartesian",
448
+ "flags": "m",
449
+ "dimensions": null,
450
+ "type": "attribute",
451
+ "comment": ""
452
+ },
453
+ "SourcePosition:Units": {
454
+ "default": "metre",
455
+ "flags": "m",
456
+ "dimensions": null,
457
+ "type": "attribute",
458
+ "comment": ""
459
+ },
460
+ "SourceView": {
461
+ "default": [
462
+ 1,
463
+ 0,
464
+ 0
465
+ ],
466
+ "flags": "m",
467
+ "dimensions": "IC, MC",
468
+ "type": "double",
469
+ "comment": ""
470
+ },
471
+ "SourceUp": {
472
+ "default": [
473
+ 0,
474
+ 0,
475
+ 1
476
+ ],
477
+ "flags": "m",
478
+ "dimensions": "IC, MC",
479
+ "type": "double",
480
+ "comment": ""
481
+ },
482
+ "SourceView:Type": {
483
+ "default": "cartesian",
484
+ "flags": "m",
485
+ "dimensions": null,
486
+ "type": "attribute",
487
+ "comment": ""
488
+ },
489
+ "SourceView:Units": {
490
+ "default": "metre",
491
+ "flags": "m",
492
+ "dimensions": null,
493
+ "type": "attribute",
494
+ "comment": ""
495
+ },
496
+ "EmitterDescriptions": {
497
+ "default": [
498
+ ""
499
+ ],
500
+ "flags": null,
501
+ "dimensions": "ES, ESM",
502
+ "type": "string",
503
+ "comment": "E-dependent version of the attribute EmitterDescription"
504
+ },
505
+ "EmitterPosition": {
506
+ "default": [
507
+ 0,
508
+ 0,
509
+ 0
510
+ ],
511
+ "flags": "m",
512
+ "dimensions": "IC, ECI, ECM",
513
+ "type": "double",
514
+ "comment": "Can be of any type enabling both spatially discrete and spatially continuous representations."
515
+ },
516
+ "EmitterPosition:Type": {
517
+ "default": "spherical",
518
+ "flags": "m",
519
+ "dimensions": null,
520
+ "type": "attribute",
521
+ "comment": ""
522
+ },
523
+ "EmitterPosition:Units": {
524
+ "default": "degree, degree, metre",
525
+ "flags": "m",
526
+ "dimensions": null,
527
+ "type": "attribute",
528
+ "comment": ""
529
+ },
530
+ "EmitterView": {
531
+ "default": [
532
+ 1,
533
+ 0,
534
+ 0
535
+ ],
536
+ "flags": null,
537
+ "dimensions": "ECI, ECM",
538
+ "type": "double",
539
+ "comment": ""
540
+ },
541
+ "EmitterUp": {
542
+ "default": [
543
+ 0,
544
+ 0,
545
+ 1
546
+ ],
547
+ "flags": null,
548
+ "dimensions": "ECI, ECM",
549
+ "type": "double",
550
+ "comment": ""
551
+ },
552
+ "EmitterView:Type": {
553
+ "default": "cartesian",
554
+ "flags": null,
555
+ "dimensions": null,
556
+ "type": "attribute",
557
+ "comment": ""
558
+ },
559
+ "EmitterView:Units": {
560
+ "default": "metre",
561
+ "flags": null,
562
+ "dimensions": null,
563
+ "type": "attribute",
564
+ "comment": ""
565
+ },
566
+ "MeasurementDate": {
567
+ "default": 0,
568
+ "flags": null,
569
+ "dimensions": "M",
570
+ "type": "double",
571
+ "comment": "Optional M-dependent date and time of the measurement."
572
+ },
573
+ "Data.IR": {
574
+ "default": 0,
575
+ "flags": "m",
576
+ "dimensions": "mrne",
577
+ "type": "double",
578
+ "comment": "Impulse responses"
579
+ },
580
+ "Data.SamplingRate": {
581
+ "default": 48000,
582
+ "flags": "m",
583
+ "dimensions": "I, M",
584
+ "type": "double",
585
+ "comment": "Sampling rate of the samples in Data.IR and Data.Delay"
586
+ },
587
+ "Data.SamplingRate:Units": {
588
+ "default": "hertz",
589
+ "flags": "m",
590
+ "dimensions": null,
591
+ "type": "attribute",
592
+ "comment": "Unit of the sampling rate"
593
+ },
594
+ "Data.Delay": {
595
+ "default": 0,
596
+ "flags": "m",
597
+ "dimensions": "IRI, MRI, MRE",
598
+ "type": "double",
599
+ "comment": "Additional delay of each IR (in samples)"
600
+ }
601
+ }
@@ -0,0 +1,78 @@
1
+ Name Default Flags Dimensions Type Comment
2
+ GLOBAL:Conventions SOFA rm attribute
3
+ GLOBAL:Version 2.1 rm attribute
4
+ GLOBAL:SOFAConventions SingleRoomSRIR rm attribute For measuring SRIRs in a single room with a single excitation source (e.g., a loudspeaker) and a listener containing an arbitrary number of omnidirectional receivers (e.g., a microphone array).
5
+ GLOBAL:SOFAConventionsVersion 1.0 rm attribute
6
+ GLOBAL:DataType FIR rm attribute Shall be FIR
7
+ GLOBAL:RoomType shoebox m attribute Shall be 'shoebox' or 'dae'
8
+ GLOBAL:Title m attribute
9
+ GLOBAL:DateCreated m attribute
10
+ GLOBAL:DateModified m attribute
11
+ GLOBAL:APIName rm attribute
12
+ GLOBAL:APIVersion rm attribute
13
+ GLOBAL:AuthorContact m attribute
14
+ GLOBAL:Organization m attribute
15
+ GLOBAL:License No license provided, ask the author for permission m attribute
16
+ GLOBAL:ApplicationName attribute
17
+ GLOBAL:ApplicationVersion attribute
18
+ GLOBAL:Comment attribute
19
+ GLOBAL:History attribute
20
+ GLOBAL:References attribute
21
+ GLOBAL:Origin attribute
22
+ GLOBAL:DatabaseName m attribute Name of the database. Used for classification of the data.
23
+ GLOBAL:RoomShortName attribute Short name of the Room
24
+ GLOBAL:RoomDescription attribute Informal verbal description of the room
25
+ GLOBAL:RoomLocation attribute Location of the room
26
+ GLOBAL:RoomGeometry attribute URI to a file describing the room geometry.
27
+ RoomTemperature 0 I, M double Temperature during measurements, given in Kelvin.
28
+ RoomTemperature:Units kelvin attribute Units of the room temperature.
29
+ RoomVolume 0 I, M double Volume of the room.
30
+ RoomVolume:Units cubic metre attribute Units of the room volume.
31
+ RoomCornerA [0 0 0] IC, MC double
32
+ RoomCornerB [1 2 3] IC, MC double
33
+ RoomCorners 0 II double The value of this attribute is to be ignored. It only exist to for RoomCorners:Type and RoomCorners:Units
34
+ RoomCorners:Type cartesian attribute
35
+ RoomCorners:Units metre attribute
36
+ GLOBAL:ListenerShortName attribute
37
+ GLOBAL:ListenerDescription attribute
38
+ ListenerPosition [0 0 0] m MC double
39
+ ListenerPosition:Type cartesian m attribute
40
+ ListenerPosition:Units metre m attribute
41
+ ListenerView [1 0 0] m IC, MC double
42
+ ListenerUp [0 0 1] m IC, MC double
43
+ ListenerView:Type cartesian m attribute
44
+ ListenerView:Units metre m attribute
45
+ GLOBAL:ReceiverShortName attribute
46
+ GLOBAL:ReceiverDescription attribute
47
+ ReceiverDescriptions {''} RS, RSM string R-dependent version of the attribute ReceiverDescription
48
+ ReceiverPosition [0 0 0] m IC, RCI, RCM double
49
+ ReceiverPosition:Type spherical m attribute Can be of any type enabling both spatially discrete and spatially continuous representations.
50
+ ReceiverPosition:Units degree, degree, metre m attribute
51
+ ReceiverView [1 0 0] RCI, RCM double
52
+ ReceiverUp [0 0 1] RCI, RCM double
53
+ ReceiverView:Type cartesian attribute
54
+ ReceiverView:Units metre attribute
55
+ GLOBAL:SourceShortName attribute
56
+ GLOBAL:SourceDescription attribute
57
+ SourcePosition [0 0 1] m MC double
58
+ SourcePosition:Type cartesian m attribute
59
+ SourcePosition:Units metre m attribute
60
+ SourceView [1 0 0] m IC, MC double
61
+ SourceUp [0 0 1] m IC, MC double
62
+ SourceView:Type cartesian m attribute
63
+ SourceView:Units metre m attribute
64
+ GLOBAL:EmitterShortName attribute
65
+ GLOBAL:EmitterDescription attribute
66
+ EmitterDescriptions {''} ES, ESM string E-dependent version of the attribute EmitterDescription
67
+ EmitterPosition [0 0 0] m eCI, eCM double
68
+ EmitterPosition:Type spherical m attribute Shall be 'cartesian' or 'spherical', restricting to spatially discrete emitters.
69
+ EmitterPosition:Units degree, degree, metre m attribute
70
+ EmitterView [1 0 0] ECI, ECM double
71
+ EmitterUp [0 0 1] ECI, ECM double
72
+ EmitterView:Type cartesian attribute Shall be 'cartesian' or 'spherical', restricting to spatially discrete emitters.
73
+ EmitterView:Units metre attribute
74
+ Data.IR 0 m mrn double Impulse responses
75
+ Data.SamplingRate 48000 m I, M double Sampling rate of the samples in Data.IR and Data.Delay
76
+ Data.SamplingRate:Units hertz m attribute Unit of the sampling rate
77
+ Data.Delay 0 m IR, MR double Additional delay of each IR (in samples)
78
+ MeasurementDate 0 M double Optional M-dependent date and time of the measurement