A Localisation- and Precedence-based Binaural Separation Algorithm

This software arose out of my PhD thesis*. However, since finishing my PhD it has been continually developed in order to make it more efficient, more accessible and, to some extent, improve performance. Hence, I cannot guarantee that given the same input the results will be the same as those in my thesis. However, the version used for my thesis is archived and available upon request.

* Hummersone, C. (2011), A Psychoacoustic Engineering Approach to Machine Sound Source Separation in Reverberant Environments, Ph.D. thesis, University of Surrey.

Chris Hummersone
christopher.hummersone@surrey.ac.uk

----------------
Change log
----------------

2011-08-24 : check_stimuli.m, separate.m, PrecSep.m
Changed call to check_stimuli - now takes one cell array of filenames, separate calls for target and intereferer files, length comparisons made afterwards.

2011-08-23 : check_revision_profile.m
Fixed bug - setdiff is not commutative, so sometimes differences were not picked up. Changed to try both directions.

2011-08-23 : head_rev.m
Fixed a bug - sort was performed on revision number string value, rather than numeric value, leading to erroneous results.

2011-08-22 : *.m, *.c
Updated m-file help to be compatible with m2html. Added author keyword.

2011-08-18 : warp_ccg_c.c
Changed convolution call to conv_fft, rather than conv, adding slight speed improvement.

2011-08-17 : Documentation
Added ch_xcorr documentation

2011-08-16 : PrecSep.m
Added label on GUI to identify date that functions were last updated.

2011-08-16 : *.m, *.c
Switched to Date and Revision keywords.

2011-08-16 : calc_ibmr.m
Changed calculation of IBMR to match paper: now a ration rather than a percentage.

2011-08-11 : separate.m
Added check: if results are appended, the current revision profile is compared to that stored in the results file. An error is triggered if they differ. This prevents concatenation of results when the underlying source code may be different.

2011-08-10 : *.m, *.c
Added revision number / date / time / username to the bottom of each source file. This data is extracted and written to each new or overwritten results file for each model. The data is useful for determining which version was used to create the results.

2011-08-04 : Readme.txt
Added this readme

2011-08-04 : PrecSep_manual.pdf
Updated documentation

2011-07-28 : Contents.m
Updated the contents, especially WRT gammatone filterbank

2011-07-28 : ch_xcorr.m, check_mex_compiled.m, prec_fallermerimaa.m, prec_lindemann.m, prec_martin.m, separate.m, warp_ccg.m
Changed CHECK_MEX_COMPILED to call MEX directly (rather than through EVAL). Changed the input arguments to bring it into line with MEX conventions. Changed all calls to CHECK_MEX_COMPILED to account for changes.

2011-07-28 : resynthesise.m
added check for vector input

2011-07-28 : azimuth2itd.m, itd2azimuth.m
Calculations now performed in degrees rather than radians

2011-07-28 : PrecSep_manual.pdf
Minor updates to documentation

2011-07-14 : MakeErbCFs.m, gammatone_c.c, gammatone_c.m, gammatonebank.m, gammatone.m, get_ild_template.m, resynthesise.m, separate.m
Overhauled gammatone filterbank to allow a phase-aligned output. This is now used in resynthesis, instead of passing the gammatone output backwards through the gammatone filterbank. The delay removal is further accounted for in the resynthesis by aligning the mask accordingly. An alternative m-file gammatone filter is adopted. Some necessary but minor modifications made to other functions to incorporate the new functionality.

2011-07-13 : PrecSep.m
Minor changes to PrecSep.m to replace future obsolete functions

2011-07-11 : PrecSep_manual.pdf
Updated documentation to include information on ch_xcorr.m

2011-07-07 : Contents.m
Updated Contents.m

2011-06-30 : ch_xcorr_c.c, fm_xcorr.c, lindemann_xcorr.c, martin_xcorr.c, warp_ccg_c.c
Added verbose comments throughout C source files

2011-06-29 : ch_xcorr.m, ch_xcorr_c.c
Updated ch_xcorr functions with more verbose comments

2011-01-17 : PrecSep.m
Commented out call to guidemfile, since this broke on r2007a (MBP, OS X 10.6)

2010-12-09 : Documentation
Added documentation

2010-11-08 : *
The software came under version control (VC), having previously been developed without VC.

