The Mathematical Listening Comprehension Test (MLCT)
(matlab codes)


White noise (4a)

%noise.m
v =0.5*(rand(10*44100,1)-1/2);

wavwrite([v,v], 44100, 16, 'noise.wav');
 

S1 (2c)

% S1.m
t=[1:1:7*44100]/44100;
n=1;
v=zeros(1,length(t));
w=zeros(1,length(t));

for k=1:14,
	w = 1/2^k* sin (2*pi* t * 220 * k );
	v = v+ w;
end

w2=v.*exp(-1*t);
w2=w2/max(abs(w2))*0.999;
wavwrite([w2;w2]', 44100, 16, 'S1.wav');

S1000000 (1d)

% S1E6.m
clear all
t=[1:1:7*44100]/44100;
n=1000000;
v=zeros(1,length(t));
w=zeros(1,length(t));

for k=1:14,
	mult = sqrt(  k*(k+n-1)/n );
	w = 1/2^k* sin (2*pi* t * 220 * mult );
        v = v+ w;
end

v=v.*exp(-1*t);  
v=v/max(abs(v))*0.999;  
w2=[v;v]';
wavwrite(w2, 44100, 16, 'S1E6.wav');  

Amplitude modulation (6e)

% AM.m
t=[1:1:26*44100]/44100;

v=sin(40*sin(2*pi*10*t))./ (1+ sin(sin(t)));
w2=[v;v]'/6.31;
wavwrite(w2, 44100, 16, 'AM.wav');

Topologist's sinusoid (7b)

% toposin.m
t=[1:1:10*44100]/44100;
v=0.999*sin(2*pi*50./t);

wavwrite([v;v]', 44100, 16, 'toposin.wav');

Karplus-Strong (5i)

% drum.m
% generate drum signal using Karplus-Strong algorithm.
L = 441;        % buffer length
alpha=0.5;
t=(1:1:10*44100);

x = [sin(9/2*pi*t(1:L)/L), zeros(1,length(t)-L)];

for i = L+1:length(t),
  x(i)=alpha*x(i-L)+alpha*sign(sin(sinh(100*x(i-L))))*x(i-L+1);
end

w2 = x(1:length(t))*0.999;
wavwrite([w2;w2]', 44100, 16, 'drum.wav');

Recurring pulse with increasing frequency (3f)

% effect 1
% fx1.m
t=[1:1:16*44100]/44100;
v=sin(sin(2*sinh(0.25*t)).^(50) * 100*2*pi);

wavwrite([v;v]'*0.999, 44100, 16, 'fx1.wav');

Frequency modulation (8g)

% effect 2 
% fx2.m 

t=[1:1:22*44100]/44100;
v=sin(150*t.^2+70*sin(2*pi*40*sqrt(t)));
w2=[v;v]'*0.999;

wavwrite(w2, 44100, 16, 'fx2.wav');

Strange signal (9h)

% highfreq.m
t=[1:1:48*44100];
v=zeros(length(t),1);
for i=4:length(t),
	v(i)=sin(v(i-3)-(1/20*i/44100)*v(i-2)+v(i-1)+ 2*pi*2*i/44100);
end

w2=[v,v]*0.999;
wavwrite(w2, 44100, 16, 'highfreq.wav');       

Back