matlab音乐代码Word格式.docx
《matlab音乐代码Word格式.docx》由会员分享,可在线阅读,更多相关《matlab音乐代码Word格式.docx(21页珍藏版)》请在冰点文库上搜索。
soundpos=[024579110:
12];
y=zeros(1,sum(rhythm(3,:
))*fs+1);
%initialize
curpos=1;
forcount=1:
length(rhythm)
cursoundname=rhythm(1,count);
cursoundpos=soundpos(cursoundname);
curfreq=220*2.^((cursoundpos+basetune+3)/12+rhythm(2,count));
cursound=generatetune(curfreq,rhythm(3,count),fs);
y(1,curpos:
(curpos+length(cursound)-1))=cursound;
curpos=curpos+length(cursound);
end
functiony=generatetune(freq,time,fs)
y1=generatetune2(freq+3,time,fs);
y2=generatetune2(freq-3,time,fs);
y3=generatetune2(freq,time,fs);
y=(y1+y2)/8+y3*(3/4);
functiony=generatetune2(freq,time,fs)
c=[10.20.40.080.20.050.10.04];
t=0:
1/fs:
(time-1/fs);
y=zeros(1,length(t));
forj=1:
8
y=y+c(j)*sin(t*j*freq*2*pi);
forcount1=1:
length(y)
y(1,count1)=y(1,count1)*amendment(count1/2000,length(y)/2000);
functiony=amendment(p,l)
ifp<
0.2
y=p*5;
elseifp<
0.3
y=1.8-p*4;
else
y=0.6*exp((0.3-p)/5);
%CripplePachebel'
sCanononMatlab
%Havefun
fs=44100;
%samplerate
dt=1/fs;
T16=0.125;
t16=[0:
dt:
T16];
[tempk]=size(t16);
t4=linspace(0,4*T16,4*k);
t8=linspace(0,2*T16,2*k);
[tempi]=size(t4);
[tempj]=size(t8);
%Modificationfunctions
mod4=sin(pi*t4/t4(end));
mod8=sin(pi*t8/t8(end));
mod16=sin(pi*t16/t16(end));
f0=2*146.8;
%referencefrequency
ScaleTable=[2/33/45/615/16...
19/85/44/33/25/39/515/8...
29/45/28/3310/315/44...
1/29/165/8];
%1/4notes
do0f=mod4.*cos(2*pi*ScaleTable(21)*f0*t4);
re0f=mod4.*cos(2*pi*ScaleTable(22)*f0*t4);
mi0f=mod4.*cos(2*pi*ScaleTable(23)*f0*t4);
fa0f=mod4.*cos(2*pi*ScaleTable
(1)*f0*t4);
so0f=mod4.*cos(2*pi*ScaleTable
(2)*f0*t4);
la0f=mod4.*cos(2*pi*ScaleTable(3)*f0*t4);
ti0f=mod4.*cos(2*pi*ScaleTable(4)*f0*t4);
do1f=mod4.*cos(2*pi*ScaleTable(5)*f0*t4);
re1f=mod4.*cos(2*pi*ScaleTable(6)*f0*t4);
mi1f=mod4.*cos(2*pi*ScaleTable(7)*f0*t4);
fa1f=mod4.*cos(2*pi*ScaleTable(8)*f0*t4);
so1f=mod4.*cos(2*pi*ScaleTable(9)*f0*t4);
la1f=mod4.*cos(2*pi*ScaleTable(10)*f0*t4);
tb1f=mod4.*cos(2*pi*ScaleTable(11)*f0*t4);
ti1f=mod4.*cos(2*pi*ScaleTable(12)*f0*t4);
do2f=mod4.*cos(2*pi*ScaleTable(13)*f0*t4);
re2f=mod4.*cos(2*pi*ScaleTable(14)*f0*t4);
mi2f=mod4.*cos(2*pi*ScaleTable(15)*f0*t4);
fa2f=mod4.*cos(2*pi*ScaleTable(16)*f0*t4);
so2f=mod4.*cos(2*pi*ScaleTable(17)*f0*t4);
la2f=mod4.*cos(2*pi*ScaleTable(18)*f0*t4);
ti2f=mod4.*cos(2*pi*ScaleTable(19)*f0*t4);
do3f=mod4.*cos(2*pi*ScaleTable(20)*f0*t4);
blkf=zeros(1,i);
%1/8notes
fa0e=mod8.*cos(2*pi*ScaleTable
(1)*f0*t8);
so0e=mod8.*cos(2*pi*ScaleTable
(2)*f0*t8);
la0e=mod8.*cos(2*pi*ScaleTable(3)*f0*t8);
ti0e=mod8.*cos(2*pi*ScaleTable(4)*f0*t8);
do1e=mod8.*cos(2*pi*ScaleTable(5)*f0*t8);
re1e=mod8.*cos(2*pi*ScaleTable(6)*f0*t8);
mi1e=mod8.*cos(2*pi*ScaleTable(7)*f0*t8);
fa1e=mod8.*cos(2*pi*ScaleTable(8)*f0*t8);
so1e=mod8.*cos(2*pi*ScaleTable(9)*f0*t8);
la1e=mod8.*cos(2*pi*ScaleTable(10)*f0*t8);
tb1e=mod8.*cos(2*pi*ScaleTable(11)*f0*t8);
ti1e=mod8.*cos(2*pi*ScaleTable(12)*f0*t8);
do2e=mod8.*cos(2*pi*ScaleTable(13)*f0*t8);
re2e=mod8.*cos(2*pi*ScaleTable(14)*f0*t8);
mi2e=mod8.*cos(2*pi*ScaleTable(15)*f0*t8);
fa2e=mod8.*cos(2*pi*ScaleTable(16)*f0*t8);
so2e=mod8.*cos(2*pi*ScaleTable(17)*f0*t8);
la2e=mod8.*cos(2*pi*ScaleTable(18)*f0*t8);
ti2e=mod8.*cos(2*pi*ScaleTable(19)*f0*t8);
do3e=mod8.*cos(2*pi*ScaleTable(20)*f0*t8);
blke=zeros(1,j);
%1/16notes
fa0s=mod16.*cos(2*pi*ScaleTable
(1)*f0*t16);
so0s=mod16.*cos(2*pi*ScaleTable
(2)*f0*t16);
la0s=mod16.*cos(2*pi*ScaleTable(3)*f0*t16);
ti0s=mod16.*cos(2*pi*ScaleTable(4)*f0*t16);
do1s=mod16.*cos(2*pi*ScaleTable(5)*f0*t16);
re1s=mod16.*cos(2*pi*ScaleTable(6)*f0*t16);
mi1s=mod16.*cos(2*pi*ScaleTable(7)*f0*t16);
fa1s=mod16.*cos(2*pi*ScaleTable(8)*f0*t16);
so1s=mod16.*cos(2*pi*ScaleTable(9)*f0*t16);
la1s=mod16.*cos(2*pi*ScaleTable(10)*f0*t16);
tb1s=mod16.*cos(2*pi*ScaleTable(11)*f0*t16);
ti1s=mod16.*cos(2*pi*ScaleTable(12)*f0*t16);
do2s=mod16.*cos(2*pi*ScaleTable(13)*f0*t16);
re2s=mod16.*cos(2*pi*ScaleTable(14)*f0*t16);
mi2s=mod16.*cos(2*pi*ScaleTable(15)*f0*t16);
fa2s=mod16.*cos(2*pi*ScaleTable(16)*f0*t16);
so2s=mod16.*cos(2*pi*ScaleTable(17)*f0*t16);
la2s=mod16.*cos(2*pi*ScaleTable(18)*f0*t16);
ti2s=mod16.*cos(2*pi*ScaleTable(19)*f0*t16);
do3s=mod16.*cos(2*pi*ScaleTable(20)*f0*t16);
blks=zeros(1,k);
%BlankBlock
blkblock=[blkfblkfblkfblkfblkfblkfblkfblkf...
blkfblkfblkfblkfblkfblkfblkfblkf];
%BaseMelody
cello=[do1fdo1fso0fso0fla0fla0fmi0fmi0f...
fa0ffa0fdo0fdo0ffa0ffa0fso0fso0f];
%So-FUCKING-LongMelody
violin=[mi2fmi2fre2fre2fdo2fdo2fti1fti1f...
la1fla1fso1fso1fla1fla1fti1fti1f...%
do2fdo2fti1fti1fla1fla1fso1fso1f...
fa1ffa1fmi1fmi1ffa1ffa1fre1fre1f...%
do1fmi1fso1ffa1fmi1fdo1fmi1fre1f...
do1fla0fdo1fso1ffa1fla1fso1ffa1f...%
mi1fdo1fre1fti1fdo2fmi2fso2fso1f...
la1ffa1fso1fmi1fdo1fdo2fblkfblketi1e...%
do2eti1edo2edo1eti0eso1ere1emi1e...
do1edo2eti1ela1eti1emi2eso2ela2e...
fa2emi2ere2efa2emi2ere2edo2eti1e...
la1eso1efa1emi1ere1efa1emi1ere1e...%%
do1ere1emi1efa1eso1ere1eso1efa1e...
mi1ela1eso1efa1eso1efa1emi1ere1e...
do1ela0ela1eti1edo2eti1ela1eso1e...
fa1emi1ere1ela1eso1ela1eso1efa1e...%
mi1fmi2eblkere2fre2fblkfdo1fmi2fmi2f...
la2fla2fso2fso2fla2fla2fti2fti2f...%
do3eblkedo2eblketi1fti1fblkfla1fdo2fdo2f...
do2fdo2fdo2fdo2fdo2ffa2fre2fso2f...%
so2emi2sfa2sso2emi2sfa2sso2sso1sla1sti1s...
do2sre2smi2sfa2smi2edo2sre2s...
mi2emi1sfa1sso1sla1sso1sfa1sso1smi1sfa1sso1s...
fa1ela1sso1sfa1emi1sre1smi1sre1sdo1sre1smi1sfa1sso1sla1s...
fa2ela1sso1sla1eti1sdo2sso1sla1sti1sdo2sre2smi2sfa2sso2s...%
mi2edo2sre2smi2ere2sdo2sre2sti1sdo2sre2smi2sre2sdo2sti1s...
do2ela1sti1sdo2edo1sre1smi1sfa1smi1sre1smi1sdo2sti1sdo2s...
la1edo2sti1sla1eso1sfa1sso1sfa1smi1sfa1sso1sla1sti1sdo2s...
la2edo2sti1sdo2eti1sla1sti1sdo2sre2sdo2sti1sdo1sla1sti1s...%%
do2eblkeblkfti1eblkeblkfla1eblkeblkfdo2eblkeblkf...
do1eblkeblkfdo1eblkeblkfdo1eblkeblkfdo1eblkeblkf...%
blkfso1eblkeblkfso1eblkeblkfmi1eblkeblkfso1eblke...
blkffa1eblkeblkfmi1eblkeblkffa1eblkeblkfre2eblke...%
mi2emi1efa1emi1ere1ere2emi2ere2edo2emi1edo1edo2eti1eso0efa0eso0e...
la0ela1eso1ela1eso1eso0efa0eso0edo1ela1eso1ela1eti1eti0ela0eti0e...%
do1edo2ere2edo2eti1eti0edo1eti0ela0ela1eso1ela1eti1eti0emi1ere1e...
do1edo2ere2efa2emi2emi1eso1emi2edo2efa2emi2efa2ere2eso1efa1eso1e...%
mi1eso1eso1eso1eso1eso1eso1eso1emi1emi1emi1emi1emi1emi1eso1eso1e...
fa1efa1efa1edo2edo2edo2edo2edo2edo2edo2ela1ela1eso1eso1ere2eti1e...%%
so1emi2emi2emi2ere2ere2ere2ere2edo2edo2edo2edo2eso2eso2eso2eso2e...
la2ela2ela2ela2eso2eso2eso2eso2ela2ela2ela2ela2eti2eti1eti1eti1e...%
do2edo1sre1smi1edo1eti0eti1sdo2sre2eti1ela1ela0sti0sdo1ela0eti0eso1sfa1smi1ere1e...
do1emi1sre1sdo1efa1emi1edo1sre1smi1eso1efa1ela1sso1sfa1emi1ere1eso1sfa1smi1ere1e...%
mi1edo2sti1sdo2emi1eso1eso1sla1sti1eso1emi1edo2sre2smi2edo2emi2emi2sre2sdo2eti1e...
la1ela1sso1sla1eti1edo2emi2sre2sdo2emi2efa2edo2sti1sla1ela1eso1ere1eso1eso1e...%
so1fso1fso1fso1fdo1fdo1fdo1fso1f...
fa1ffa1fso1fso1ffa1fdo1fdo1fdo1eti0e...%
do1fdo2fti1fti1fla1fla1fso1fso1f...
do1fdo1ere1emi1fmi1fdo2fdo2fti1fti1f...%%
do2f];
%cello
c1=[cellocellocellocellocello...
cellocellocellocellocello...
cellocellocelloblkf];
%violin1
v1=[blkblockviolinblkblockblkblock];
%violin2
v2=[blkblockblkblockviolinblkblock];
%violin3
v3=[blkblockblkblockblkblockviolin];
%Getdirty
s=c1+v1+v2+v3;
s=s/max(s);
sound(s,fs)
%samplerate
%Modificationfunctions
mod4=(t4.^4).*exp(-30*(t4.^0.5));
mod4=mod4*(1/max(mod4));
mod8=(t8.^4).*exp(-50*(t8.^0.5));
mod8=mod8*(1/max(mod8));
mod16=(t16.^4).*exp(-90*(t16.^0.5));
mod16=mod16*(1/max(mod16));
%referencefrequency
ScaleTable=[2/33/45/615/16...
19/85/44/33/25/39/515/8...
29/45/28/3310/315/44...
1/29/165/8];
%1/