Fs = 44100; %Sampling Frequency
T = 1/Fs; %Sampling Period
global tt;
%% 最好頻率 44100 tempo = 161
%% Define Tempo 單位為16分音符
tempo = tt;
S = 0.25*(60/tempo);
time = [0:T:S];
[x k] = size(time);
t = @(L) linspace(0,L*S,L*k);
%% Define Notes
fA = 440.00; % Master Tuned to A 440
fGS = fA*2^(-1/12);
fG = fGS*2^(-1/12);
fFS = fG*2^(-1/12);
fF = fFS*2^(-1/12);
fE = fF*2^(-1/12);
fDS = fE*2^(-1/12);
fD = fDS*2^(-1/12);
fCS = fD*2^(-1/12);
fC = fCS*2^(-1/12);
fAS = fA*2^(1/12);
fB = fAS*2^(1/12);
A = @(m,L) sin(2*pi*fA*t(L)*2^m);
GS = @(m,L) sin(2*pi*fGS*t(L)*2^m);
G = @(m,L) sin(2*pi*fG*t(L)*2^m);
FS = @(m,L) sin(2*pi*fFS*t(L)*2^m);
F = @(m,L) sin(2*pi*fF*t(L)*2^m);
E = @(m,L) sin(2*pi*fE*t(L)*2^m);
DS = @(m,L) sin(2*pi*fDS*t(L)*2^m);
D = @(m,L) sin(2*pi*fD*t(L)*2^m);
CS = @(m,L) sin(2*pi*fCS*t(L)*2^m);
C = @(m,L) sin(2*pi*fC*t(L)*2^m);
B = @(m,L) sin(2*pi*fB*t(L)*2^m);
AS = @(m,L) sin(2*pi*fAS*t(L)*2^m);
%% 休止符
er = 0*A(0,1/2);% 1/32
qr = 0*A(0,1); % 1/16
hr = 0*A(0,2); % 1/8
wr = 0*A(0,4); % 1/4
tw = 0*A(0,8); % 1/4
%% 音樂
r1=[CS(0,2) FS(0,2) A(0,2) CS(1,2) CS(0,2) FS(0,2) A(0,2) CS(1,2)];
r2=[CS(0,2) F(0,2) GS(0,2) B(0,2) CS(0,2) F(0,2) GS(0,2) B(0,2)];
r3=[CS(0,2) F(0,2) GS(0,2) B(0,2) hr CS(1,2) CS(1,2) B(0,2)];
r4=[CS(1,4) CS(1,4) hr CS(1,2) CS(1,2) B(0,2)];
r6=[CS(1,4) CS(1,4) CS(1,2) B(0,2) A(0,2) CS(1,10) hr FS(1,2) FS(1,2) FS(1,2)];
r7=[A(1,4) FS(1,4) A(1,2) FS(1,2) hr E(1,2) hr E(1,2) B(0,2) A(0,2) B(0,4) A(0,2) CS(1,18)];
r8=[tw hr CS(1,2) CS(1,2) CS(1,2) CS(1,4) CS(1,4) hr CS(1,2) CS(1,2) B(0,2)];
r9=[CS(1,4) CS(1,4) hr CS(1,2) CS(1,2) B(0,2) CS(1,4) CS(1,4) CS(1,2) B(0,2) A(0,2) CS(1,10) hr FS(1,2) FS(1,2) FS(1,2) A(1,4) FS(1,4) A(1,2) FS(1,2) hr E(1,2)];
r10=[hr CS(1,2) B(0,2) A(0,2) B(0,4) A(0,2) CS(1,18)];
r11=[tw hr CS(1,2) CS(1,2) CS(1,2) FS(1,4) CS(1,4) B(0,2) A(0,2) B(0,2) A(0,2)];
r12=[CS(1,8) hr CS(1,2) CS(1,2) CS(1,2) FS(1,4) CS(1,4) B(0,2) A(0,2) B(0,2) A(0,2)];
r13=[CS(1,8) hr FS(1,2) FS(1,2) FS(1,2) A(1,2) hr FS(1,4) E(1,2) CS(1,2) B(0,2) A(0,2)];
r14=[B(0,4) B(0,2) A(0,2) B(0,2) A(0,2) B(0,2) A(0,2) CS(1,16)];
r15=[FS(1,16)];
r16=[hr FS(1,4) FS(1,4) FS(1,4) FS(1,4) FS(1,4) FS(1,4) FS(1,4) FS(1,4) FS(1,4) FS(1,4) FS(1,4) FS(1,4) FS(1,4) FS(1,2) E(1,2) D(1,2) D(1,4)];
r17=[hr E(1,4) E(1,4) E(1,4) E(1,4) E(1,4) E(1,4) FS(1,2) E(1,2) FS(1,2)];
r18=[GS(1,6) GS(1,4) CS(2,2) B(1,2) CS(2,2) B(1,16)];
r19=[CS(2,8) FS(1,2) FS(1,2) GS(1,2) FS(1,2)];
r20=[A(1,12) wr];
r21=[A(1,2) A(1,2) A(1,4) B(1,2) A(1,2) A(1,2) B(1,14) wr];
r22=[B(1,4) B(1,2) B(1,2) CS(2,4) B(1,2) A(1,6) wr A(1,2) B(1,2) CS(2,2) A(1,2)];
r23=[D(2,4) CS(2,4) B(1,2) A(1,2) CS(2,2) B(1,18)];
r24=[tw FS(1,2) FS(1,2) GS(1,2) FS(1,2)];
r25=[A(1,2) A(1,2) A(1,2) A(1,2) B(1,2) A(1,2) A(1,2) B(1,14) wr];
r26=[D(2,4) CS(2,2) B(1,2) B(1,2) A(1,2) CS(2,4) B(1,12) wr];
r27=[CS(2,4) B(1,2) A(1,2) hr B(1,2) A(1,2) FS(1,18)];
l1=[A(-1,16)+FS(-1,16)];
l2=[GS(-1,16)+F(-1,16)];
l4=[CS(0,16)+A(-1,16)+FS(-1,16)];
l5=[CS(0,16)+GS(-1,16)+F(-1,16)];
l6=[CS(0,16)+A(-1,16)+FS(-1,16) CS(0,16)+GS(-1,16)+F(-1,16)];
l7=[CS(0,16)+A(-1,16)+FS(-1,16) CS(0,16)+GS(-1,16)+F(-1,16) CS(0,16)+A(-1,16)+FS(-1,16)];
l8=[CS(0,16)+GS(-1,16)+F(-1,16) CS(0,16)+A(-1,16)+FS(-1,16)];
l9=[l8 l8];
l15=[CS(0,16)+AS(-1,16)+FS(-1,16)];
l16=[B(-2,6) CS(-1,2) D(-1,4) hr CS(-1,2) B(-2,6) CS(-1,2) D(-1,2) B(-2,2) G(-1,4) B(-2,6) CS(-1,2) D(-1,2) hr hr B(-2,2) E(-1,4) hr FS(-1,2) GS(-1,2) E(-1,2) B(-2,2) E(-1,2)];
l17=[CS(-1,4) hr DS(-1,2) E(-1,4) hr DS(-1,2) CS(-1,4) hr E(-1,2) C(0,2) GS(-1,2) B(-1,2) CS(-1,2)];
l18=[CS(-1,4) hr E(-1,2) F(-1,2) GS(-1,2) B(-1,2) GS(-1,2) CS(-1,16)];
l19=[CS(0,16)];
l20=[FS(-1,2) CS(-1,2) A(-1,2) CS(-2,2) FS(-1,2) CS(-1,2) A(-1,2) CS(-2,2)];
l21=[B(-2,2) FS(-1,2) D(0,2) FS(-1,2) B(-2,2) FS(-1,2) D(0,2) FS(-1,2)];
l22=[E(-1,2) B(-2,2) GS(-1,2) B(-2,2) E(-1,2) B(-2,2) GS(-1,2) B(-2,2)];
l23=[CS(-1,2) GS(-1,2) F(0,2) GS(-1,2) CS(-1,2) GS(-1,2) F(0,2) GS(-1,2)];
l27=[CS(0,16)+A(-1,16)+FS(-1,16)];
Right= [r1 r2 r1 r2 r1 r2 r1 r3 r4 r4 r6 r7 r8 r9 r10 r11 r12 r13 r14 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r20 r25 r22 r26 r27];
Left = [l1 l2 l1 l2 l1 l2 l1 l2 l4 l5 l6 l7 l8 l9 l8 l8 l8 l8 l8 l8 l8 l8 l8 l15 l16 l17 l18 l19 l20 l21 l22 l23 l20 l21 l22 l23 l20 l21 l22 l23 l20 l21 l22 l23 l27];
A = [Right+Left];