(New page: == Sound Files == Hail Purdue! == Matlab Code == <pre> %Phil Cannon %pjcannon@purdue.edu %ECE301 HW1_1 %This file takes roughly 30 seconds to compile completely a...)
 
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Sound Files ==
 
== Sound Files ==
[[Media: Hw1 1a_ECE301Fall2008mboutin.wav|Hail Purdue!]]
+
* a. [[Media: Hw1 1a_ECE301Fall2008mboutin.wav|Hail Purdue!]] at normal speed.
 
+
* b. [[Media: Hw1 1b_ECE301Fall2008mboutin.wav|Hail Purdue!]] twice as fast.
 +
* c. [[Media: Hw1 1c_ECE301Fall2008mboutin.wav|Hail Purdue!]] twice the frequency.
  
 
== Matlab Code ==
 
== Matlab Code ==
Line 90: Line 91:
 
wavwrite(HailPurdueTrans, 20100, 'hw1_1c.wav');
 
wavwrite(HailPurdueTrans, 20100, 'hw1_1c.wav');
 
</pre>
 
</pre>
 +
 +
 +
== Results ==
 +
This problem took some time, but it was nice learning how to make and play Hail Purdue in Matlab.  The only thing that bothered me was a warning produced in Matlab when using wavwrite, however it didn't seem to be doing anything noticeable.

Latest revision as of 09:33, 3 September 2008

Sound Files

Matlab Code

%Phil Cannon 
%pjcannon@purdue.edu
%ECE301 HW1_1

%This file takes roughly 30 seconds to compile completely and will play
%three different versions of 'Hail Purdue'.  Note: When the wave files are
%created MatLab produces a warning, but it doesn't seem to do anything.

delta=0.00005;

%Declare notes and note lengths
%Taken from:
%http://it4musos.com/audio_workshop/guitar%20note%20frequencies.jpg
Eflat=311; E=329; F=349; Gflat=370; G=392;
Aflat=415; A=440; Bflat=466; B=494; C=523; Dflat=554;

E=.125;
Q=.25;
H=.5;
HQ=H+Q;
DotQ=Q+(.5*Q);

%Array of notes for 'Hail Purdue!'
%Taken from: 
%http://www.purdue.edu/bands/media/Sounds/aamb/Hail%20Purdue%20Piano%20Sheet.pdf
Notes = [Eflat, F, G, Aflat, Bflat, C, C, Dflat, Dflat, Dflat, Aflat, Bflat, B, C];
NLength = [HQ, Q, Q, DotQ, E, Q, Q, Q, E, E, Q, E, E, HQ];

%Part A.  Compiles 'Hail Purdue'.
c1=1;
for counter=1:(length(Notes))
    
    t=0:delta:NLength(counter);
    d=sin(2*pi*t*Notes(counter));
    
    c2=1;
    while c2<length(d)
        HailPurdue(c1)=d(c2);
        c1=c1+1;
        c2=c2+1;
    end
end
fprintf('Part 1 compiled...')

%Part B.  Compiles 'Hail Purdue', but twice as fast.
c1=1;
for counter2=1:(length(Notes))
    
    t2=0:delta:.5*NLength(counter2);
    d2=sin(2*pi*t2*Notes(counter2));
    
    c2=1;
    while c2<length(d2)
        HailPurduex2(c1)=d2(c2);
        c1=c1+1;
        c2=c2+1;
    end
end
fprintf('\nPart 2 compiled...')

%Part B.  Compiles 'Hail Purdue', but twice the pitch.
c1=1;
for counter3=1:(length(Notes))
    
    t3=0:delta:NLength(counter3);
    d3=sin(2*2*pi*t3*Notes(counter3));
    
    c2=1;
    while c2<length(d3)
        HailPurdueTrans(c1)=d3(c2);
        c1=c1+1;
        c2=c2+1;
    end
end
fprintf('\nPart 3 compiled...')
fprintf('Boiler up!\n')

sound(HailPurdue,1/delta);
sound(HailPurduex2,1/delta);
sound(HailPurdueTrans,1/delta);

wavwrite(HailPurdue, 20100, 'hw1_1a.wav');
wavwrite(HailPurduex2, 20100, 'hw1_1b.wav');
wavwrite(HailPurdueTrans, 20100, 'hw1_1c.wav');


Results

This problem took some time, but it was nice learning how to make and play Hail Purdue in Matlab. The only thing that bothered me was a warning produced in Matlab when using wavwrite, however it didn't seem to be doing anything noticeable.

Alumni Liaison

Prof. Math. Ohio State and Associate Dean
Outstanding Alumnus Purdue Math 2008

Jeff McNeal