(MATLAB CODE)
Line 1: Line 1:
  
== MATLAB CODE ==
+
%NICK GENTRY
 +
%ECE301
 +
%08/31/08
  
 
clc
 
clc
Line 17: Line 19:
 
%This is the array that makes up the notes played in the song:
 
%This is the array that makes up the notes played in the song:
  
noteOrder = [DSharp, F, G, GSharp, ASharp, C, C, CSharp,  
+
noteOrder = [DSharp, F, G, GSharp, ASharp, C, C, CSharp, CSharp, CSharp, GSharp, ASharp, ASharp, C, C, C, ASharp, GSharp, ASharp, C, C, ASharp, F, G, GSharp, G, F ,ASharp, ASharp];
            CSharp, CSharp, GSharp, ASharp, ASharp, C,  
+
            C, C, ASharp, GSharp, ASharp, C, C, ASharp,  
+
            F, G, GSharp, G, F ,ASharp, ASharp];
+
  
noteLength = [HLF, QTR, QTR, QTR, ETH, QTR, QTR, QTR, ETH,  
+
noteLength = [HLF, QTR, QTR, QTR, ETH, QTR, QTR, QTR, ETH, ETH, QTR, ETH, ETH, HLF, QTR, HLF, QTR, QTR, ETH, QTR, QTR, QTR, ETH, ETH, QTR, ETH, ETH, HLF, QTR];
              ETH, QTR, ETH, ETH, HLF, QTR, HLF, QTR, QTR,  
+
              ETH, QTR, QTR, QTR, ETH, ETH, QTR, ETH, ETH,  
+
              HLF, QTR];
+
  
 
numNotes = 29; %Number of notes to be played
 
numNotes = 29; %Number of notes to be played
  
 
delta = 0.00005; %Sampling Rate
 
delta = 0.00005; %Sampling Rate
x = 1; %Counter for main loop
+
x = 1; %Counter Value
count1 = 1; %Used as counter for nested while loop.
+
count1 = 1; %Used as counter for while loop.
 
%--------------------------------------------------------------------------
 
%--------------------------------------------------------------------------
 
%PART A
 
%PART A
Line 50: Line 46:
 
sound(writeArray1, 1/delta); %Plays sound file
 
sound(writeArray1, 1/delta); %Plays sound file
  
x = 1; %Coutner for main loop
+
x = 1; %Counter Value
 
count1 = 1; %Reinitializes the counter
 
count1 = 1; %Reinitializes the counter
 
%--------------------------------------------------------------------------
 
%--------------------------------------------------------------------------
Line 70: Line 66:
 
sound(writeArray2, 1/delta); %Plays the sound file
 
sound(writeArray2, 1/delta); %Plays the sound file
  
x = 1; %Counter for main loop
+
x = 1; %Counter Value
 
count1 = 1; %Reinitializes the counter
 
count1 = 1; %Reinitializes the counter
 
%-------------------------------------------------------------------------
 
%-------------------------------------------------------------------------

Revision as of 13:37, 4 September 2008

%NICK GENTRY %ECE301 %08/31/08

clc clear

%The frequencies (Hz) shown below were found on the NYU CS website: %http://www.cs.nyu.edu/courses/fall03/V22.0201-003/notes.htm

C = 262; CSharp = 227; D = 294; DSharp = 311; E = 330; F = 349; FSharp = 370; G = 392; GSharp = 415; A = 440; ASharp = 466; B = 494;

%Note Lengths defined below: QTR = 0.25; HLF = 0.50; ETH = 0.125;

%This is the array that makes up the notes played in the song:

noteOrder = [DSharp, F, G, GSharp, ASharp, C, C, CSharp, CSharp, CSharp, GSharp, ASharp, ASharp, C, C, C, ASharp, GSharp, ASharp, C, C, ASharp, F, G, GSharp, G, F ,ASharp, ASharp];

noteLength = [HLF, QTR, QTR, QTR, ETH, QTR, QTR, QTR, ETH, ETH, QTR, ETH, ETH, HLF, QTR, HLF, QTR, QTR, ETH, QTR, QTR, QTR, ETH, ETH, QTR, ETH, ETH, HLF, QTR];

numNotes = 29; %Number of notes to be played

delta = 0.00005; %Sampling Rate x = 1; %Counter Value count1 = 1; %Used as counter for while loop. %-------------------------------------------------------------------------- %PART A %-------------------------------------------------------------------------- while x<= numNotes;

   t1 = 0:delta:noteLength(x);     %Helps scale the length of notes
   p1 = sin(2*pi*noteOrder(x)*t1); %Sound function

   count2 = 1; %While loop counter
   while count2<length(p1);  %Builds the array.
       writeArray1(count1) = p1(count2);
       count1 = count1 + 1;
       count2 = count2 + 1;
   end
       
   x = x + 1; %Increments the loop counter

end sound(writeArray1, 1/delta); %Plays sound file

x = 1; %Counter Value count1 = 1; %Reinitializes the counter %-------------------------------------------------------------------------- %PART B %-------------------------------------------------------------------------- while x<= numNotes;

   t2 = 0:delta:0.5*noteLength(x);  %Helps scale the length of notes
   p2 = sin(2*pi*noteOrder(x)*t2);  %Sound function
   
   count2 = 1;
   while count2<length(p2); %Builds the array
       writeArray2(count1) = p2(count2);
       count1 = count1 + 1;
       count2 = count2 + 1;
   end
   
   x = x + 1;  %Increments the loop counter

end sound(writeArray2, 1/delta); %Plays the sound file

x = 1; %Counter Value count1 = 1; %Reinitializes the counter %------------------------------------------------------------------------- %PART C %------------------------------------------------------------------------- while x<= numNotes;

   t3 = 0:delta:noteLength(x);       %Helps scale the length of notes
   p3 = sin(2*pi*noteOrder(x)*2*t3); %Sound Function
   
   count2 = 1;
   while count2<length(p3); %Builds the array
       writeArray3(count1) = p3(count2);
       count1 = count1 + 1;
       count2 = count2 + 1;
   end
       
   x = x + 1; %Increments the loop counter

end sound(writeArray3, 1/delta);  %Plays the sounds file

%Below are the matlab commands used to write the sound files to 3 separate %files. The files will be written to the same director as this ".m" file. wavwrite(writeArray1,'fightSong_PartA.wav'); wavwrite(writeArray2,'fightSong_PartB.wav'); wavwrite(writeArray3,'fightSong_PartC.wav');

Alumni Liaison

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

Dr. Paul Garrett