(New page: hello world)
 
Line 1: Line 1:
hello world
+
== Headline text ==
 +
 
 +
 
 +
<pre>
 +
 
 +
% Ben Laskowski (blaskows@purdue.edu)
 +
% September 5, 2008
 +
% ECE301 Section 2 HW1
 +
%
 +
% This file is supposed to play Hail Purdue.
 +
 
 +
% Begin by clearing the output console and all memory.
 +
clear;
 +
clc;
 +
 
 +
%Define note durations.
 +
% Take the time signature as 4/4 and let the quarter note = 172bpm.
 +
% Then we have 172 quarter notes per minute, so the quarter note duration is 60/172 minute.
 +
Q=60/172;
 +
%Use the quarter note as a reference for the other note types.
 +
H=2*Q; % Half note
 +
W=4*Q; % Whole note
 +
En=Q/2; %Eighth note
 +
DQ=Q+En;%Dotted quarter
 +
DH=H+Q; %Dotted half
 +
 
 +
%Now, define frequencies for each note starting with the A below middle C and extending an octave.
 +
for note=0:12
 +
Frequency(note+1)=220*2^(note/12);
 +
end
 +
 
 +
%Define a constant for each note.
 +
% Even though this will be in the key of D, I do not like sharp keys and will therefore define all accidentals as flats.
 +
A=Frequency(1);
 +
Bb=Frequency(2);
 +
B=Frequency(3);
 +
C=Frequency(4);
 +
Db=Frequency(5);
 +
D=Frequency(6);
 +
Eb=Frequency(7);
 +
E=Frequency(8);
 +
F=Frequency(9);
 +
Gb=Frequency(10);
 +
G=Frequency(11);
 +
Ab=Frequency(12);
 +
A2=Frequency(13);
 +
 
 +
%Now, define arrays of notes and durations.
 +
Notes=[A,B,Db,D,Db,D,Db,D,Db,D,E,D,A,B,Db, ...      %Cheer your call once more we rally, Alma Mater hear our praise
 +
      Db,D,Eb,E,Eb,E,Eb,E,Eb,E,Gb,E,A,G,Gb, ...    %Where the Wabash spreads its valley, filled with joy our voices raise
 +
      A,B,Db,D,Db,D,Db,D,Db,D,A2,Gb,E,D,G, ...    %From the skies in swelling echoes come the cheers that tell the tale
 +
      D,D,E,E,F,F,Gb,Gb,G,A2,Gb,E,D,Gb,E,E, ...    %Of your vict'ries and your heroes, all hail Purdue, we sing all hail
 +
      A,B,Db,D,E,Gb,Gb,G,G,G,D,E,F,Gb, ...        %Hail, hail to old Purdue!  All hail to our old gold and black
 +
      Gb,Gb,E,D,E,Gb,Gb,E,B,Db,D,Db,B,E, ...      %Hail, hail to old Purdue!  Our friendship may she never lack!
 +
      A,A,B,Db,D,E,Gb,Gb,Gb,G,G,D,E,Gb, ...        %Ever grateful, ever true, thus we raise our song anew...
 +
      B,Db,D,B,A,D,Gb,A,B,Gb,E,D,D];              %Of the days we spend with you, all hail our old Purdue!
 +
 +
Times=[Q,Q,Q,Q,Q,Q,En,En,En,En,Q,Q,Q,Q,DH, ...
 +
      Q,Q,Q,Q,Q,Q,En,En,En,En,Q,Q,Q,Q,DH, ...
 +
      Q,Q,Q,Q,Q,Q,En,En,En,En,Q,Q,Q,Q,DH, ...
 +
      En,En,DQ,En,DQ,En,Q,En,En,En,En,En,En,H,H,W, ...
 +
      H,Q,Q,DQ,En,Q,Q,Q,En,En,Q,En,En,DH, ...
 +
      H,Q,Q,DQ,En,Q,Q,Q,En,En,Q,En,En,W, ...
 +
      DQ,En,Q,Q,DQ,En,Q,En,En,Q,Q,Q,Q,W, ...
 +
      DQ,En,Q,Q,Q,Q,Q,Q,DQ,En,DQ,En,1.5*W];
 +
 
 +
%Let the sampling frequency be 20kHz, since this is what was used for the demo in class.
 +
delta=1/20000;
 +
 
 +
%I count 116 notes in the above.
 +
 
 +
%First, play the song at normal speed.
 +
for counter=1:116
 +
t=0:delta:Times(counter); %Create a vector of times with appropriate duration
 +
d=sin(2*pi*t*Notes(counter)); %Generate a sine wave for the afmorementioned
 +
sound(d,1/delta); %Play the sound.
 +
end
 +
 
 +
pause(5)
 +
 
 +
%Second, play the song at double speed.
 +
for counter=1:116
 +
t=0:delta:0.5*Times(counter); %Create a vector of times with appropriate duration:
 +
                                    %Here, we cut the "correct" times in half to speed up the song.                 
 +
d=sin(2*pi*t*Notes(counter)); %Generate a sine wave for the afmorementioned
 +
sound(d,1/delta); %Play the sound.
 +
end
 +
 
 +
pause(5)
 +
 
 +
%Finally, play the song according to the transformation y(t)=x(2t).
 +
%This should have the effect of transposing up an octave, or doubling the
 +
%frequency.
 +
for counter=1:116
 +
t=0:delta:Times(counter); %Create a vector of times with appropriate duration
 +
d=sin(2*2*pi*t*Notes(counter)); %Generate a sine wave for the afmorementioned
 +
sound(d,1/delta); %Play the sound.
 +
end
 +
 
 +
 
 +
</pre>

Revision as of 13:09, 2 September 2008

Headline text


% Ben Laskowski (blaskows@purdue.edu)
% September 5, 2008
% ECE301 Section 2 HW1
%
% This file is supposed to play Hail Purdue.

% Begin by clearing the output console and all memory.
clear;
clc;

%Define note durations.
% Take the time signature as 4/4 and let the quarter note = 172bpm.
% Then we have 172 quarter notes per minute, so the quarter note duration is 60/172 minute.
Q=60/172;
%Use the quarter note as a reference for the other note types.
H=2*Q;	% Half note
W=4*Q;	% Whole note
En=Q/2;	%Eighth note
DQ=Q+En;%Dotted quarter
DH=H+Q;	%Dotted half

%Now, define frequencies for each note starting with the A below middle C and extending an octave.
for note=0:12
	Frequency(note+1)=220*2^(note/12);
end

%Define a constant for each note.
% Even though this will be in the key of D, I do not like sharp keys and will therefore define all accidentals as flats.
A=Frequency(1);
Bb=Frequency(2);
B=Frequency(3);
C=Frequency(4);
Db=Frequency(5);
D=Frequency(6);
Eb=Frequency(7);
E=Frequency(8);
F=Frequency(9);
Gb=Frequency(10);
G=Frequency(11);
Ab=Frequency(12);
A2=Frequency(13);

%Now, define arrays of notes and durations.
Notes=[A,B,Db,D,Db,D,Db,D,Db,D,E,D,A,B,Db, ...      %Cheer your call once more we rally, Alma Mater hear our praise 
       Db,D,Eb,E,Eb,E,Eb,E,Eb,E,Gb,E,A,G,Gb, ...    %Where the Wabash spreads its valley, filled with joy our voices raise
       A,B,Db,D,Db,D,Db,D,Db,D,A2,Gb,E,D,G, ...     %From the skies in swelling echoes come the cheers that tell the tale
       D,D,E,E,F,F,Gb,Gb,G,A2,Gb,E,D,Gb,E,E, ...    %Of your vict'ries and your heroes, all hail Purdue, we sing all hail
       A,B,Db,D,E,Gb,Gb,G,G,G,D,E,F,Gb, ...         %Hail, hail to old Purdue!  All hail to our old gold and black
       Gb,Gb,E,D,E,Gb,Gb,E,B,Db,D,Db,B,E, ...       %Hail, hail to old Purdue!  Our friendship may she never lack!
       A,A,B,Db,D,E,Gb,Gb,Gb,G,G,D,E,Gb, ...        %Ever grateful, ever true, thus we raise our song anew...
       B,Db,D,B,A,D,Gb,A,B,Gb,E,D,D];               %Of the days we spend with you, all hail our old Purdue!
 
Times=[Q,Q,Q,Q,Q,Q,En,En,En,En,Q,Q,Q,Q,DH, ... 
       Q,Q,Q,Q,Q,Q,En,En,En,En,Q,Q,Q,Q,DH, ... 
       Q,Q,Q,Q,Q,Q,En,En,En,En,Q,Q,Q,Q,DH, ...
       En,En,DQ,En,DQ,En,Q,En,En,En,En,En,En,H,H,W, ... 
       H,Q,Q,DQ,En,Q,Q,Q,En,En,Q,En,En,DH, ...
       H,Q,Q,DQ,En,Q,Q,Q,En,En,Q,En,En,W, ... 
       DQ,En,Q,Q,DQ,En,Q,En,En,Q,Q,Q,Q,W, ... 
       DQ,En,Q,Q,Q,Q,Q,Q,DQ,En,DQ,En,1.5*W];

%Let the sampling frequency be 20kHz, since this is what was used for the demo in class.
delta=1/20000;

%I count 116 notes in the above.

%First, play the song at normal speed.
for counter=1:116
	t=0:delta:Times(counter);	%Create a vector of times with appropriate duration
	d=sin(2*pi*t*Notes(counter));	%Generate a sine wave for the afmorementioned
	sound(d,1/delta);		%Play the sound.
end

pause(5)

%Second, play the song at double speed.
for counter=1:116
	t=0:delta:0.5*Times(counter);	%Create a vector of times with appropriate duration:
                                    %Here, we cut the "correct" times in half to speed up the song.                  
	d=sin(2*pi*t*Notes(counter));	%Generate a sine wave for the afmorementioned
	sound(d,1/delta);		%Play the sound.
end

pause(5)

%Finally, play the song according to the transformation y(t)=x(2t).
%This should have the effect of transposing up an octave, or doubling the
%frequency.
for counter=1:116
	t=0:delta:Times(counter);	%Create a vector of times with appropriate duration
	d=sin(2*2*pi*t*Notes(counter));	%Generate a sine wave for the afmorementioned
	sound(d,1/delta);		%Play the sound.
end


Alumni Liaison

Basic linear algebra uncovers and clarifies very important geometry and algebra.

Dr. Paul Garrett