(Recording)
(Matlab Code)
 
(One intermediate revision by the same user not shown)
Line 3: Line 3:
 
Below are three recordings of the first line of the chorus of the Purdue fight song.
 
Below are three recordings of the first line of the chorus of the Purdue fight song.
  
a)[[Media:HailPurdue_ECE301Fall2008mboutin.ogg]] - Normal song
+
a) [[Media:HailPurdue_ECE301Fall2008mboutin.ogg]] - Normal song
  
 
b) [[Media:HailPurdueDoubleTime_ECE301Fall2008mboutin.ogg]] - Played twice as fast
 
b) [[Media:HailPurdueDoubleTime_ECE301Fall2008mboutin.ogg]] - Played twice as fast
Line 11: Line 11:
 
==Matlab Code==
 
==Matlab Code==
 
Hail Purdue
 
Hail Purdue
 +
 +
This code was written to play the three clips posted above.
  
 
<pre>
 
<pre>

Latest revision as of 13:14, 4 September 2008

Recording

Below are three recordings of the first line of the chorus of the Purdue fight song.

a) Media:HailPurdue_ECE301Fall2008mboutin.ogg - Normal song

b) Media:HailPurdueDoubleTime_ECE301Fall2008mboutin.ogg - Played twice as fast

c) Media:HailPurdueTwiceAsHigh_ECE301Fall2008mboutin.ogg - Played one octave higher (I would recommend turning down your speakers, it's a little piercing)

Matlab Code

Hail Purdue

This code was written to play the three clips posted above.


clear
clc

%Sample rate
del=.00005;

%calculate frequencies for the notes in the range we need,
%starting with C (3 half steps below A(440Hz)
for i=3:14
    freq(i-2)=220*2^(i/12);
end

%Assign notes to each calculated frequency
C=freq(1);
Df=freq(2);
D=freq(3);
Ef=freq(4);
E=freq(5);
F=freq(6);
Gf=freq(7);
G=freq(8);
Af=freq(9);
A=freq(10);
Bf=freq(11);
B=freq(12);
hC=2*C;
hDf=2*Df;

%Assign note lengths (in seconds)
whole=2;
h=whole*.5;
q=whole*.25;
dq=q*1.5;
e=whole*.125;

%Arrays of notes and their respective lengths to be played
%key of A flat
notes=[Ef,F,G,Af,Bf,hC]; %Hail, hail to old Purdue!
time=[h,q,q,dq,e,q];

%a) Loop through arrays of notes and times to play the song at normal
%   speed
for i=1:length(notes)
    t=0:del:time(i);
    y=sin(2*pi*notes(i)*t);
    sound(y,1/del)
    pause(time(i));
end

pause(2)

%b) Play song twice as fast (done by cutting the length of the notes
%   in half
for i=1:length(notes)
    t=0:del:time(i)/2;  %divide time by 2
    y=sin(2*pi*notes(i)*t);
    sound(y,1/del)
    pause(time(i)/2);   %also divide pause time by 2
end

pause(2)

%c) Play signal corresponding to the tune of a) and rescale 
%   it according to the transformation y(t)=x(2t).  This plays
%   the song one octave higher (by doubling the frequency)

for i=1:length(notes)
    t=0:del:time(i);
    y=sin(2*pi*notes(i)*t*2); % Use t*2 instead of t
    sound(y,1/del)
    pause(time(i));
end

Alumni Liaison

ECE462 Survivor

Seraj Dosenbach