Revision as of 16:50, 1 September 2008 by Li186 (Talk)

%Hetong Li
%09/01/08
%ECE301 hw1.1

clear;
clc;
scale=1; %initialize scale
t=[];
delta=0.0005;
%define frequencies for each tone
for n=1:19
    freq(n)=220*2^((n-1)/12);
end
A=freq(1);    
Bb=freq(2);   
B=freq(3);    
C=freq(4);    
Db=freq(5);   
D=freq(6);    
Eb=freq(7);    
E=freq(8);    
F=freq(9);
Gb=freq(10);    
G=freq(11);    
A2b=freq(12);    
A2=freq(13);    
B2b=freq(14);    
B2=freq(15);     
C2=freq(16);    
D2b=freq(17);    
D2=freq(18);    
E2b=freq(19);    
O=0;       
%define durations
P=60/172; 
TP=P*2;   
FP=P*4;   
THP=P*3;  
QP=P*1.5; 
H=P/2;
%Notes and Duration    
x = [Eb,F,G,A2b,G,A2b,G,A2b,G,A2b,B2b,A2b,Eb,F,G,O, ...
     G,A2b,A2,B2b,A2,B2b,A2,B2b,A2,B2b,C2,B2b,Eb,D2b,C2,O, ...
     Eb,F,G,A2b,G,A2b,G,A2b,G,A2b,E2b,C2,B2b,A2b,D2b,A2b,A2b, ...
     B2b,B2b,B2,B2,C2,D2b,E2b,C2,B2b,A2b,C2,B2b,B2b, ...
     Eb,F,G,A2b,B2b,C2,C2,D2b,D2b,D2b,A2b,B2b,B2,C2, ...
     C2,C2,B2b,A2b,B2b,C2,C2,B2b,F,G,A2b,G,F,B2b, ...
     Eb,Eb,F,G,A2b,B2b,C2,C2,C2, ...
     D2b,D2b,A2b,B2b,C2,O,F,G, ...
     A2b,F,Eb,A2b,C2,Eb,C2,B2b,A2b,A2b];
   
dur = [P,P,P,P,P,P,H,H,H,H,P,P,P,P,THP,P, ...
       P,P,P,P,P,P,H,H,H,H,P,P,P,P,THP,P, ...
       P,P,P,P,P,P,H,H,H,H,P,P,P,P,THP,H,H, ...
       QP,H,QP,H,QP,H,H,H,H,H,TP,TP,FP, ...
       TP,P,P,QP,H,P,P,P,H,H,P,H,H,FP, ...
       TP,P,P,QP,H,P,P,P,H,H,P,H,H,FP, ...
       QP,H,P,P,QP,H,P,H,H, ...
       P,P,P,P,THP,P,QP,H, ...
       P,P,P,P,TP,QP,H,QP,H,THP];
% I almost know nothing about music thoery,so I referred to previous submitted hws for frequency formula.
% and notes of hail purdue.

part = input('Please choose the partyou want to play(a,b,c):','s');
y=[];
if(strcmp(part,'a'))
    for i = 1:length(dur)
        t = 0:delta:dur(i); 
        y = sin(2*pi*x(i)*t*scale);
        sound(y,1/delta);
    end
elseif(strcmp(part,'b'))
    dur=dur./2;
    for i = 1:length(dur)
        t = 0:delta:dur(i); 
        y= sin(2*pi*x(i)*t*scale);
        sound(y,1/delta);
    end
elseif(strcmp(part,'c'))
    scale=2;
    for i = 1:length(dur)
        t = 0:delta:dur(i); 
        y = sin(2*pi*x(i)*t*scale);
        sound(y,1/delta);
    end
else
    fprintf('Sorry,there is no corresponding part');
end

Alumni Liaison

Recent Math PhD now doing a post-doctorate at UC Riverside.

Kuei-Nuan Lin