SingleRoomDRIR
Description

This conventions defines a setup used for measuring DRIRs in a single room with a single excitation source and a microphone array containing an arbitrary number of omnidirectional microphones (i.e., receivers). The positions of both the source and the listener are considered as variant. The DRIRs are represented as FIR filters for a single room per file. SingleRoomDRIR consists of:
- General metadata: RoomType: revereberant with a mandatory global attribute RoomDescription.
- Data: Datatype: FIR, the amount of the receivers varies, thus, the size of Data.IR is [M R N].
- Source: The position and the orientation of the source may vary and is given by SourcePosition, SourceUp, and SourceView. The coordinate type is cartesian and unit is meter.
- Emitters: Source consists of a single omnidirectional emitter, which position is fixed, EmitterPosition: (0 0 0). EmitterUp and EmitterView are optional.
- Listener: Position and the orientation of the listener vary and thus ListenerPosition, ListenerView, and ListenerUp are mandatory. The coordinate type is cartesian and unit is meter. An additional rotation of the listener is can be considered, thus, ListenerRotation is optional.
- Receivers: the position of all receivers via ReceiverPosition is provided. The coordinate type is cartesian and unit is meter. The receivers are considered to be omnidirectional, thus, ReceiverUp and ReceiverView are omitted.
Proposed (for SOFA 0.4)
| Name | Default | Flags | Dimensions | Type | Comment |
|---|---|---|---|---|---|
| GLOBAL_Conventions | SOFA | rm | |||
| GLOBAL_Version | 0.4 | rm | |||
| GLOBAL_SOFAConventions | SingleRoomDRIR | rm | |||
| GLOBAL_SOFAConventionsVersion | 0.0 | rm | |||
| GLOBAL_APIName | rm | Insert the API Name here | |||
| GLOBAL_APIVersion | rm | Insert the API Version here | |||
| GLOBAL_AuthorContact | m | ||||
| GLOBAL_License | No license provided, ask the author for permission | m | |||
| GLOBAL_Organization | m | ||||
| GLOBAL_RoomType | reverberant | m | |||
| GLOBAL_DataType | FIR | rm | |||
| GLOBAL_History | m | ||||
| GLOBAL_Source | m | ||||
| GLOBAL_Title | m | ||||
| GLOBAL_References | m | ||||
| GLOBAL_Comment | m | ||||
| GLOBAL_TimeCreated | m | will be updated when saving and not existing or empty | |||
| GLOBAL_TimeModified | m | will be updated each time when saving | |||
| GLOBAL_ApplicationName | m | ||||
| GLOBAL_ApplicationVersion | m | ||||
| GLOBAL_DatabaseName | m | ||||
| GLOBAL_RoomDescription | m | ||||
| ListenerPosition | [1 0 0] | m | IC, MC | double | |
| ListenerPosition_Type | cartesian | m | |||
| ListenerPosition_Units | meter | m | |||
| ListenerUp | [0 0 1] | m | IC, MC | double | |
| ListenerView | [-1 0 0] | m | IC, MC | double | |
| ListenerRotation | [0 0 0] | IC, MC | double | ||
| ListenerRotation_Type | din9300 | ||||
| ListenerRotation_Units | degrees | ||||
| ReceiverPosition | [0 0 0] | m | rCI, rCM | double | |
| ReceiverPosition_Type | cartesian | m | |||
| ReceiverPosition_Units | meter | m | |||
| SourcePosition | [0 0 0] | m | IC, MC | double | |
| SourcePosition_Type | cartesian | m | |||
| SourcePosition_Units | meter | m | |||
| SourceUp | [0 0 1] | m | IC, MC | double | |
| SourceView | [1 0 0] | m | IC, MC | double | |
| EmitterPosition | [0 0 0] | m | eCI, eCM | double | |
| EmitterPosition_Type | cartesian | m | |||
| EmitterPosition_Units | meter | m | |||
| Data.IR | [1] | m | mRn | double | |
| Data.SamplingRate | 48000 | m | I | double | |
| Data.SamplingRate_Units | hertz | m | |||
| Data.Delay | [0] | m | IR, MR | double |
Legend:
- Name: the name of the metadata
- An underscore (_): the metadata is an attribute
- GLOBAL_: the metadata is a global attribute
- X_Y: the metadata is an attribute Y of the variable X
- No underscore: the metadata is a variable
- Data.X: the metadata is structured within the data
- An underscore (_): the metadata is an attribute
- Default: default value for the metadata
- An asterisk (*): special handling required, mentioned in the column Comment
- Flags:
- r: read-only, must be the default value
- m: mandatory, must be saved in the file
- Dimensions: dimensions of the metadata (see SOFA specifications for more explanations)
- lower case: the variable size in that dimension determines the dimension size in the file
- upper case: variable must be of that dimension (or one of these dimensions)