matlab演奏圣诞结【matlab调音_4】

基于该系列前面的理论,这里编写一首陈奕迅的《圣诞结》。

目录

演示视频:

主函数:

子函数: 

演示视频:

 MATLAB演奏:《圣诞结》_哔哩哔哩_bilibili

主函数(圣诞结part1):

%《圣诞节》
%包络函数:自定义包络函数
%单个音长:0.7
a=0.36;%全音
b=0.5*a;%半音
Fs=8192;

%part 1 
%我住的城市从不下雪
y1=note_C4(1,b);
y2=note_C4(3,b);
y3=note_C4(1,b);
y4=note_C4(5,a);
y5=note_C4(8,a);
y6=note_C4(8,b);
y7=note_C4(6,b);
y8=note_C4(5,a);
y9=note_C4(1,1.5*a);
y=[y1,y2,y3,y4,y5,y6,y7,y8,y9];
%记忆却堆满冷的感觉
y0=note_C0(1,1.5*a);
y1=note_C4(1,b);
y2=note_C4(3,b);
y3=note_C4(1,b);
y4=note_C4(5,a);
y5=note_C4(8,a);
y6=note_C4(8,b);
y7=note_C4(5,b);
y8=note_C4(12,a);
y9=note_C4(8,1.5*a);
y=[y,y0,y1,y2,y3,y4,y5,y6,y7,y8,y9];
%思念的旺季霓虹扫过喧哗的街
y0=note_C0(1,1.5*a);
y1=note_C4(5,b);
y2=note_C4(7,b);
y3=note_C4(10,b);
y4=note_C5(1,a);
y5=note_C4(10,a);
y6=note_C4(8,b);
y7=note_C4(6,b);
y8=note_C4(8,a);
y9=note_C4(5,a);
y10=note_C4(3,b);
y11=note_C4(5,b);
y12=note_C4(3,a);
y13=note_C4(1,1.5*a);
y=[y,y0,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13];
%把快乐赶得好远
y0=note_C0(1,a);
y1=note_C4(6,b);
y2=note_C4(5,b);
y3=note_C4(5,b);
y4=note_C4(6,a);
y5=note_C4(8,a);
y6=note_C4(5,b);
y7=note_C4(3,2*a);
y=[y,y0,y1,y2,y3,y4,y5,y6,y7];
%落单的恋人最怕过节
y0=note_C0(1,1.5*a);
y1=note_C4(1,b);
y2=note_C4(3,b);
y3=note_C4(1,b);
y4=note_C4(5,a);
y5=note_C4(8,a);
y6=note_C4(8,b);
y7=note_C4(6,b);
y8=note_C4(5,a);
y9=note_C4(1,1.5*a);
y=[y,y0,y1,y2,y3,y4,y5,y6,y7,y8,y9];
%只能独自庆祝尽量喝醉
y0=note_C0(1,1.5*a);
y10=note_C4(1,b);
y1=note_C4(1,b);
y2=note_C4(3,b);
y3=note_C4(1,b);
y4=note_C4(5,a);
y5=note_C4(8,a);
y6=note_C4(8,b);
y7=note_C4(5,b);
y8=note_C4(12,a);
y9=note_C4(8,1.5*a);
y=[y,y0,y10,y1,y2,y3,y4,y5,y6,y7,y8,y9];
%我爱过的人没有一个留在身边
y0=note_C0(1,1.5*a);
y1=note_C4(6,b);
y2=note_C4(8,b);
y3=note_C4(8,b);
y4=note_C5(1,a);
y5=note_C4(9,a);
y6=note_C4(8,b);
y7=note_C4(6,b);
y8=note_C4(8,a);
y9=note_C4(5,a);
y10=note_C4(3,b);
y11=note_C4(5,b);
y12=note_C4(3,a);
y13=note_C4(1,a);
y=[y,y0,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13];
%寂寞它陪我过夜
y0=note_C0(1,a);
y1=note_C4(8,b);
y2=note_C4(8,b);
y3=note_C4(5,b);
y4=note_C4(8,a);
y5=note_C4(5,a);
y6=note_C4(6,a);
y7=note_C4(8,3*a);
y=[y,y0,y1,y2,y3,y4,y5,y6,y7];
%merry merry christmas
y0=note_C0(1,a);
y1=note_C4(5,a);
y2=note_C4(8,a);
y3=note_C4(5,b);
y4=note_C4(8,b);
y5=note_C5(3,1.5*a);
y6=note_C5(5,1.5*a);
y=[y,y0,y1,y2,y3,y4,y5,y6];
%lonely lonely christmas
y1=note_C4(5,a);
y2=note_C4(8,a);
y3=note_C4(5,b);
y4=note_C4(8,b);
y5=note_C5(3,1.5*a);
y6=note_C5(5,b);
y=[y,y1,y2,y3,y4,y5,y6];
%想祝福不知该给谁
y1=note_C5(3,b);
y2=note_C5(5,b);
y3=note_C5(6,a);
y4=note_C5(6,b);
y5=note_C5(5,a);
y6=note_C5(5,b);
y7=note_C5(1,a);
y8=note_C4(10,a);
y=[y,y1,y2,y3,y4,y5,y6,y7,y8];
%爱被我们打了死结
y1=note_C4(10,b);
y2=note_C5(1,b);
y3=note_C5(8,a);
y4=note_C5(8,b);
y5=note_C5(6,a);
y6=note_C5(6,b);
y7=note_C5(1,a);
y8=note_C5(3,a);
y=[y,y1,y2,y3,y4,y5,y6,y7,y8];
%lonely lonely christmas
y0=note_C0(1,a);
y1=note_C4(5,a);
y2=note_C4(8,a);
y3=note_C4(5,b);
y4=note_C4(8,b);
y5=note_C5(3,1.5*a);
y6=note_C5(5,1.5*a);
y=[y,y0,y1,y2,y3,y4,y5,y6];
%merry merry christmas
y1=note_C4(5,a);
y2=note_C4(8,a);
y3=note_C4(5,b);
y4=note_C4(8,b);
y5=note_C5(3,1.5*a);
y6=note_C5(5,b);
y=[y,y1,y2,y3,y4,y5,y6];
%写了卡片能寄给谁
y1=note_C5(3,b);
y2=note_C5(5,b);
y3=note_C5(6,a);
y4=note_C5(6,b);
y5=note_C5(5,a);
y6=note_C5(5,b);
y7=note_C5(1,a);
y8=note_C4(10,a);
y=[y,y1,y2,y3,y4,y5,y6,y7,y8];
%心碎的像街上的纸屑
y1=note_C4(10,b);
y2=note_C5(1,b);
y3=note_C5(8,a);
y4=note_C5(8,b);
y5=note_C5(6,a);
y6=note_C5(6,b);
y7=note_C5(1,a);
y8=note_C5(3,a);
y9=note_C5(1,3*a);
y=[y,y1,y2,y3,y4,y5,y6,y7,y8,y9];

%播放声音
sound(y,Fs);

子函数: 

%音调函数C4(音高,节奏)
%**************************
%改进处理办法5(自定义函数)
%定义采样频率
Fs=8192;
i=1;
%产生主音
for x=0:(1/Fs):rhythm %这里采样间隔取为1/Fs,并没有将0:rhythm中所有数据采完
%定义基础音阶对应的频率(C,C#,D,D#,E,F,F#,G,G#,A,A#,B)
freqs=[260,278,293,309,330,347,371,391,417,440,463,495];
%声音
y(:,i)=sin(2*pi*freqs(tone)*x);
i=i+1;
end
i=1;
%包络函数处理
for x=0:(2*pi/rhythm)/Fs:2*pi%为保证矩阵维度与主音一致,这里调整采样频率
y(:,i)=y(:,i).*(x/exp(x/(2*pi)*7));
i=i+1;
end
y=y/max(y);
%**************************
end

%音调函数C5(音高,节奏)
function y= note_C4( tone,rhythm )
%**************************
%改进处理办法(自定义函数)
%定义采样频率
Fs=8192;
i=1;
%产生主音
for x=0:(1/Fs):rhythm %这里采样间隔取为1/Fs,并没有将0:rhythm中所有数据采完
%定义基础音阶对应的频率(C,C#,D,D#,E,F,F#,G,G#,A,A#,B)
freqs=[521,556,586,618,660,695,742,782,835,880,927,990];
%声音
y(:,i)=sin(2*pi*freqs(tone)*x);
i=i+1;
end
i=1;
%包络函数处理
for x=0:(2*pi/rhythm)/Fs:2*pi%为保证矩阵维度与主音一致,这里调整采样频率
y(:,i)=y(:,i).*(x/exp(x/(2*pi)*7));
i=i+1;
end
y=y/max(y);
%**************************
end

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值