function Tonestack = tonestack(Guitartrack,Bass,Mid,Treble)
%TONESTACK Summary of this function goes here
%   Detailed explanation goes here

[Y,fs]=wavread(Guitartrack);

%Übernahme der EQ-Werte( zwischen 0 und 1)
l=Bass;
m=Mid;
t=Treble;

%Variabeln:
C1=0.25E-9;
C2 = 20E-9;
C3 = 20E-9;
R1=250000;
R2=1000000;
R3=25000;
R4=56000;

%Koeffizienten:
b1=t*C1*R1 + m*C3*R3 + l*(C1*R2 + C2*R2) + (C1*R3 + C2*R3);

b2=t*(C1*C2*R1*R4 + C1*C3*R1*R4) - (m^2)*(C1*C3*(R3^2) + C2*C3*(R3^2))+ m*(C1*C3*R1*R3 + C1*C3*(R3^2) + C2*C3*(R3^2))+ l*(C1*C2*R1*R2 + C1*C2*R2*R4 + C1*C3*R2*R4)+ l*m*(C1*C3*R2*R3 + C2*C3*R2*R3)+ (C1*C2*R1*R3 + C1*C2*R3*R4 + C1*C3*R3*R4);

b3 = l*m*(C1*C2*C3*R1*R2*R3 + C1*C2*C3*R2*R3*R4) - (m^2)*(C1*C2*C3*R1*(R3^2) + C1*C2*C3*(R3^2)*R4)+ m*(C1*C2*C3*R1*(R3^2) + C1*C2*C3*(R3^2)*R4)+ t*C1*C2*C3*R1*R3*R4 -t*m*C1*C2*C3*R1*R3*R4 + t*l*C1*C2*C3*R1*R2*R4;

a0 = 1;

a1 = (C1*R1 + C1*R3 + C2*R3 + C2*R4 + C3*R4)+ m*C3*R3 + l*(C1*R2 + C2*R2);

a2 = m*(C1*C3*R1*R3 - C2*C3*R3*R4 + C1*C3*(R3^2) + C2*C3*(R3^2)) + l*m*(C1*C3*R2*R3 + C2*C3*R2*R3)- (m^2)*(C1*C3*(R3^2) + C2*C3*(R3^2)) + l*(C1*C2*R2*R4 + C1*C2*R1*R2 + C1*C3*R2*R4 + C2*C3*R2*R4)+ (C1*C2*R1*R4 + C1*C3*R1*R4 + C1*C2*R3*R4+ C1*C2*R1*R3 + C1*C3*R3*R4 + C2*C3*R3*R4);

a3 = l*m*(C1*C2*C3*R1*R2*R3 + C1*C2*C3*R2*R3*R4)- (m^2)*(C1*C2*C3*R1*(R3^2) + C1*C2*C3*(R3^2)*R4)+ m*(C1*C2*C3*(R3^2)*R4 + C1*C2*C3*R1*(R3^2) - C1*C2*C3*R1*R3*R4) + l*C1*C2*C3*R1*R2*R4 + C1*C2*C3*R1*R3*R4;

%KOeffizienten für H(z):
c=1/fs; %1/Samplefrequenz des Files

B0 = -b1*c - b2*(c^2) - b3*(c^3);
B1 = -b1*c + b2*(c^2) + 3*b3*(c^3);
B2 = b1*c + b2*(c^2) - 3*b3*(c^3);
B3 = b1*c - b2*(c^2) + b3*(c^3);
A0 = -a0 - a1*c - a2*(c^2) - a3*(c^3);
A1 = -3*a0 - a1*c + a2*c^2 + 3*a3*(c^3);
A2 = -3*a0 + a1*c + a2*(c^2) - 3*a3*(c^3);
A3 = -a0 + a1*c - a2*(c^2) + a3*(c^3);



%Übertragungsfunktionen
syms z s
Hs=(b1*s+b2*(s^2)+b3*(s^3))/(a0+a1*s+a2*(s^2)+a3*(s^3));
Hz=(B0+B1*(z^-1)+B2*(z^-2)+B3*(z^-3))/(A0+A1*(z^-1)+A2*(z^-2)+A3*(z^-3));


%NUM und DENUM H(s)
as=[a3 a2 a1 a0];
bs=[b3 b2 b1 0];
%NUM und DENUM H(z)
az=[A3 A2 A1 A0];
bz=[B3 B2 B1 B0];

hold on

%BODE H(s)
SYSs=tf(bs,as);
SYSsz=c2d(SYSs,c);
bode(SYSs)
bode(SYSsz)

%BODE direkt aus H(s) und H(z)
%Falsche Anwendung von bode()
%bode(Hs)
%bode(Hz)

%Faltungsversuche

Ygefaltet1=Y.*SYSs;
Ygefaltet2=Y.*SYSz;
Ygefaltet3=conv(Y,SYSs);
Ygefaltet4=conv(Y,SYSz);
Ygefaltet5=Y.*Hs;
Ygefaltet6=Y.*Hz;

%Kontrolle ob es was gescheites gegeben hat:
length(Y)
length(Ygefaltet1)
length(Ygefaltet2)
length(Ygefaltet3)
length(Ygefaltet4)
length(Ygefaltet5)
length(Ygefaltet6)

end

