MATLAB自制bad apple音樂【純代碼】

% bad apple樂譜寫成matlab代碼,5#不知道是啥用 so1f 代替了。想聽的話找個matlab全文復制跑一邊就行了。

% Have fun

fs = 44100; % sample rate

dt = 1/fs;

T16 = 0.125;

t16 = [0:dt:T16];

[temp k] = size(t16);

t4 = linspace(0,4*T16,4*k);

t8 = linspace(0,2*T16,2*k);

[temp i] = size(t4);

[temp j] = size(t8);

% Modification functions

mod4 = sin(pi*t4/t4(end));

mod8 = sin(pi*t8/t8(end));

mod16 = sin(pi*t16/t16(end));

f0 = 2*146.8; % reference frequency

ScaleTable = [2/3 3/4 5/6 15/16 ...

1 9/8 5/4 4/3 3/2 5/3 9/5 15/8 ...

2 9/4 5/2 8/3 3 10/3 15/4 4 ...

1/2 9/16 5/8];

% 1/4 notes

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/8 notes

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/16 notes

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);

%%%%%%%%%%%%以上都是基礎設置%%%%%%%%%%%%%%

% Blank Block 空白

blkblock = [blkf blkf blkf blkf blkf blkf blkf blkf...

blkf blkf blkf blkf blkf blkf blkf blkf];

% Base Melody 基調 可以沒有

%cello = [blkf blkf blkf blkf blkf blkf blkf blkf...

%blkf blkf blkf blkf blkf blkf blkf blkf];

%cello = [do1f do1f so0f so0f la0f la0f mi0f mi0f...

%fa0f fa0f do0f do0f fa0f fa0f so0f so0f];

% So-FUCKING-Long Melody 簡譜(正文) 確實長(應該在word里替換一下再輸出嘛)

%violin = [re1e mi1e fa1e so1e la1e...

%re2e do2e la1e re1e...

%la1e so1e fa1e mi1e...

%re1e mi1e fa1e so1e la1e...

%so1e fa1e mi1e re1e fa1e mi1e re1e do1e mi1e...

%re1e mi1e fa1e so1e la1e...

%]; %C調版?

violin = [la1e ti1e do2e re2e mi2e blke la2e so2e mi2e blke la1e blke mi2e re2e do2e ti2e la1e ti1e do2e re2e mi2e blke re2e do2e ti1e la1e ti1e do2e ti1e la1e so1e ti1e ...

la1e ti1e do2e re2e mi2e blke la2e so2e mi2e blke la1e blke mi2e re2e do2e ti2e la1e ti1e do2e re2e mi2e blke re2e do2e ti1e blke do2e blke re2e blke mi2e blke ...

la1e ti1e do2e re2e mi2e blke la2e so2e mi2e blke la1e blke mi2e re2e do2e ti2e la1e ti1e do2e re2e mi2e blke re2e do2e ti1e la1e ti1e do2e ti1e la1e so1e ti1e ...

la1e ti1e do2e re2e mi2e blke la2e so2e mi2e blke la1e blke mi2e re2e do2e ti2e la1e ti1e do2e re2e mi2e blke re2e do2e ti1e blke do2e blke re2e blke mi2e blke ...

so2e la2e mi2e re2e mi2e blke re2e mi2e so2e la2e mi2e re2e mi2e blke re2e mi2e re2e do2e ti1e so1e la1e blke so1e la1e ti1e do2e re2e mi2e la1e blke mi2e so2e ...

so2e la2e mi2e re2e mi2e blke re2e mi2e so2e la2e mi2e re2e mi2e blke re2e mi2e re2e do2e ti1e so1e la1e blke so1e la1e ti1e do2e re2e mi2e la1e blke mi2e so2e ...

so2e la2e mi2e re2e mi2e blke re2e mi2e so2e la2e mi2e re2e mi2e blke re2e mi2e re2e do2e ti1e so1e la1e blke so1e la1e ti1e do2e re2e mi2e la1e blke mi2e so2e ...

so2e la2e mi2e re2e mi2e blke re2e mi2e so2e la2e mi2e re2e mi2e blke la2e ti2e do3e ti2e la2e so2e mi2e mi2e re2e mi2e re2e do2e ti1e so1e la1e blke mi2e so2e ...

so2e la2e mi2e re2e mi2e blke re2e mi2e so2e la2e mi2e re2e mi2e blke re2e mi2e re2e do2e ti1e so1e la1e blke so1e la1e ti1e do2e re2e mi2e la1e blke mi2e so2e ...

so2e la2e mi2e re2e mi2e blke re2e mi2e so2e la2e mi2e re2e mi2e blke re2e mi2e re2e do2e ti1e so1e la1e blke so1e la1e ti1e do2e re2e mi2e la1e blke ...

];

% cello

c1 = [cello cello cello cello cello...

cello cello cello cello cello...

cello cello cello cello cello...

cello cello cello cello cello...

cello cello cello blkf];

% violin1

v1 = [blkblock violin blkblock blkblock];

% violin2

v2 = [blkblock blkblock violin blkblock];

% violin3

v3 = [blkblock blkblock blkblock violin];

% Get dirty

%s = c1;

%s = c1+v1+v2+v3;

%s = s/max(s); %歸一化

%sound(s,fs);

violin = violin/max(violin);%無基調%歸一化

sound(violin,fs);

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容