Revision as of 07:43, 5 September 2008 by Zcurosh (Talk)

MATLAB Code to Play Hail Purdue

%Zachary Curosh
%ECE 301, Homework 1.1
%9/5/2008
clear;
clc;

%We were given the fact that an A is 440 Hz. Using the equations given on
%the homework sheet, I was able to calculate the other notes needed.

x=440*3/5;
UpperC=2*x;
B=15*x/8;
A=440;
G=3*x/2;
F=4*x/3;
E=5*x/4;
D=9*x/8;
MiddleC=x;

%The length of notes are defined below

delta = 1/20000;
eigth = .125; %Eigth Note
quarter = .25; %Quarter Note
half = .5; %Half Note
threequarter = .75; %Three Quarters Note
whole = 1; %Whole Note

%I got the following notes to Hail Purdue from a couple of websites.

H_Purdue = [E, F, G, A, B, UpperC, UpperC, D, D, D, A, B, B, UpperC];

Timing = [half, quarter, quarter, quarter+eigth, eigth, quarter, quarter, ...
    quarter, eigth, eigth, quarter, eigth, eigth, half+quarter];

%Now, to play the song at normal speed

c1=1;
for lcv=1:14
    t=0:delta:Timing(lcv);
    x=sin(2*pi*t*H_Purdue(lcv));
    c2=1;
    while c2<length(x)
        HailPurdue(c1)=x(c2);
        c1=c1+1;
        c2=c2+1;
    end
end
sound(HailPurdue,1/delta);

pause(3);

%Now play the song twice as fast
c1=1;
for lcv2=1:14
    t2=0:delta:0.5*Timing(lcv2);
    y=sin(2*pi*t2*H_Purdue(lcv2));
    
    c2=1;
    while c2<length(y)
        Hail.Purdue.twice(c1)=y(c2);
        c1=c1+1;
        c2=c2+1;
    end
end
sound(Hail.Purdue.twice,1/delta);

pause(3);

%Now play the song rescaled y(t)=x(2t)
c1=1;
for lcv2=1:14
    t2=0:delta:Timing(lcv2);
    z=sin(2*pi*t2*2*H_Purdue(lcv2));
    
    c2=1;
    while c2<length(z)
        Hail.Purdue.rescale(c1)=z(c2);
        c1=c1+1;
        c2=c2+1;
    end
end
sound(Hail.Purdue.rescale,1/delta);

%now to write each of the songs to a file
wavwrite(HailPurdue,20100,32,'Hail_Purdue.wav');
wavwrite(Hail.Purdue.twice,20100,32,'Hail_Purdue_faster.wav');
wavwrite(Hail.Purdue.rescale,20100,32,'Hail_Purdue_rescaled.wav');


Sound Files

Media:Hail_Purdue_ECE301Fall2008mboutin.wav


Media:Hail_Purdue_faster_ECE301Fall2008mboutin.wav


Media:Hail_Purdue_rescaled_ECE301Fall2008mboutin.wav

Alumni Liaison

Questions/answers with a recent ECE grad

Ryne Rayburn