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

    原文作者:卡拉马佐夫
    原文地址: https://www.jianshu.com/p/dc6684e838ea
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞