(New page: % Ben Moeller % ECE 301 Homework 1 % Beethoven's 5th %Clear Memory clear all; clc; %set loop counter i = 1; %Designate note frequencies according to function Freq = note x 2^(N/12) whil...) |
|||
Line 1: | Line 1: | ||
+ | ==Matlab Code== | ||
+ | <pre> | ||
+ | |||
% Ben Moeller | % Ben Moeller | ||
% ECE 301 Homework 1 | % ECE 301 Homework 1 |
Latest revision as of 10:18, 5 September 2008
Matlab Code
% Ben Moeller % ECE 301 Homework 1 % Beethoven's 5th %Clear Memory clear all; clc; %set loop counter i = 1; %Designate note frequencies according to function Freq = note x 2^(N/12) while (i < 22) notes(i) = (65.41)*2^((i-1)/12)*2; i= i + 1; end %assign note frequencies accordingly (not all will be used) c = notes(1); cs = notes(2); d = notes(3); ds = notes(4); e = notes(5); f = notes(6); fs = notes(7); g = notes(8); ab = notes(9); a = notes(10); as = notes(11); b = notes(12); c2 = notes(13); cs2 = notes(14); d2 = notes(15); ds2 = notes(16); e2 = notes(17); f2 = notes(18); fs2 = notes(19); g2 = notes(20); %rest has no frequency r = 0; %user enters desired playing tempo tempo = input('Please enter a tempo: '); %assign values accordingly for quarter and whole notes, as they are the %only types of notes in this song. Q = 60/tempo; W = Q*4; %create the numerical "score" score = [r g g g ds r f f f d ... r g g g ds ab ab ab g ds2 ds2 ds2 c2 ... r g g g d ab ab ab g f2 f2 f2 d2 ... r g g f ds ds2 ds2 f2 g2 g g f ds ds2 ds2 f2 ... g2 g g f ds]; %designate how long each note/rest will last time = [Q Q Q Q W Q Q Q Q W ... Q Q Q Q Q Q Q Q Q Q Q Q W ... Q Q Q Q Q Q Q Q Q Q Q Q W ... Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q ... Q Q Q Q W]; %as decided in class... del = 1/20000; %reset loop counter i = 1; %Play at normal tempo while (i <= length(score)) t = 0:del:time(i); x = sin(2*pi*t*score(i)); sound(x, 1/del); i = i + 1; end %reset loop counter i = 1; %play at 2x tempo while (i <= length(score)) t = 0:del:time(i); x = sin(2*pi*t*score(i)); sound(x, 1/del*2); i = i + 1; end %reset loop counter i = 1; %play at 2x frequency while (i <= length(score)) t = 0:del:time(i); x = sin(2*2*pi*t*score(i)); sound(x, 1/del); i = i + 1; end