sofar 0.3.1__py2.py3-none-any.whl → 1.1.0__py2.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 (79) hide show
  1. sofar/__init__.py +13 -7
  2. sofar/io.py +423 -0
  3. sofar/sofa.py +1795 -0
  4. sofar/sofa_conventions/VERSION +1 -0
  5. sofar/sofa_conventions/conventions/FreeFieldDirectivityTF_1.1.csv +59 -0
  6. sofar/sofa_conventions/conventions/FreeFieldDirectivityTF_1.1.json +444 -0
  7. sofar/{conventions/source → sofa_conventions/conventions}/FreeFieldHRIR_1.0.csv +3 -3
  8. sofar/{conventions → sofa_conventions/conventions}/FreeFieldHRIR_1.0.json +3 -3
  9. sofar/{conventions/source → sofa_conventions/conventions}/FreeFieldHRTF_1.0.csv +2 -2
  10. sofar/{conventions → sofa_conventions/conventions}/FreeFieldHRTF_1.0.json +3 -3
  11. sofar/{conventions/source → sofa_conventions/conventions}/GeneralFIR-E_2.0.csv +2 -2
  12. sofar/{conventions → sofa_conventions/conventions}/GeneralFIR-E_2.0.json +2 -2
  13. sofar/{conventions/source/GeneralFIR_2.0.csv → sofa_conventions/conventions/GeneralFIR_1.0.csv} +2 -2
  14. sofar/{conventions/GeneralFIR_2.0.json → sofa_conventions/conventions/GeneralFIR_1.0.json} +2 -2
  15. sofar/{conventions/source/GeneralFIR_1.0.csv → sofa_conventions/conventions/GeneralSOS_1.0.csv} +11 -11
  16. sofar/{conventions/GeneralFIR_1.0.json → sofa_conventions/conventions/GeneralSOS_1.0.json} +48 -37
  17. sofar/{conventions/source → sofa_conventions/conventions}/GeneralTF-E_1.0.csv +3 -3
  18. sofar/{conventions → sofa_conventions/conventions}/GeneralTF-E_1.0.json +4 -4
  19. sofar/{conventions/source → sofa_conventions/conventions}/GeneralTF_1.0.csv +1 -1
  20. sofar/{conventions → sofa_conventions/conventions}/GeneralTF_1.0.json +1 -1
  21. sofar/{conventions/source → sofa_conventions/conventions}/GeneralTF_2.0.csv +4 -4
  22. sofar/{conventions → sofa_conventions/conventions}/GeneralTF_2.0.json +4 -4
  23. sofar/sofa_conventions/conventions/SimpleFreeFieldHRIR_1.0.csv +47 -0
  24. sofar/{conventions → sofa_conventions/conventions}/SimpleFreeFieldHRIR_1.0.json +1 -1
  25. sofar/{conventions/source → sofa_conventions/conventions}/SimpleFreeFieldHRSOS_1.0.csv +1 -1
  26. sofar/{conventions → sofa_conventions/conventions}/SimpleFreeFieldHRSOS_1.0.json +1 -1
  27. sofar/{conventions/source/SimpleFreeFieldHRTF_2.0.csv → sofa_conventions/conventions/SimpleFreeFieldHRTF_1.0.csv} +3 -3
  28. sofar/{conventions/SimpleFreeFieldHRTF_2.0.json → sofa_conventions/conventions/SimpleFreeFieldHRTF_1.0.json} +4 -4
  29. sofar/{conventions/source → sofa_conventions/conventions}/SimpleHeadphoneIR_1.0.csv +9 -9
  30. sofar/sofa_conventions/conventions/SimpleHeadphoneIR_1.0.json +396 -0
  31. sofar/{conventions/source → sofa_conventions/conventions}/SingleRoomMIMOSRIR_1.0.csv +18 -8
  32. sofar/{conventions → sofa_conventions/conventions}/SingleRoomMIMOSRIR_1.0.json +124 -50
  33. sofar/{conventions/source → sofa_conventions/conventions}/SingleRoomSRIR_1.0.csv +18 -8
  34. sofar/{conventions → sofa_conventions/conventions}/SingleRoomSRIR_1.0.json +124 -50
  35. sofar/{conventions/source → sofa_conventions/conventions/deprecated}/FreeFieldDirectivityTF_1.0.csv +2 -2
  36. sofar/{conventions → sofa_conventions/conventions/deprecated}/FreeFieldDirectivityTF_1.0.json +2 -2
  37. sofar/sofa_conventions/conventions/deprecated/MultiSpeakerBRIR_0.3.csv +48 -0
  38. sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldHRIR_0.4.csv +43 -0
  39. sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldHRIR_0.4.json +333 -0
  40. sofar/{conventions/source/SimpleFreeFieldHRIR_1.0.csv → sofa_conventions/conventions/deprecated/SimpleFreeFieldTF_0.4.csv} +15 -18
  41. sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldTF_0.4.json +340 -0
  42. sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldTF_1.0.csv +44 -0
  43. sofar/sofa_conventions/conventions/deprecated/SimpleFreeFieldTF_1.0.json +340 -0
  44. sofar/sofa_conventions/conventions/deprecated/SimpleHeadphoneIR_0.1.csv +51 -0
  45. sofar/sofa_conventions/conventions/deprecated/SimpleHeadphoneIR_0.1.json +396 -0
  46. sofar/sofa_conventions/conventions/deprecated/SimpleHeadphoneIR_0.2.csv +51 -0
  47. sofar/{conventions/SimpleHeadphoneIR_1.0.json → sofa_conventions/conventions/deprecated/SimpleHeadphoneIR_0.2.json} +3 -3
  48. sofar/sofa_conventions/conventions/deprecated/SingleRoomDRIR_0.2.csv +47 -0
  49. sofar/sofa_conventions/conventions/deprecated/SingleRoomDRIR_0.2.json +360 -0
  50. sofar/sofa_conventions/rules/deprecations.json +12 -0
  51. sofar/sofa_conventions/rules/rules.json +800 -0
  52. sofar/sofa_conventions/rules/unit_aliases.json +11 -0
  53. sofar/sofa_conventions/rules/upgrade.json +190 -0
  54. sofar/update_conventions.py +427 -0
  55. sofar/utils.py +315 -0
  56. {sofar-0.3.1.dist-info → sofar-1.1.0.dist-info}/AUTHORS.rst +1 -0
  57. sofar-1.1.0.dist-info/METADATA +89 -0
  58. sofar-1.1.0.dist-info/RECORD +75 -0
  59. {sofar-0.3.1.dist-info → sofar-1.1.0.dist-info}/WHEEL +1 -1
  60. {sofar-0.3.1.dist-info → sofar-1.1.0.dist-info}/top_level.txt +1 -0
  61. tests/__init__.py +0 -0
  62. tests/test_deprecations.py +19 -0
  63. tests/test_io.py +344 -0
  64. tests/test_sofa.py +354 -0
  65. tests/test_sofa_upgrade_conventions.py +102 -0
  66. tests/test_sofa_verify.py +472 -0
  67. tests/test_utils.py +241 -0
  68. sofar/conventions/source/MultiSpeakerBRIR_0.3.csv +0 -48
  69. sofar/sofar.py +0 -2531
  70. sofar-0.3.1.dist-info/METADATA +0 -69
  71. sofar-0.3.1.dist-info/RECORD +0 -46
  72. /sofar/{conventions/source → sofa_conventions/conventions}/SimpleFreeFieldSOS_1.0.csv +0 -0
  73. /sofar/{conventions → sofa_conventions/conventions}/SimpleFreeFieldSOS_1.0.json +0 -0
  74. /sofar/{conventions/source → sofa_conventions/conventions/deprecated}/GeneralFIRE_1.0.csv +0 -0
  75. /sofar/{conventions → sofa_conventions/conventions/deprecated}/GeneralFIRE_1.0.json +0 -0
  76. /sofar/{conventions → sofa_conventions/conventions/deprecated}/MultiSpeakerBRIR_0.3.json +0 -0
  77. /sofar/{conventions/source → sofa_conventions/conventions/deprecated}/SingleRoomDRIR_0.3.csv +0 -0
  78. /sofar/{conventions → sofa_conventions/conventions/deprecated}/SingleRoomDRIR_0.3.json +0 -0
  79. {sofar-0.3.1.dist-info → sofar-1.1.0.dist-info}/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Name Default Flags Dimensions Type Comment
2
2
  GLOBAL:Conventions SOFA rm attribute
3
- GLOBAL:Version 2.0 rm attribute
3
+ GLOBAL:Version 2.1 rm attribute
4
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
5
  GLOBAL:SOFAConventionsVersion 1.0 rm attribute
6
6
  GLOBAL:DataType FIR rm attribute Shall be FIR
@@ -16,10 +16,23 @@ GLOBAL:License No license provided, ask the author for permission m attribute
16
16
  GLOBAL:ApplicationName attribute
17
17
  GLOBAL:ApplicationVersion attribute
18
18
  GLOBAL:Comment attribute
19
- GLOBAL:RoomDescription attribute narrative description of the room
20
19
  GLOBAL:History attribute
21
20
  GLOBAL:References attribute
22
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
23
36
  GLOBAL:ListenerShortName attribute
24
37
  GLOBAL:ListenerDescription attribute
25
38
  ListenerPosition [0 0 0] m MC double
@@ -31,6 +44,7 @@ ListenerView:Type cartesian m attribute
31
44
  ListenerView:Units metre m attribute
32
45
  GLOBAL:ReceiverShortName attribute
33
46
  GLOBAL:ReceiverDescription attribute
47
+ ReceiverDescriptions {''} RS, RSM string R-dependent version of the attribute ReceiverDescription
34
48
  ReceiverPosition [0 0 0] m IC, RCI, RCM double
35
49
  ReceiverPosition:Type spherical m attribute Can be of any type enabling both spatially discrete and spatially continuous representations.
36
50
  ReceiverPosition:Units degree, degree, metre m attribute
@@ -49,6 +63,7 @@ SourceView:Type cartesian m attribute
49
63
  SourceView:Units metre m attribute
50
64
  GLOBAL:EmitterShortName attribute
51
65
  GLOBAL:EmitterDescription attribute
66
+ EmitterDescriptions {''} ES, ESM string E-dependent version of the attribute EmitterDescription
52
67
  EmitterPosition [0 0 0] m eCI, eCM double
53
68
  EmitterPosition:Type spherical m attribute Shall be 'cartesian' or 'spherical', restricting to spatially discrete emitters.
54
69
  EmitterPosition:Units degree, degree, metre m attribute
@@ -60,9 +75,4 @@ Data.IR 0 m mrn double Impulse responses
60
75
  Data.SamplingRate 48000 m I, M double Sampling rate of the samples in Data.IR and Data.Delay
61
76
  Data.SamplingRate:Units hertz m attribute Unit of the sampling rate
62
77
  Data.Delay 0 m IR, MR double Additional delay of each IR (in samples)
63
- RoomCornerA [0 0 0] IC, MC double
64
- RoomCornerB [1 2 3] IC, MC double
65
- RoomCorners 0 II double The value of this attribute is to be ignored. It only exist to for RoomCorners:Type and RoomCorners:Units
66
- RoomCorners:Type cartesian attribute Type of coordinate system for RoomCornerA and RoomCornerB
67
- RoomCorners:Units metre attribute Unit of coordinate system for RoomCornerA and RoomCornerB
68
- GLOBAL:DatabaseName m attribute Name of the database. Used for classification of the data.
78
+ MeasurementDate 0 M double Optional M-dependent date and time of the measurement
@@ -7,7 +7,7 @@
7
7
  "comment": ""
8
8
  },
9
9
  "GLOBAL:Version": {
10
- "default": "2.0",
10
+ "default": "2.1",
11
11
  "flags": "rm",
12
12
  "dimensions": null,
13
13
  "type": "attribute",
@@ -118,33 +118,61 @@
118
118
  "type": "attribute",
119
119
  "comment": ""
120
120
  },
121
- "GLOBAL:RoomDescription": {
121
+ "GLOBAL:History": {
122
122
  "default": "",
123
123
  "flags": null,
124
124
  "dimensions": null,
125
125
  "type": "attribute",
126
- "comment": "narrative description of the room"
126
+ "comment": ""
127
127
  },
128
- "GLOBAL:History": {
128
+ "GLOBAL:References": {
129
129
  "default": "",
130
130
  "flags": null,
131
131
  "dimensions": null,
132
132
  "type": "attribute",
133
133
  "comment": ""
134
134
  },
135
- "GLOBAL:References": {
135
+ "GLOBAL:Origin": {
136
136
  "default": "",
137
137
  "flags": null,
138
138
  "dimensions": null,
139
139
  "type": "attribute",
140
140
  "comment": ""
141
141
  },
142
- "GLOBAL:Origin": {
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": {
143
150
  "default": "",
144
151
  "flags": null,
145
152
  "dimensions": null,
146
153
  "type": "attribute",
147
- "comment": ""
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."
148
176
  },
149
177
  "GLOBAL:ListenerShortName": {
150
178
  "default": "",
@@ -202,12 +230,76 @@
202
230
  "type": "attribute",
203
231
  "comment": ""
204
232
  },
205
- "GLOBAL:DatabaseName": {
206
- "default": "",
207
- "flags": "m",
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,
208
243
  "dimensions": null,
209
244
  "type": "attribute",
210
- "comment": "Name of the database. Used for classification of the data."
245
+ "comment": "Units of the room temperature."
246
+ },
247
+ "RoomVolume": {
248
+ "default": 0,
249
+ "flags": null,
250
+ "dimensions": "I, M",
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": ""
211
303
  },
212
304
  "ListenerPosition": {
213
305
  "default": [
@@ -270,6 +362,15 @@
270
362
  "type": "attribute",
271
363
  "comment": ""
272
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
+ },
273
374
  "ReceiverPosition": {
274
375
  "default": [
275
376
  0,
@@ -392,6 +493,15 @@
392
493
  "type": "attribute",
393
494
  "comment": ""
394
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
+ },
395
505
  "EmitterPosition": {
396
506
  "default": [
397
507
  0,
@@ -453,48 +563,12 @@
453
563
  "type": "attribute",
454
564
  "comment": ""
455
565
  },
456
- "RoomCornerA": {
457
- "default": [
458
- 0,
459
- 0,
460
- 0
461
- ],
462
- "flags": null,
463
- "dimensions": "IC, MC",
464
- "type": "double",
465
- "comment": ""
466
- },
467
- "RoomCornerB": {
468
- "default": [
469
- 1,
470
- 2,
471
- 3
472
- ],
473
- "flags": null,
474
- "dimensions": "IC, MC",
475
- "type": "double",
476
- "comment": ""
477
- },
478
- "RoomCorners": {
566
+ "MeasurementDate": {
479
567
  "default": 0,
480
568
  "flags": null,
481
- "dimensions": "II",
569
+ "dimensions": "M",
482
570
  "type": "double",
483
- "comment": "The value of this attribute is to be ignored. It only exist to for RoomCorners:Type and RoomCorners:Units"
484
- },
485
- "RoomCorners:Type": {
486
- "default": "cartesian",
487
- "flags": null,
488
- "dimensions": null,
489
- "type": "attribute",
490
- "comment": "Type of coordinate system for RoomCornerA and RoomCornerB"
491
- },
492
- "RoomCorners:Units": {
493
- "default": "metre",
494
- "flags": null,
495
- "dimensions": null,
496
- "type": "attribute",
497
- "comment": "Unit of coordinate system for RoomCornerA and RoomCornerB"
571
+ "comment": "Optional M-dependent date and time of the measurement"
498
572
  },
499
573
  "Data.IR": {
500
574
  "default": 0,
@@ -1,6 +1,6 @@
1
1
  Name Default Flags Dimensions Type Comment
2
2
  GLOBAL:Conventions SOFA rm attribute
3
- GLOBAL:Version 2.0 rm attribute
3
+ GLOBAL:Version 2.1 rm attribute
4
4
  GLOBAL:SOFAConventions FreeFieldDirectivityTF rm attribute This conventions stores directivities of acoustic sources (instruments, loudspeakers, singers, talkers, etc) in the frequency domain for multiple musical notes in free field.
5
5
  GLOBAL:SOFAConventionsVersion 1.0 rm attribute
6
6
  GLOBAL:DataType TF rm attribute We store frequency-dependent data here
@@ -50,7 +50,7 @@ EmitterPosition:Units metre m attribute
50
50
  EmitterDescription {''} IS, MS string A more detailed structure of the source. In a simple setting, a single Emitter is considered that is collocated with the source. In a more complicated setting, this may be the strings of a violin or the units of a loudspeaker.
51
51
  MIDINote 0 I, M double Defines the note played by the source during the measurement. The note is specified a MIDI note by the [https://www.midi.org/specifications-old/item/the-midi-1-0-specification MIDI specifications, version 1.0]. Not mandatory, but recommended for tonal instruments.
52
52
  Description {''} MS string This variable is used when the description varies with M.
53
- SourceTuningFrequency 440 I, M double Frequency (in Hertz) to which a musical instrument is tuned to corresponding to the note A4 (MIDINote=69). Recommended for tonal instruments.
53
+ SourceTuningFrequency 440 I, M double Frequency (in hertz) to which a musical instrument is tuned to corresponding to the note A4 (MIDINote=69). Recommended for tonal instruments.
54
54
  Data.Real 0 m mrn double Real part of the complex spectrum. The default value 0 indicates that all data fields are initialized with zero values.
55
55
  Data.Imag 0 m MRN double Imaginary part of the complex spectrum
56
56
  N 0 m N double Frequency values
@@ -7,7 +7,7 @@
7
7
  "comment": ""
8
8
  },
9
9
  "GLOBAL:Version": {
10
- "default": "2.0",
10
+ "default": "2.1",
11
11
  "flags": "rm",
12
12
  "dimensions": null,
13
13
  "type": "attribute",
@@ -397,7 +397,7 @@
397
397
  "flags": null,
398
398
  "dimensions": "I, M",
399
399
  "type": "double",
400
- "comment": "Frequency (in Hertz) to which a musical instrument is tuned to corresponding to the note A4 (MIDINote=69). Recommended for tonal instruments."
400
+ "comment": "Frequency (in hertz) to which a musical instrument is tuned to corresponding to the note A4 (MIDINote=69). Recommended for tonal instruments."
401
401
  },
402
402
  "N": {
403
403
  "default": 0,
@@ -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,43 @@
1
+ Name Default Flags Dimensions Type Comment
2
+ GLOBAL:Conventions SOFA rm attribute
3
+ GLOBAL:Version 1.0 rm attribute
4
+ GLOBAL:SOFAConventions SimpleFreeFieldHRIR rm attribute This convention set is for HRIRs recorded under free-field conditions or other IRs created under conditions where room information is irrelevant
5
+ GLOBAL:SOFAConventionsVersion 0.4 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 rm attribute
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
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 meter 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 meter m attribute
28
+ SourcePosition [0 0 1] m IC, MC double Source position is assumed to vary for different directions/positions around the listener
29
+ SourcePosition:Type spherical m attribute
30
+ SourcePosition:Units degree, degree, meter m attribute
31
+ EmitterPosition [0 0 0] m eCI, eCM double
32
+ EmitterPosition:Type cartesian m attribute
33
+ EmitterPosition:Units meter 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
+ ListenerUp [0 0 1] m IC, MC double
37
+ ListenerView [1 0 0] m IC, MC double
38
+ ListenerView:Type cartesian m attribute
39
+ ListenerView:Units meter m attribute
40
+ Data.IR [1 1] m mRn double
41
+ Data.SamplingRate 48000 m I double
42
+ Data.SamplingRate:Units hertz m attribute
43
+ Data.Delay [0 0] m IR, MR double