matlab——昨日青空
主函数:
function y = sky_yesterday( tone, rythm, tune)
%tone代表音程(音的频率)
%rythm代表拍子
%tend代表升降号,tend=1——升,tend=-1——降
Fs=8192;
%低音
if tune==-1
freqs = [262, 294, 329, 349, 392, 440, 494];
x = linspace(0, 2 * pi * rythm, floor(Fs * rythm));
y = sin(freqs(tone) * x) .* (1 - x / (rythm * 2 * pi));
end
%中音
if tune == 0
freqs = [523, 587, 659, 698, 783, 880,988];
x = linspace(0, 2 * pi * rythm, floor(Fs * rythm));
y = sin(freqs(tone) * x) .* (1 - x / (rythm * 2 * pi));
end
%高音
if tune == 1
freqs=[1046,1175,1318,1397,1568,1760,1967];
x=linspace(0,2 * pi * rythm,Fs * rythm);
y=sin(x * freqs(tone)) .* (1-x/(2* rythm * pi));
end
end
声音函数:
Fs=8192;
y1 = sky_yesterday(5,0.25,-1);
y2 = sky_yesterday(5,0.25,-1);
y3 = sky_yesterday(5,0.5,0);
y4 = sky_yesterday(3,0.5,0);
y5 = sky_yesterday(3,0.5,0);
y6 = sky_yesterday(2,0.25,0);
y7 = sky_yesterday(3,0.75,0);
x8 = linspace(0, 2 * pi * 1.125, floor(Fs * 1.125));
y8 = sin(x8) .* (1 - x8 / (1.125 * 2 * pi));
y = [y1,y2,y3,y4,y5,y6,y7,y8];
y1 = sky_yesterday(5,0.25,-1);
y2 = sky_yesterday(5,0.25,-1);
y3 = sky_yesterday(5,0.5,0);
y4 = sky_yesterday(3,0.5,0);
y5 = sky_yesterday(3,0.5,0);
y6 = sky_yesterday(2,0.25,0);
y7 = sky_yesterday(1,0.25,0);
y8 = sky_yesterday(6,0.5,-1);
y9 = sky_yesterday(2,0.5,0);
y10 = sky_yesterday(2,0.5,0);
y11 = sky_yesterday(6,0.25,-1);
y12 = sky_yesterday(2,0.75,0);
x13 = linspace(0, 2 * pi * 1.75, floor(Fs * 1.75));
y13 = sin(x13) .* (1 - x13 / (1.75 * 2 * pi));
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13];
y1 = sky_yesterday(3,0.5,0);
y2 = sky_yesterday(2,0.25,0);
y3 = sky_yesterday(1,0.5,0);
y4 = sky_yesterday(6,0.5,-1);
y5 = sky_yesterday(2,0.5,0);
y6 = sky_yesterday(2,0.5,0);
y7 = sky_yesterday(3,0.5,0);
y8 = sky_yesterday(6,1,-1);
x9 = linspace(0, 2 * pi * 1, floor(Fs * 1));
y9 = sin(x9) .* (1 - x9 / (1 * 2 * pi));
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9];
y1 = sky_yesterday(2,0.5,0);
y2 = sky_yesterday(1,0.25,0);
y3 = sky_yesterday(2,0.75,0);
y4 = sky_yesterday(1,0.5,0);
y5 = sky_yesterday(2,0.5,0);
y6 = sky_yesterday(3,0.5,0);
y7 = sky_yesterday(5,0.75,0);
y8 = sky_yesterday(3,0.5,0);
y9 = sky_yesterday(3,1,0);
x10 = linspace(0, 2 * pi * 2, floor(Fs * 2));
y10 = sin(x9) .* (1 - x9 / (2 * 2 * pi));
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10];
y1 = sky_yesterday(3,0.5,0);
y2 = sky_yesterday(5,0.5,0);
y3 = sky_yesterday(5,0.5,0);
y4 = sky_yesterday(6,0.5,0);
y5 = sky_yesterday(6,0.5,0);
y6 = sky_yesterday(5,0.25,0);
y7 = sky_yesterday(6,0.25,0);
x8 = linspace(0, 2 * pi * 1, floor(Fs * 1));
y8 = sin(x8) .* (1 - x8 / (1 * 2 * pi));
y = [y,y1,y2,y3,y4,y5,y6,y7,y8];
y1 = sky_yesterday(6,0.5,0);
y2 = sky_yesterday(5,0.25,0);
y3 = sky_yesterday(6,0.75,0);
y4 = sky_yesterday(7,0.5,0);
y5 = sky_yesterday(6,0.5,0);
y6 = sky_yesterday(5,0.5,0);
y7 = sky_yesterday(6,0.75,0);
y8 = sky_yesterday(5,0.5,0);
y9 = sky_yesterday(3,1,0);
x10 = linspace(0, 2 * pi * 2, floor(Fs * 2));
y10 = sin(x9) .* (1 - x9 / (2 * 2 * pi));
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10];
y1 = sky_yesterday(3,0.5,0);
y2 = sky_yesterday(5,0.25,0);
y3 = sky_yesterday(2,0.75,0);
y4 = sky_yesterday(1,0.5,0);
y5 = sky_yesterday(6,0.5,-1);
y6 = sky_yesterday(2,0.25,0);
y7 = sky_yesterday(2,0.75,0);
x8 = linspace(0, 2 * pi * 1, floor(Fs * 1));
y8 = sin(x8) .* (1 - x8 / (1 * 2 * pi));
y = [y,y1,y2,y3,y4,y5,y6,y7,y8];
y1 = sky_yesterday(6,0.5,-1);
y2 = sky_yesterday(2,0.25,0);
y3 = sky_yesterday(2,0.75,0);
y4 = sky_yesterday(3,0.5,0);
y5 = sky_yesterday(4,0.5,0);
y6 = sky_yesterday(3,0.25,0);
y7 = sky_yesterday(4,0.75,0);
y8 = sky_yesterday(6,0.5,0);
y9 = sky_yesterday(6,0.5,0);
y10 = sky_yesterday(5,0.5,0);
y11 = sky_yesterday(5,0.25,0);
y12 = sky_yesterday(3,0.25,0);
y13 = sky_yesterday(3,0.5,0);
y14 = sky_yesterday(6,0.5,0);
y15 = sky_yesterday(5,0.5,0);
y16 = sky_yesterday(5,0.5,0);
y17 = sky_yesterday(3,0.25,0);
y18 = sky_yesterday(5,1.75,0);
x19 = linspace(0, 2 * pi * 0.5, floor(Fs * 0.5));
y19 = sin(x19) .* (1 - x19 / (0.5 * 2 * pi));
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19];
%1 = A
x1 = linspace(0, 2 * pi * 0.5, floor(Fs * 0.5));
y1 = sin(x1) .* (1 - x1 / (0.5 * 2 * pi));
y2 = sky_yesterday(3,0.25,0);
y3 = sky_yesterday(5,0.25,0);
y4 = sky_yesterday(5,0.5,0);
y5 = sky_yesterday(3,0.25,0);
y6 = sky_yesterday(5,0.5,0);
y7 = sky_yesterday(5,0.25,0);
y8 = sky_yesterday(5,0.25,0);
y9 = sky_yesterday(3,0.25,0);
y10 = sky_yesterday(6,0.5,0);
y11 = sky_yesterday(5,0.5,0);
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11];
x1 = linspace(0, 2 * pi * 0.5, floor(Fs * 0.5));
y1 = sin(x1) .* (1 - x1 / (0.5 * 2 * pi));
y2 = sky_yesterday(3,0.25,0);
y3 = sky_yesterday(5,0.25,0);
y4 = sky_yesterday(5,0.5,0);
y5 = sky_yesterday(3,0.25,0);
y6 = sky_yesterday(5,0.5,0);
y7 = sky_yesterday(5,0.25,0);
y8 = sky_yesterday(5,0.25,0);
y9 = sky_yesterday(3,0.25,0);
y10 = sky_yesterday(6,0.5,0);
y11 = sky_yesterday(5,0.5,0);
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11];
x1 = linspace(0, 2 * pi * 0.5, floor(Fs * 0.5));
y1 = sin(x1) .* (1 - x1 / (0.5 * 2 * pi));
y2 = sky_yesterday(3,0.25,0);
y3 = sky_yesterday(5,0.25,0);
y4 = sky_yesterday(5,0.5,0);
y5 = sky_yesterday(3,0.25,0);
y6 = sky_yesterday(5,0.5,0);
y7 = sky_yesterday(5,0.25,0);
y8 = sky_yesterday(5,0.25,0);
y9 = sky_yesterday(3,0.25,0);
y10 = sky_yesterday(6,0.5,0);
y11 = sky_yesterday(5,0.5,0);
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11];
y1 = sky_yesterday(5,0.25,0);
y2 = sky_yesterday(4,0.25,0);
y3 = sky_yesterday(4,0.25,0);
y4 = sky_yesterday(3,0.25,0);
y5 = sky_yesterday(4,0.5,0);
y6 = sky_yesterday(3,0.25,0);
y7 = sky_yesterday(4,0.75,0);
y = [y,y1,y2,y3,y4,y5,y6,y7];
x1 = linspace(0, 2 * pi * 0.5, floor(Fs * 0.5));
y1 = sin(x1) .* (1 - x1 / (0.5 * 2 * pi));
y2 = sky_yesterday(2,0.25,0);
y3 = sky_yesterday(3,0.25,0);
y4 = sky_yesterday(4,0.25,0);
y5 = sky_yesterday(3,0.25,0);
y6 = sky_yesterday(4,0.25,0);
y7 = sky_yesterday(3,0.25,0);
y8 = sky_yesterday(4,0.5,0);
y9 = sky_yesterday(3,0.25,0);
y10 = sky_yesterday(4,0.5,0);
y11 = sky_yesterday(3,0.25,0);
y12 = sky_yesterday(4,0.25,0);
y13 = sky_yesterday(3,0.25,0);
y14 = sky_yesterday(5,0.5,0);
y15 = sky_yesterday(4,0.5,0);
y16 = sky_yesterday(3,0.25,0);
y17 = sky_yesterday(2,0.25,0);
y18 = sky_yesterday(3,0.25,0);
y19 = sky_yesterday(2,0.25,0);
y20 = sky_yesterday(3,0.5,0);
y21 = sky_yesterday(2,0.25,0);
y22 = sky_yesterday(3,0.5,0);
y23 = sky_yesterday(2,0.25,0);
y24 = sky_yesterday(3,0.25,0);
y25 = sky_yesterday(2,0.25,0);
y26 = sky_yesterday(2,0.5,0);
y27 = sky_yesterday(1,0.5,0);
y28 = sky_yesterday(6,0.5,-1);
y29 = sky_yesterday(2,0.5,0);
y30 = sky_yesterday(2,1,0);
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25,y26,y27,y28,y29,y30];
x1 = linspace(0, 2 * pi * 0.75, floor(Fs * 0.75));
y1 = sin(x1) .* (1 - x1 / (0.75 * 2 * pi));
y2 = sky_yesterday(3,0.25,0);
y3 = sky_yesterday(2,0.25,0);
y4 = sky_yesterday(1,0.25,0);
y5 = sky_yesterday(6,0.5,-1);
y6 = sky_yesterday(2,0.5,0);
y7 = sky_yesterday(2,0.5,0);
y8 = sky_yesterday(3,0.25,0);
y9 = sky_yesterday(3,0.75,0);
y10 = sky_yesterday(4,0.25,0);
y11 = sky_yesterday(4,0.75,0);
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11];
y1 = sky_yesterday(3,0.25,0);
y2 = sky_yesterday(5,0.25,0);
y3 = sky_yesterday(5,0.25,0);
y4 = sky_yesterday(3,0.25,0);
y5 = sky_yesterday(5,0.5,0);
y6 = sky_yesterday(3,0.25,0);
y7 = sky_yesterday(5,0.5,0);
y8 = sky_yesterday(5,0.25,0);
y9 = sky_yesterday(5,0.25,0);
y10 = sky_yesterday(3,0.25,0);
y11 = sky_yesterday(6,0.5,0);
y12 = sky_yesterday(5,0.5,0);
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12];
y1 = sky_yesterday(3,0.25,0);
y2 = sky_yesterday(5,0.25,0);
y3 = sky_yesterday(5,0.25,0);
y4 = sky_yesterday(3,0.25,0);
y5 = sky_yesterday(5,0.5,0);
y6 = sky_yesterday(3,0.25,0);
y7 = sky_yesterday(5,0.5,0);
y8 = sky_yesterday(5,0.25,0);
y9 = sky_yesterday(5,0.25,0);
y10 = sky_yesterday(3,0.25,0);
y11 = sky_yesterday(6,0.5,0);
y12 = sky_yesterday(5,0.5,0);
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12];
y1 = sky_yesterday(3,0.25,0);
y2 = sky_yesterday(5,0.25,0);
y3 = sky_yesterday(5,0.25,0);
y4 = sky_yesterday(3,0.25,0);
y5 = sky_yesterday(5,0.5,0);
y6 = sky_yesterday(3,0.25,0);
y7 = sky_yesterday(5,0.5,0);
y8 = sky_yesterday(5,0.25,0);
y9 = sky_yesterday(5,0.25,0);
y10 = sky_yesterday(3,0.25,0);
y11 = sky_yesterday(6,0.5,0);
y12 = sky_yesterday(5,0.5,0);
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12];
y1 = sky_yesterday(5,0.5,0);
y2 = sky_yesterday(4,0.5,0);
y3 = sky_yesterday(4,0.5,0);
y4 = sky_yesterday(3,0.25,0);
y5 = sky_yesterday(4,0.75,0);
y = [y,y1,y2,y3,y4,y5];
x1 = linspace(0, 2 * pi * 0.5, floor(Fs * 0.5));
y1 = sin(x1) .* (1 - x1 / (0.5 * 2 * pi));
y2 = sky_yesterday(2,0.25,0);
y3 = sky_yesterday(3,0.25,0);
y4 = sky_yesterday(4,0.25,0);
y5 = sky_yesterday(3,0.25,0);
y6 = sky_yesterday(4,0.25,0);
y7 = sky_yesterday(3,0.25,0);
y8 = sky_yesterday(4,0.5,0);
y9 = sky_yesterday(3,0.25,0);
y10 = sky_yesterday(4,0.5,0);
y11 = sky_yesterday(3,0.25,0);
y12 = sky_yesterday(4,0.25,0);
y13 = sky_yesterday(3,0.25,0);
y14 = sky_yesterday(5,0.5,0);
y15 = sky_yesterday(4,0.5,0);
y16 = sky_yesterday(3,0.25,0);
y17 = sky_yesterday(2,0.25,0);
y18 = sky_yesterday(3,0.25,0);
y19 = sky_yesterday(2,0.25,0);
y20 = sky_yesterday(3,0.5,0);
y21 = sky_yesterday(5,0.25,0);
y22 = sky_yesterday(5,0.75,0);
y23 = sky_yesterday(7,0.25,0);
y24 = sky_yesterday(7,0.75,0);
y25 = sky_yesterday(6,0.5,0);
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25];
y1 = sky_yesterday(6,0.5,0);
y2 = sky_yesterday(4,0.5,0);
y3 = sky_yesterday(4,0.5,0);
y4 = sky_yesterday(1,0.25,1);
y5 = sky_yesterday(1,0.75,1);
y = [y,y1,y2,y3,y4,y5];
y1 = sky_yesterday(6,0.5,0);
y2 = sky_yesterday(7,0.5,0);
y3 = sky_yesterday(1,0.5,1);
y4 = sky_yesterday(1,0.5,1);
y5 = sky_yesterday(7,0.5,0);
y6 = sky_yesterday(1,0.5,1);
y7 = sky_yesterday(2,0.5,1);
y8 = sky_yesterday(2,0.75,1);
y9 = sky_yesterday(1,0.25,1);
y10 = sky_yesterday(7,0.75,0);
y11 = sky_yesterday(1,0.25,1);
y12 = sky_yesterday(1,1.5,1);
y = [y,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12];
y1 = sky_yesterday(1,0.5,1);
y2 = sky_yesterday(1,0.25,1);
y3 = sky_yesterday(7,0.75,0);
y = [y,y1,y2,y3];
y1 = sky_yesterday(1,0.5,1);
y2 = sky_yesterday(2,0.25,1);
y3 = sky_yesterday(2,0.75,1);
y4 = sky_yesterday(1,0.5,1);
y5 = sky_yesterday(6,1,0);
y = [y,y1,y2,y3,y4,y5];
y1 = sky_yesterday(5,0.5,0);
y2 = sky_yesterday(1,0.5,1);
y3 = sky_yesterday(7,0.25,0);
y4 = sky_yesterday(1,1,1);
y = [y,y1,y2,y3,y4];
sound(y,Fs);