The synthetic benchmarks include a set of source signals, source signal generators and code for various mixing procedures. All of the code provided is for MATLAB 5.x. Due to the advanced data structures required for making FIR matrices MATLAB 4.x. will not run this code.

The code and filters you need for doing
mixing is bundled in this
archive (2722662 bytes). You can get some sample sources from
the sources
directory (the archive does not include sources). Following is an
explanatory list of all the files included in the archive plus the sources.

Additional code files are `simod.m`
(used to compute source image model), `roomi.m`
(used to load appropriate impulse responses for real room data) and `dconv.m`
(for dynamic convolution). Their use is internal, you do not need
to run them.

`>> cd synthetic-bench/code
% Change to the code subdir to have things working`
`>> s1 = wavread( '../sources/mike.wav');
% Read one sound`
`>> s2 = wavread( '../sources/street.wav');
% Read another one`
`>> [out,w,wi,rc] = instamix( [s1,s2]', .01); % Do an
instantaneous mix`
`>> sound( out( 1, :), 22050)
% Listen at one mix`
`>> w
% Check out mixing matrix`
`w =`
` 1.0200 1.0000`
` 1.0000 1.0200`
`>> wi
% Peek at it's inverse`
`wi =`
` 25.2475 -24.7525`
` -24.7525 25.2475`
`>> iout = wi * out;
% Unmix`
`>> sum( sum( [s1,s2]' - iout))
% Checkout results`
`ans =`
` 1.0498e-11`
`>>`
`>>`
`>> [out,f] = headmix( [s1,s2]', [40, -10]); %
Do a dummy head mixture`
`>> plot( f{1}')
% Check out the mixing filters`
`>> plot( f{2}')`
`>>`
`>>`
`>> [out,f] = roommix( [s1,s2]', [1 2], [5 4]); % Do a mix with
real room filters`
`>> f
% Nasty filters ...`
`f =`
` [16383x1 double] [16383x1
double]`
` [16383x1 double] [16383x1
double]`
`>>`
`>>`
`>> [out,f] = simroommix( [s1,s2]', ...`
` [1 1 1;9 6 5], [6 7 4;3 5 9]);
% Do a simulated room mix`
`>> rotate3d
% Click on the figure and you can rotate the room`
`>>
% and see where the sources and mikes are`
`>>`
`>>`
`>> fd.s = 'sparse';
% Make a sparse filter description`
`>> fd.o = 128;
% The filter length is 128 taps`
`>> fd.n = 1;
% Factor of tap amplitude decay`
`>> fd.m = 10;
% Number of non-zero taps`
`>> [out,f] = staticmix( [s1,s2]', ...
% Make a static mix`
` {fd,fd;fd,fd});
% All four filters are described from fd`
`>>`
`>>`
`>> [out,f] = dynamix( [s1,s2]', ...
% Make a dynamix mixture`
` {fd,fd;fd,fd},
...
% Description of starting filters`
` {fd,fd;fd,fd});
% Description of ending filters`
`>> sound( out(1,:), 22050)
% Good luck ...`

To: ICA
'99 Test Sets

To: ICA
'99