Releases: ggrecow/SQAT
SQAT v1.3
Changes
-
get_percentile.mfunction within theutilitesfolder was renamed toget_exceeded_value.min order to avoid confusion between percentile values and value exceeded % of the time. Theget_exceeded_value.mfunction is also able to handle inputs with up to 3 columns in order to allow for inputs related to mono [Nx1], stereo [Nx2], and comb, binaural [Nx3]. -
Statistics in the codes are now computed by a single
get_statistics.mfunction, which uses theget_exceeded_value.mfunction. This way, only one function is used uniformly in all codes of the toolbox and changes can be made quicker is necessary. -
The
get_exceeded_value.mandget_statistics.mDO NOT change anything with respect to computed statistics values or variables names. Therefore, this change is fully backwards compatible with other previous releases
NEW
-
new sound quality metrics (loudness, roughness, and tonality) according to ECMA-418-2:2024 are included, along with verification studies, examples, and reference sound files (including an exemplary stereo sound file).
-
a brief verification of the ECMA-418-2:2024 metrics in SQAT will be presented in a contribution to Forum Acusticum 2025. A code to reproduce all results of this publication is included in the toolbox.
SQAT v1.2
Fixed issues
EPNL_FAR_Part36.m
- bandsharing procedure used to adjust the PNLTM value is now included, according to pull request #7
- small issue related to threshold value used for the duration correction (see pull request #5).
REMARK: Tested all 3 verification codes with the above mentioned fixed issues, and NO changes were observed on those results.
Changes
FluctuationStrength_Osses2016.m
- In response to Issue #11, an extra input called
struct_optwas included to allow for optional parameters (see merge #13). Currently, the only parameters that can be changed is the a0 (sound transmission factor). For that, the structstruct_optneeds to contain the parametera0_type, meaningstruct_opt.a0_type= 'string_input'should be defined with one of the following strings:
string_input = 'fluctuationstrength_osses2016' : freq response is almost entirely flat (this is the default which is used if no input is given at all), as defined by the model's author
string_input = 'fastl2007' : uses the transmission factor for free-field, according to Fig 8.18 (page 226) in Fastl & Zwicker Book, Psychoacoustics: facts and models 3rd edition (doi: 10.1007/978-3-540-68888-4)
- inline function related to the creation of the transmission factor were moved to the
utilitiesfolder. The new standalone functions arecalculate_a0, andcreate_a0_FIR, which could be used by other models if required.
REMARK: the fluctuationstrength_osses2016 transmission factor was the one used by default in all SQAT versions, and it still is the one used by default in the FS model if nothing is given by the user. Therefore, this code is backwards compatible with previous SQAT versions.
NOTE: an example code showing the outcomes and how to use this new feature is provide in the examples folder [Link}
ex_FluctuationStrength_Osses2016_parametrisation.m - this code inside the examples folder shows how to use this feature.
NEW
ex_SPL_meter_sinusoidal_tones.m - shows how to use the sound_level_meter to compute the SPL time-history of two sinusoidal tones using different time- and freq-weightings.
ex_third_octave_spectrogram_2tones.m - shows 1) how to use the Do_OB13_ISO532_1 function to decompose a signal composed of two sinusoidal tones (fc=100Hz and 1 kHz, both with 60 dBSPL) into third-octave bands, 2) compute the SPL time-history each 1/3 octave band using different time- and freq-weightings based on the Do_SLM function, 3) plot a spectrogram comparing the results.
Loudness_ISO532_1.m - additional plots summarizing results of validation study.
SQAT v1.1
Additional features (and modifications necessary for that)
-
Loudness_ISO532_1: the third octave band calculation used in this code was re-coded into an standalone function and placed in thesound_level_meterfolder. The name of the function isDo_OB13_ISO532_1.m. This allows for its flexible use on other codes, including for the calculation of 1/3 octave band spectra using thesound_level_meteritself. This change does not have any effect on the results provided by theLoudness_ISO532_1code released in SQAT v1.0. -
sound_level_meter: with the addition of theDo_OB13_ISO532_1.mfunction, it is now possible to perform spectral analysis using thesound_level_meterin 1/3 octave bands. An example of usage is included underexamples/sound_level_meter/ex_Do_OB13_ISO532_1.m. -
EPNL_FAR_Part36.m- an implementation of the Effective Perceived Noise Level (EPNL) metri is now available under thepsychoacoustic_metricsfolder. An example code (including a ex sound file), as well as validation codes of this implementation are provided. All necessary files can be automatically added into the matlab search path using thestartup_SQAT.mscript.
Fixed issues
-
sound_level_meter: implementation of the B-weighting is now fixed. A code namedsound_level_meter/test_Gen_weighting.mis now available. This code allows for a quick visual verification of the weighting functions generated by theGen_weighting_filtersfunction. -
Tonality_Aures1985: an issue on the bandwidth calculation method was reported and corrected. Because the tones' bandwidth has an relevant influence on the final result, this has lead to a small change on the results. In comparison to the original version of the code, the results leads now to slightly smaller values. Thus, the value of the calibration constant had to be incresed to compensate for that. The change of the calibration value was based on the reference signal. Additionaly, this new version of the code was tested using the code available on thevalidationfolder (a very small difference between old vs. new versions were observed). Nevertheless, this modification might have a relevant influence on your results, and the recalculation of tonality values using this updated version is highly recommended.
SQAT v1.0
First release of SQAT: a sound quality analysis toolbox for MATLAB. It contains a collection of codes implementing key metrics for quantitative sound quality analysis. With SQAT you can conduct quick sound quality analysis on any calibrated input sound file, in Pascal units. To give a transparent indication of how close the implementations are from the original models, we provide a detailed set of verification routines. Moreover, a number of example codes and exemplary sound files is provided in order to facilitate the initial use of the algorithms.