Sound File
Hail Purdue
Media:HailPurdue_ECE301Fall2008mboutin.wav
Hail Purdue at double the speed
Media:HailPurdueX2_ECE301Fall2008mboutin.wav
Hail Purdue with y(t) = x(2t)
Media:ModHailPurdue_ECE301Fall2008mboutin.wav
MATLAB Code
% HW 1.1 - Playing Hail Purdue
% Caleb Tan
% Defining notes according to their frequencies
% Source: http://www.phy.mtu.edu/~suits/notefreqs.html
Eb4 = 311.13;
F4 = 349.23;
G4 = 392.00;
Ab4 = 415.30;
Bb4 = 466.16;
A4 = 440.00;
C5 = 523.25;
Db5 = 554.37;
B4 = 493.88;
Eb5 = 622.25;
% Defining vector for song score
Score = [Eb4 F4 G4 Ab4 G4 Ab4 G4 Ab4 G4 Ab4 Bb4 Ab4 Eb4 F4 G4...
G4 Ab4 A4 Bb4 A4 Bb4 A4 Bb4 A4 Bb4 C5 Bb4 Eb4 Db5 C5... Eb4 F4 G4 Ab4 G4 Ab4 G4 Ab4 G4 Ab4 Eb5 C5 Bb4 Ab4 Db5 Ab4... Bb4 Bb4 B4 B4 C5 Db5 Eb5 C5 Bb4 G4 C5 Bb4 Ab4 Bb4... Eb4 F4 G4 Ab4 Bb4 C5 C5 Db5 Db5 Db5 Ab4 Bb4 B4 C5... C5 C5 Bb4 Ab4 Bb4 C5 C5 Bb4 F4 G4 Ab4 G4 F4 Bb4 Bb4 Eb5... Eb4 Eb4 F4 G4 Ab4 Bb4 C5 C5 C5 Db5 Db5 Ab4 Bb4 C5... F4 G4 Ab4 F4 Eb4 Ab4 C5 Eb4 F4 C5 Bb4 Ab4];
% sampling frequency
delta = 0.00005;
% Tempo = 140 beats per minute, therefore a quarter note is 60/140 seconds long
% Defining note lengths
Q = 60/140; % Quarter note
W = 4*Q; % Whole note
H = 2*Q; % Half note
E = Q/2; % Eighth note
S = Q/4; % Sixteenth note
DQ = Q + E; % Dotted Quarter
DH = H + Q; % Dotted Half
% Time vector for the respective notes
Time = [Q Q Q Q Q Q E E E E Q Q Q Q DH ...
Q Q Q Q Q Q E E E E Q Q Q Q DH ... Q Q Q Q Q Q E E E E Q Q Q Q DH ... E E DQ E DQ E Q E E E E E E H H W ... H Q Q DQ E Q Q Q E E Q E E DH ... H Q Q DQ E Q Q Q E E Q E E W ... DQ E Q Q DQ E Q E E Q Q Q Q W ... DQ E Q Q Q Q Q Q DQ E DQ E 1.5*W];
% 1.1(a)
for c = 1:length(Score)
t = 0:delta:Time(c); y = sin(2*pi*Score(c)*t); sound(y,1/delta);
end
% 1.1(b) - Double the playing rate
for c = 1:length(Score)
t = 0:delta:(Time(c))/2; y = sin(2*pi*Score(c)*t); sound(y,1/delta);
end
% 1.1(c) - y(t) = x(2t)
for c = 1:length(Score)
t = 0:delta:Time(c); y = sin(2*pi*Score(c)*2*t); sound(y,1/delta);
end