SOFA conventions specify the description of data and metadata for a particular kind of measured data.
This is important in order to meet the different requirements coming from different application fields, specified. For example, description of HRTFs, BRIRs, and DRIRs requires different metadata. Also, some applications may prefer to see the data stored in a different way. These conventions, once approved by the peer group are defined in SOFA conventions.
Specification of conventions are displayed in tables using the following legend:
- Name: the name of the metadata
- A colon: 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 colon: the metadata is a variable
- Data.X: the metadata is structured within the data
- A colon: the metadata is an attribute
- Default: default value for the metadata
- An asterisk (*): special handling required, mentioned in the column Comment
- r: read-only, must be the default value
- m: mandatory, must be saved in the file
- Dimensions: dimensions of the metadata
- 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)
- Expand the following table to see the dimensions used in SOFA. Depending on the conventions there might be further restrictions. See SOFA specifications for more explanations.
Dimension Description Restrictions M number of measurements integer >0 R number of receivers or harmonic coefficients describing receivers integer >0 E number of emitters or harmonic coefficients describing emitters integer >0 N number of data samples describing one measurement integer >0 S number of characters in a string integer ≥0 I singleton dimension, constant always 1 C coordinate triplet, constant always 3
Standardized SOFA conventions
Standardized SOFA conventions are those which have been standardized by the AES.
As with AES69-2022 (SOFA 2.1), we standardized the following conventions:
- GeneralFIR: General convention with FIR as DataType (no restrictions but DataType)
- GeneralTF: General convention with TF as DataType (no restrictions but DataType)
- SimpleFreeFieldHRIR: Free-field HRTFs stored as impulse responses, measured with an omnidirectional source for a single listener.
- GeneralFIR-E: General convention with FIR-E as DataType (no restrictions but DataType). GeneralFIR-E is the standardized version of the previously proposed GeneralFIR convention. It extends GeneralFIR by having Emitter as an explicit dimension in the data.
- GeneralTF-E: General convention with TF-E as DataType (no restrictions but DataType). GeneralTF-E extends GeneralTF by having Emitter as an explicit dimension in the data.
- GeneralSOS: General convention following GeneralFIR with SOS as DataType.
- General: General convention with any datatype (no restrictions at all).
- SimpleFreeFieldHRTF: Free-field HRTFs stored as transfer functions, measured with an omnidirectional source for a single listener. Based on SimpleFreeFieldHRIR, the only difference is the DataType, that is TF.
- SimpleFreeFieldHRSOS: Free-field HRTFs stored as second-order sections, measured with an omnidirectional source for a single listener. Based on SimpleFreeFieldHRIR, the only difference is the DataType, that is SOS.
- FreeFieldHRTF: Free-field HRTFs stored as transfer functions in the spherical-harmonics domain, measured with an omnidirectional source for a single listener. Based on SimpleFreeFieldHRTF, the only difference is that the HRTFs are in a spatially continuous representation.
- FreeFieldHRIR: An extension of SimpleFreeFieldHRIR in order to consider more complex data sets described in spatially continuous representation. Each HRTF direction corresponds to an emitter, and a consistent measurement for a single listener and all directions is described by a set of the emitter positions surrounding the listener.
- FreeFieldDirectivityTF: Convention for storing directivities of musical instruments or loudspeakers at spatial discrete points in the frequency domain. FreeFieldDirectivityTF is the standardized version of the previously proposed (Simple)FreeFieldDirectivityTF and MusicalInstrumentDirectivityTF.
- SingleRoomSRIR: spatial room impulse responses (SRIRs) measured with an arbitrary number of receivers (R>1, such as a microphone array) and an omnidirectional source (E=1) in a single room. SingleRoomSRIR is the standardized version of the previously proposed SingleRoomDRIR.
- SingleRoomMIMOSRIR: SRIRs measured with a compact listener containing an arbitrary number of receivers (R>1, such as a compact microphone array) and a compact source containing an arbitrary number of emitters (E>1, such as a multi-emitter loudspeaker) for multiple positions and/or orientations of the listener and/or source, in a single room.
- SimpleHeadphoneIR: Conventions to store headphone IRs recorded for each emitter and each ear, single listener and no directionality of emitter/receiver considered.
Note: Any modification in one of these conventions changes its status to "stable", i.e., not standardized anymore, unless the modification will be approved the AES.
Stable SOFA conventions
Stable SOFA conventions are those for which SOFA files are publicly available, have been checked by the SOFA team for consistency, and can be read/modified by at least one publicly available software package. They have version of 1.0 at least.
These conventions, when used often and widely, can be proposed for standardization to the AES.
Proposed SOFA conventions
Proposed SOFA conventions are those being currently discussed and considered as work in progress. They have a version 0.x.
Currently available proposed conventions:
- GeneralString: Conventions for testing the string support.
- AnnotatedReceiverAudio: Conventions to store (binaural) audio data at the receivers, annotated with geometric information.
- AnnotatedEmitterAudio: Conventions to store audio data at the ermitters, annotated with geometric information.
If you would like to propose a new convention, consider the following rules:
- Data must exist or are being developed
- Data can not be described by existing SOFA conventions
- Relevant information about the data available
Ideas for future conventions
Here we list the suggestions and feedback from the peer group:
- Include anthropometric data
- Crosstalk cancellation filters
- Include calibration data from the measurement
- Include room pictures
Please use the "Discussion" function to discuss these topics.
Deprecated SOFA conventions
These conventions are deprecated because their proposal has changed or they have been standardized under different name. They are listed here for the sake of completeness only. When reading a SOFA file with a deprecated convention, convert to that stated below:
- MusicalInstrumentDirectivityTF: use FreeFieldDirectivityTF instead.
- SimpleFreeFieldDirectivityTF: use FreeFieldDirectivityTF instead.
- SimpleBRIR: use SingleRoomSRIR instead.
- GeneralFIRE: use GeneralFIR-E instead.
- SimpleFreeFieldTF: use SimpleFreeFieldHRTF instead.
- SimpleFreeFieldSOS: use SimpleFreeFieldHRSOS instead.
- SingleRoomDRIR: use SingleRoomSRIR instead.
- MultiSpeakerBRIR: use SingleRoomMIMOSRIR instead.
- SingleTrackedAudio: Conventions to record audio data annotated with geometric information. Deprecated: Please use AnnotatedReceiverAudio or AnnotatedEmitterAudio instead.
We strongly discourage from saving data with those conventions.
Feedback and Contribution
If you would like to contribute or propose new SOFA conventions:
- Send an e-mail to the mailing list. You don't have to be a member of the mailing list to send a message to the moderator.
- Go to one of the SOFA pages of your interest and use the "Discussion" for your contribution.
We appreciate your feedback!