From Sofaconventions
Jump to: navigation, search


This SOFA convention set is similar to SimpleFreeFieldHRIR. The only difference is the DataType, which is SOS, not FIR. SimpleFreeFieldSOS was requested to cover the needs coming from fast HRTF rendering, where an HRTF is represented as a broadband delay and small number of second-order sections (SOSs).

Version 1.0

This version follows the conventions SimpleFreeFieldHRIR (version 1.0) standardized in AES69-2015.


  • In contrast to SimpleFreeFieldHRIR 1.0, SimpleFreeFieldSOS 1.0 has not been included in the standard. But it can be considered as stable.
  • SimpleFreeFieldSOS does not impose any restriction on the filter coefficients contained in Data.SOS. Especially it is the user responsibility to check whether the filters are stable or not.
  • We encourage to provide information in 'History' about the creation of SOSs and estimation of delay from the underlying filters.
  • We further encourage to use 'Parents' can be used to link the SimpleFreeFieldSOS file with the file containing the original filters.

Name Default Flags Dimensions Type Comment
GLOBAL:Conventions SOFA rm attribute
GLOBAL:Version 1.0 rm attribute
GLOBAL:SOFAConventions SimpleFreeFieldSOS rm attribute This convention set follows SimpleFreeFieldHRIR but the data is stored as second-order section (SOS) coefficients.
GLOBAL:SOFAConventionsVersion 1.0 rm attribute
GLOBAL:APIName rm attribute
GLOBAL:APIVersion rm attribute
GLOBAL:ApplicationName attribute
GLOBAL:ApplicationVersion attribute
GLOBAL:AuthorContact m attribute
GLOBAL:Comment attribute
GLOBAL:DataType SOS rm attribute Filters described as second-order section (SOS) coefficients
GLOBAL:History attribute
GLOBAL:License No license provided, ask the author for permission m attribute
GLOBAL:Organization m attribute
GLOBAL:References attribute
GLOBAL:RoomType free field m attribute
GLOBAL:Origin attribute
GLOBAL:DateCreated m attribute
GLOBAL:DateModified m attribute
GLOBAL:Title m attribute
ListenerPosition [0 0 0] m IC, MC double
ListenerPosition:Type cartesian m attribute
ListenerPosition:Units metre m attribute
ReceiverPosition [0 0.09 0; 0 -0.09 0] m rCI, rCM double
ReceiverPosition:Type cartesian m attribute
ReceiverPosition:Units metre m attribute
SourcePosition [0 0 1] m IC, MC double Source position is assumed to vary for different directions/positions around the listener
SourcePosition:Type spherical m attribute
SourcePosition:Units degree, degree, metre m attribute
EmitterPosition [0 0 0] m eCI, eCM double
EmitterPosition:Type cartesian m attribute
EmitterPosition:Units metre m attribute
GLOBAL:DatabaseName m attribute name of the database to which these data belong
GLOBAL:ListenerShortName m attribute ID of the subject from the database
ListenerUp [0 0 1] m IC, MC double
ListenerView [1 0 0] m IC, MC double
ListenerView:Type cartesian m attribute
ListenerView:Units metre m attribute
Data.SOS permute([0 0 0 1 0 0; 0 0 0 1 0 0], [3 1 2]); m mRn double Filter coefficients as SOS coefficients.
Data.SamplingRate 48000 m I double Sampling rate of the coefficients in Data.SOS and the delay in Data.Delay
Data.SamplingRate:Units hertz m attribute
Data.Delay [0 0] m IR, MR double Broadband delay (in samples resulting from SamplingRate)