matlab创作歌曲——《月半小夜曲》

下面是程序(可直接复制粘贴运行)
PS:低版本的matlab需要单独保存两个function函数,然后运行

%%%% 演奏《月半小夜曲》%%%%
clear all;clc;
fs = 48000;  % 采样频率%% 各个音对应的频率
aa = 440 * 2.^(([1 : 36] - 22) / 12);
aa1 = 440 * 2.^(([1 : 12] - 34) / 12);
aa2 = 440 * 2.^(([1 : 12] + 14) / 12);
mi = 41.204;
so = 49.001;
la = 55.001;
xi = 61.737;%% tone1是唱音,tone2是伴奏
tone1 = [0 0 0 aa(17) aa(25) aa(24) aa(25) aa(17) aa(17) aa(25) aa(24) ...aa(25) aa(18) aa(15) aa(24) aa(22) aa(25) aa(15) aa(15) aa(20) aa(18) ...aa(18) aa(17) aa(15) aa(17) aa(17) aa(25) aa(24) aa(25) aa(17) aa(17) aa(22) aa(25) ...aa(29) aa(27) aa(27) aa(24) aa(25) aa(27) aa(29) aa(21) ...aa(24) aa(22) aa(17) aa(17) aa(25) aa(24) aa(25) aa(17) aa(17) aa(20) ...aa(20) aa(22) aa(18) aa(15) aa(24) aa(22) aa(24) aa(15) aa(15) aa(20) aa(18) ...aa(18) aa(20) aa(17) aa(17) aa(25) aa(24) aa(25) aa(17) aa(17) aa(22) aa(25) ...aa(29) aa(27) aa(27) aa(25) aa(25) aa(25) aa(24) aa(27) aa(25) ...aa(25) aa(24) aa(17) aa(17) aa(25) aa(24) aa(25) aa(17) aa(17) aa(17) aa(20) ...aa(20) aa(22) aa(18) aa(15) aa(24) aa(22) aa(24) aa(15) aa(15) aa(20) aa(18) ...aa(18) aa(18) aa(20) aa(17) aa(17) aa(25) aa(24) aa(25) aa(25) aa(17) aa(17) aa(22) aa(25) ...aa(29) aa(27) aa(27) aa(25) aa(25) aa(25) aa(24) aa(24) aa(25) ...aa(24) aa(22) aa(34) aa(36) aa2(1) aa2(1) aa2(3) aa(36) aa(34) ...aa(32) aa(29) aa(32) aa(34) aa(34) aa(36) aa2(1) aa(36) aa2(1) ...aa2(6) aa2(5) aa2(3) aa2(5) 0 aa(24) aa(25) aa(27) ... aa(29) aa(25) aa(29) aa(25) aa(29) aa(25) aa(27) aa(29) ...aa(32) aa(30) aa(30) aa(27) aa(25) aa(24) aa(22) aa(20) aa(20) aa(24) aa(27) ...aa(30) aa(29) aa(27) aa(29) aa(17) aa(22) aa(24) aa(25) aa(24) aa(25) aa(24) aa(22) aa(24) aa(25) ...aa(29) aa(27) aa(27) aa(27) aa(29) aa(27) aa(25) aa(25) aa(27) aa(25) aa(24) aa(24) aa(25) ...aa(24) aa(22) 0];tone2 = [0 0 0 0 aa1(10) aa(5) aa(10) aa(12) aa(13) ...aa1(3) aa1(10) aa(3) aa(5) aa(6) aa1(8) aa(3) aa(8) aa(10) aa(12) ...aa1(1) aa1(8) aa(1) aa1(5) aa1(12) aa(5) la aa1(5) aa1(10) aa(1) aa(5) aa(10) aa(5) ...aa1(3) aa1(10) aa(3) aa(6) aa(10) aa(15) aa(10) aa(6) aa1(5) aa1(12) aa(5) aa(9) aa(12) ...aa1(10) aa(5) aa(10) aa(12) aa(13) aa1(10) aa(5) aa(10) aa(5) aa(13) ...aa1(3) aa1(10) aa(3) aa(6) aa(10) aa(15) aa1(8) aa(3) aa(8) aa(10) aa(12) ...aa1(1) aa1(8) aa(1) aa1(5) aa1(12) aa(5) aa1(10) aa(5) aa(10) aa(12) aa(13) ...aa1(3) aa1(10) aa(3) aa(5) aa(6) aa(1) aa(6) aa(13) aa(6) aa1(12) aa(3) aa(6) ...aa1(5) aa1(12) aa(3) aa(5) aa(9) la aa1(5) aa1(10) aa(1) aa(5) aa(10) aa(5) ...aa1(3) aa1(10) aa(3) aa(6) aa(10) so aa1(3) aa1(8) aa(3) aa(8) ...aa1(1) aa1(8) aa(1) aa(5) aa1(5) aa1(12) aa(5) la aa1(5) aa1(10) aa(1) aa(5) aa(10) ...aa1(3) aa1(10) aa(3) aa(5) aa(6) aa(3) aa1(6) aa(1) aa(10) aa(1) aa1(5) aa1(12) aa(9) ...la aa1(5) aa1(10) aa1(12) aa(1) aa1(6) aa(1) aa(6) aa(10) aa1(8) aa(3) aa(12) ...aa1(5) aa1(12) aa(8) la aa(5) aa(13) aa1(6) aa(1) aa(6) aa(10) xi aa1(12) aa(1) aa(6) ...aa1(5) aa1(12) aa(3) aa(5) aa(10) aa(5) aa(3) aa1(12) aa(9) aa(5) aa1(12) aa1(9) aa1(5) xi mi ...so aa(1) aa(1) aa(1) ...aa1(3) aa(1) aa(1) aa(1) so aa(8) aa(8) aa(8) ...aa1(1) aa(1) aa1(5) aa(9) so aa(1) aa(1) aa(1) ...aa1(3) aa(3) aa(3) aa(3) aa1(6) aa(1) aa(6) aa1(5) aa1(12) aa(5) ...la aa1(5) aa1(12) aa(1) aa(5) aa1(12) aa(1) aa(5) aa1(5) aa1(12) aa(5) aa1(12) aa1(12)];%% 节奏
rym1 = [1 1 1/2*ones(1, 4) 3/2 1 1/2 1/2 1/2 3/2 1 1/2 1/2 1/2 3/2 1 1/2 1/2 1/2 ...3/2 1/4 1/4 1/2*ones(1, 4) 3/2 1 1/2 1/2 1/2 3/2 1/2 2 3/2 1/4 1/4 1 1 ...1/2 2 1/4 1/4 1/2 1/2 3/2 3/2 1/2 1/2 3/2 1/2*ones(1, 5) 3/2 1 1/2 1/2 1/2 ...3/2 1/2*ones(1, 5) 3/2 1 1/2*ones(1, 3) 3/2 1/2 3/2 1/2 3/2 1/2 1 1/2 1/2 ...1/2 2 1/4 1/4 1/2 1/2 3/2 1/2 1 1/2 1/2 3/2 1/2 1/2*ones(1, 4) 3/2 1/2 1 1/2 1/2 ...1 1/2*ones(1, 6) 3/2 1/2 1 1/3 1/3 1/3 3/2 1/2 3/2 1/2 3/2 1/2 1 1/2 1/2 ...1/2 2 1/2 1/2 1/2 2 1 1/2 1/2 1 1/2 1/4 5/4 1/2 1/2 2 1 1 ...7/2 1/4 1/4 2 1/2*ones(1, 7) 1/4 3/4 1/2 1/2 1/2 ...3/2 1/2 2 1/2 1/2 1/2 1/4 3/4 1/2 1/2 1/2 1 1/2 1/4 3/4 1/2*ones(1, 6) 1 1/2 1/2 1/2 ...3/2 1/2 5/4 1/4 1/4 1/4 5/4 1/4 1/4 1/4 1 1/2 1/2 1/2 7/2 4]*fs;rym2 = [1 1 1 1 1/2*ones(1, 4) 2 1/2*ones(1, 4) 2 1/2*ones(1, 4) 2 ...1/2 1/2 1 1/2 1/2 1 1/2*ones(1, 6) 1 1/2*ones(1, 12) 2 ...1/2*ones(1, 4) 2 1/2*ones(1, 4) 2 1/2*ones(1, 5) 3/2 1/2*ones(1, 4) 2 ...1/2 1/2 1 1/2 1/2 1 1/2*ones(1, 4) 2 1/2*ones(1, 4) 2 1/2*ones(1, 6) 1 ...1/2*ones(1, 4) 2 1/2*ones(1, 6) 1 1/2*ones(1, 4) 2 1/2*ones(1, 4) 2 ...1/2*ones(1, 6) 1 1/2*ones(1, 4) 1 1 1/2*ones(1, 4) 1 1 1/2*ones(1, 6) 1 ...1/2*ones(1, 4) 2 1/2*ones(1, 6) 1 1/2 1/2 1 1/2 1/2 1 1/2*ones(1, 8) ...1/2*ones(1, 6) 1 1/2 1/4*ones(1, 6) 2 1 1 1 1 ...ones(1, 16) ...ones(1, 4) 1/2 1/2 1 1/2 1/2 1 1/2*ones(1, 12) 2].*fs;%% 加包络
x1 = [];
x2 = [];for n = 1:length(tone1)M = length(x1);t = [];t = 1 : rym1(n);t = t ./ fs;N = length(t);a1 = (sin(2*pi*tone1(n)*t/fs) + sin(4*pi*tone1(n)*t) + 0.9217*sin(6*pi*tone1(n)*t) + ...0.2318*sin(8*pi*tone1(n)*t) + 0.0524*sin(10*pi*tone1(n)*t) + 0.1355*sin(12*pi*tone1(n)*t) + ...0.1797*sin(14*pi*tone1(n)*t) + 0.09109*sin(16*pi*tone1(n)*t) + 0.0055*sin(18*pi*tone1(n)*t) + ...0.1127*sin(20*pi*tone1(n)*t)).*y1(N)*0.92;x1(M+1 : M+N) = a1;
endfor n = 1:length(tone2)M = length(x2);t = 1 : rym2(n);t = t ./ fs;N = length(t);a2 = (0.6882*sin(2*pi*tone2(n)*t) + sin(4*pi*tone2(n)*t) + 0.9217*sin(6*pi*tone2(n)*t) + ...0.2318*sin(8*pi*tone2(n)*t) + 0.0524*sin(10*pi*tone2(n)*t) + 0.1355*sin(12*pi*tone2(n)*t) + ...0.1797*sin(14*pi*tone2(n)*t) + 0.09109*sin(16*pi*tone2(n)*t) + 0.0055*sin(18*pi*tone2(n)*t) + ...0.1127*sin(20*pi*tone2(n)*t)).*y2(N)*0.92;    x2(M+1 : M+N) = a2;
end%% 唱音和伴奏结合
x1_left = [x1 zeros(1,1000)];
x2_left = [x2 zeros(1,1000)];
x1_right = [zeros(1,1000) x1];
x2_right = [zeros(1,1000) x2];x_left = x1_left + 3*x2_left;
x_right = x1_right + 3*x2_right;
x_left = x_left / max(x_left);
x_right = x_right / max(x_right);
% melody = [x_left;x_right];
% sound(melody, fs); %% 增加混音的效果
violin = x_left;
% Blank Block
blkblock = zeros(1, fs/100);
% violin1
v1 = [violin blkblock blkblock];
% violin2
v2 = [blkblock 0.5*violin blkblock];
% violin3
v3 = [blkblock blkblock 0.25*violin];
% Get dirty
s = v1 + v2 + v3;
s_left = [s zeros(1,1000)];
s_right = [zeros(1,1000) s];
s_left = s_left / max(s_left);
s_right = s_right / max(s_right);
song = [s_left;s_right];  %  左右声道合并
sound(song, fs); % filename = '月半小夜曲.wav';
% audiowrite(filename, s_left, fs);%% 包络函数
function shap_y1 = y1(ylen)
yt = (1 : ylen)/0.96;
shap_y1 = (5*((yt./48000).^(1/2)))./exp(yt./48000*2);
shap_y1 = shap_y1/max(shap_y1);
return
endfunction shap_y2 = y2(ylen)
yt = (1 : ylen)/0.96;
shap_y2 = (5*((yt./48000).^(1/15)))./exp(yt./48000*2);
shap_y2 = shap_y2/max(shap_y2);
return
end

matlab创作歌曲——《月半小夜曲》相关推荐

  1. 用MATLAB创作歌曲

    前两天在网上看到有人用MATLAB演奏出李建的传奇,文章链接如下: 整理:用matlab创作歌曲(一)_一苇以航-CSDN博客_matlab音乐代码 在大佬的基础上对代码进行了一点点改进,并借此学习了 ...

  2. 整理:用matlab创作歌曲

    (一部分) 前两天在网上看到了有人用matlab演奏出最炫民族风,用了这么多年matlab还是第一次知道有这种玩法,于是把他的代码研究了一下,自己制作了一首歌曲,在这里分享一下. 首先介绍matlab ...

  3. 月半小夜曲---陈乐基

    月半小夜曲 演唱者 陈乐基 仍然倚在失眠夜 望天边星宿 仍然听见小提琴 如泣如诉再挑逗 为何只剩一弯月 留在我的天空 这晚夜没有吻别 仍在说永久想不到是借口 从未意会要分手 但我的心每分每刻 仍然被她 ...

  4. 整理:用matlab创作歌曲(一)

    前两天在网上看到了有人用matlab演奏出最炫民族风,用了这么多年matlab还是第一次知道有这种玩法,于是把他的代码研究了一下,自己制作了一首歌曲,在这里分享一下. 首先介绍matlab函数的玩法: ...

  5. 整理:用matlab创作歌曲(三)

    %% <最炫民族风> % Most shining national wind %最炫民族风 on Matlab % http://blog.csdn.net/bat67 % fs = 4 ...

  6. 整理:用matlab创作歌曲(二)

    %%Matlab版<卡农> % Cripple Pachebel's Canon on Matlab % Have fun http://blog.csdn.net/bat67 fs = ...

  7. OSChina 周六乱弹 ——月半君给各位朋友一个忠告

    2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2017)请戳(这里) [今日歌曲] @程文侠 :分享Emily Loizeau的单曲<Je Ne Sa ...

  8. 【从零开始学习深度学习】34. Pytorch-RNN项目实战:RNN创作歌词案例--使用周杰伦专辑歌词训练模型并创作歌曲【含数据集与源码】

    目录 RNN项目实战使用周杰伦专辑歌词训练模型并创作歌曲 1.语言模型数据集预处理 1.1 读取数据集 1.2 建立字符索引 1.3 时序数据的2种采样方式 1.3.1 随机采样 1.3.2 相邻采样 ...

  9. 月半弯,亦真亦幻亦婉约

    没有完美的时空,没有完美的风景,如夜空的月亮,有圆缺,明艳和晦涩.不奢求梦幻一样的美丽怡人,只愿在离合之间发现它的美,包容它的伤,寻觅着它那份朴素的温存,随指尖的文字流于纸笺,温润于心间.月,半弯,一 ...

最新文章

  1. AI 监视打工人,这个国家明确说:保护我方“摸鱼权”!
  2. java io工作机制_深入分析Java I/O 工作机制
  3. python 09day --初识python
  4. Android RecyclerView使用GridLayoutManager间距设置
  5. 第三次作业(词频统计及其效能分析)
  6. PAT_B_1073_C++(20分)
  7. 工业以太网交换机的三种转发方式
  8. 什么人适合学习Java编程?编程好学吗?
  9. 计算机技术与软件专业技术资格(水平)考试 全国各省市成绩查询
  10. mysql实际是用命令还是图形化_那些你不常用却非常有用的MySql语句和命令
  11. readelf 解读
  12. java菜鸟突破面试系列-终章
  13. 饮用水公司配送管理系统可行性报告
  14. 市场下行手机市场成血海,为何荣耀逆流而上?
  15. 计算机网络基础之数据链路层的功能与服务
  16. 【音视频】国标双向对讲方案
  17. 新零售赋能最古老产业 看阿里巴巴的农产品上行布局
  18. 继电器为何要并联二极管使用
  19. 雷赛服务器信号er020,雷赛_数字步进电机与驱动器_DM2C-RS556型号
  20. MPLS Virtual Private Network

热门文章

  1. [转载]《博客园精华集》设计模式 (164-284)
  2. 如何掌握UI设计精髓 Logo设计有哪些基本要素
  3. 玩外服吃鸡手游显示服务器繁忙,玩家纷纷涌入刺激战场国际服导致服务器繁忙,出现BUG锁服!...
  4. 2021年1~12月语音合成和语音识别论文月报
  5. 世界在变化刷脸支付一直奋进
  6. G-sensor的两种使用方式
  7. wdcp服务器权限修改,Linux下wdcp控制面板安装tipask3.0教程
  8. 微信文章如何增加阅读率
  9. LinkedIn高级分析师王益:大数据时代的理想主义和现实主义
  10. C++最小/最大(min;max;minmax;min_element;max_element;minmax_element)