【趣味】用MATLAB演奏《追光者》

看见有很多人用MATLAB演奏歌曲,也忍不住试了一下,以下附上源码

%%%%演奏《追光者》%%%%
clear all;clc;
fs = 44100;
t = 1/fs : 1/fs :8;
N = length(t);%% 各个音的频率
aa = [130.8  138.6  146.8  155.6  164.8  174.6  185.0  196.0    207.7  220.0  233.1  246.9...261.6  277.2  293.7  311.1  329.6  349.2  370.0  392.0    415.3  440.0  466.2  493.9...523.3  554.4  587.3  622.3  659.3  698.5  740.0  784.0    830.6  880.0  932.3  987.8];%各个音的频率
aa1 = [65.4  69.3  73.4  77.8   82.4  87.3  92.5  98.0  103.8  110.0  116.5  123.5];
aa2 = [1047  1109   1175  1245  1319  1397  1480  1568  1661  1760  1865  1976];%% tone1是唱音,tone2是伴奏
tone1 = [0 0 0 0 aa(22) aa(24) aa(25) aa(24) aa(17) aa(17) aa(20) aa(20) aa(13)... aa(15) aa(13) aa(15) aa(15) aa(20) aa(17) aa(22) aa(24) aa(25) aa(24) aa(17) aa(17) aa(20) aa(20) aa(25)...aa(32) ...aa(25) aa(27) aa(29) aa(25) aa(24) aa(22) aa(24) aa(25) aa(25) aa(29)...aa(27) aa(24) aa(22) aa(20) aa(22) aa(24) aa(24) aa(27) aa(25) 0 aa(25) aa(24) aa(25) 0 aa(22) aa(22) aa(24)...aa(25) aa(24) aa(22) aa(20) 0 aa(25) aa(27) aa(29) aa(25) aa(24) aa(22) aa(24) aa(25) aa(25) aa(29)...aa(27) aa(24) aa(22) aa(21) aa(30) aa(29) aa(24) aa(25) 0 0 0 aa(22) aa(25)... aa(30) aa(29) aa(25) aa(30) aa(29) aa(25) aa(25) aa(25) 0 aa(22) aa(25) aa(27) aa(27) aa(27) aa(27) aa(29) aa(30) aa(29) aa(29) aa(25)...aa(27)...0 0 0 aa(32) aa(34) aa(36) ...aa2(3) aa2(1) aa(29) aa(29) aa(32) aa(32) aa(34) aa(29) aa(27) aa(25) aa(27) aa(25) aa(27) aa(27) aa(32) aa(29) aa(29) aa(32) aa(34) aa(36)...aa2(3) aa2(1) aa(29) aa(29) aa(32) aa(32) aa(32) aa(34) aa(27) aa(25) aa(27) aa(25) aa(24) aa(24) aa(25) aa(25) aa(25) aa(32) aa(34) aa(36)...aa2(3) aa2(1) aa(29) aa(29) aa(32) aa(32) aa(32) aa(34) aa(27) aa(25) aa(27) aa(25) aa(27) aa(27) aa(32) aa(29) aa(29) aa(32) aa(34) aa(36)...aa2(3) aa2(1) aa(29) aa(29) aa(32) aa(32) aa(32) aa(27) aa(32) aa(32) aa(30) aa(29) aa(27) aa(27) aa(25)...aa2(1) aa(36) aa(29) aa(29) aa(32) aa(32) aa(27) aa(25) aa(27) aa(27) aa(32) aa(29) aa(22) aa(24)...aa(25) aa(24) aa(17) aa(17) aa(20) aa(20) aa(25) aa(32) aa(32)]; tone2 = [0 0 0 0 aa(10) aa(13) aa(6) aa(10) aa(8) aa(12) aa(13) aa(17) aa(10) aa(13) aa(6) aa(10)...aa(8) ...0 aa(13) aa(6) aa(13) aa(8) aa(15) aa(5) aa(12) aa(10) aa(15) aa(8) aa(13)...aa(3) 0 aa(8) aa(8) aa(13) aa(6) aa(13) aa(8) aa(15) aa(5) aa(12) aa(10) aa(15) aa(8) aa(13)...aa(3) aa(8) aa(8) aa(8) aa(8)...aa1(10) aa(5) aa(10) aa(5) aa1(6) aa(1) aa(6) aa(1) aa1(8) aa(3) aa(8) aa(3) aa(1) aa1(12)...aa1(10) aa(5) aa(10) aa(5) aa1(6) aa(1) aa(6) aa(1) aa1(8) aa(3) aa(8) aa(3) aa(1) aa1(12)...aa1(10) aa(5) aa(10) aa(5) aa1(6) aa(1) aa(6) aa(1) aa1(8) aa(3) aa(8) aa(3) aa(1) aa1(12)...aa1(10) aa(5) aa(10) aa(5) aa1(6) aa(1) aa(6) aa(1) aa1(8) aa(3) aa(8) aa(12) aa(3)...aa1(10) aa(5) aa(10) aa(5) aa1(6) aa(1) aa(6) aa(1) aa1(8) aa(3) aa(8) aa(3) aa(1) aa(8) aa(13) aa(8)...aa1(10) aa(5) aa(10) aa(5) aa1(6) aa(1) aa(6) aa1(8) aa1(8)];for n = 1:length(tone1)a1(n, :) = 0.1395*sin(2*pi*tone1(n)*t)+sin(4*pi*tone1(n)*t)+0.1628*sin(6*pi*tone1(n)*t)+ ...0.0524*sin(8*pi*tone1(n)*t)+0.03145*sin(10*pi*tone1(n)*t)+0.03791*sin(12*pi*tone1(n)*t)+ ...0.07769*sin(14*pi*tone1(n)*t)+0.03128*sin(16*pi*tone1(n)*t)+0.01328*sin(18*pi*tone1(n)*t)+ ...0.004851*sin(20*pi*tone1(n)*t)+0.005918*sin(22*pi*tone1(n)*t);endfor n = 1:length(tone2)a2(n, :) = 0.1395*sin(2*pi*tone2(n)*t)+sin(4*pi*tone2(n)*t)+0.1628*sin(6*pi*tone2(n)*t)+ ...0.0524*sin(8*pi*tone2(n)*t)+0.03145*sin(10*pi*tone2(n)*t)+0.03791*sin(12*pi*tone2(n)*t)+ ...0.07769*sin(14*pi*tone2(n)*t)+0.03128*sin(16*pi*tone2(n)*t)+0.01328*sin(18*pi*tone2(n)*t)+ ...0.004851*sin(20*pi*tone2(n)*t)+0.005918*sin(22*pi*tone2(n)*t);
end%% 节奏
rym1 = [1 1 1 1/2 1/4 1/4 1/2 1/4 1/4 1/2 1/2 1 1 ...1/2 1/4 1/4 1/2 1/2 1 1/2 1/2 1/2 1/4 1/4 1/2 1/2 1 1 ...3 1/2 1/2 1 1/2 1/2 1/2 1/4 1/4 1/2 1/2 ...1 1/2 1/2 1/2 1/4 1/4 1/2 1/2 1 1/2 1/4 1/4 1 1/4 1/4 1/4 1/4 ...1/2 1/2 1/2 1/2 1 1/2 1/2 1 1/2 1/2 1/2 1/4 1/4 1/2 1/2 ...1 1/2 1/2 1/2 1/2 1/2 1/2 1 1 1 1/2 1/4 1/4 ...1/2 1/4 1/4 1/2 1/4 1/4 1/2 1/2 1/2 1/4 1/4 1/2 1/4 1/4 1/2 1/2 3/4 1/4 1/2 1/2 ...4 ...1 1 1/2 1/2 1/2 1/2 ...1/2 1/4 1/4 1/2 1/2 1/2 1/2 1/4 1/4 1/2 1/2 1/4 1/4 1/4 1/2 1/4 1/2 1/2 1/2 1/2 ...1/2 1/4 1/4 1/4 1/2 1/4 1/2 1/2 1/2 1/2 1/2 1/4 1/4 1/4 1/2 1/4 1/2 1/2 1/2 1/2 ...1/2 1/4 1/4 1/4 1/2 1/4 1/2 1/2 1/2 1/2 1/2 1/4 1/4 1/4 1/2 1/4 1/2 1/2 1/2 1/2 ...1/2 1/4 1/4 1/4 1/2 1/4 1 1/2 1/2 2 1/4 1/2 1/4 1/2 1/2 ...1/2 1/4 1/4 1/2 1/2 2 1/2 1/4 1/4 1/2 1/2 1 1/2 1/2 ...1/2 1/4 1/4 1/2 1/2 1 1/2 1/2 3].*fs;rym2 = [ones(1,16) 3 1 2 ones(1,10) 1/2 1 1/2 2 2 ones(1,10) 2 2 4 4 4 ...1/2*ones(1,12) 1 1 ...1/2*ones(1,12) 1 1 ...1/2*ones(1,12) 1 1 ...1/2*ones(1,12) 2 ...1/2*ones(1,24) 3].*fs;%% 加包络
x1 = [];
x2 = [];x1(1:rym1(1)) = a1(1,1:1:rym1(1));
for n = 2:length(tone1)x1(sum(rym1(1:n-1))+1:sum(rym1(1:n))) = a1(n,1:rym1(n)).*y1(rym1(n));
endx2(1:rym1(1)) = a2(1,1:1:rym1(1));
for n = 2:length(tone2)x2(sum(rym2(1:n-1))+1:sum(rym2(1:n))) = a2(n,1:rym2(n)).*y1(rym2(n));
end%% 唱音和伴奏结合
x1_left = [x1 zeros(1,100)];
x2_left = [x2 zeros(1,100)];
x1_right = [zeros(1,100) x1];
x2_right = [zeros(1,100) x2];x_left = x1_left + 2.8*x2_left;
x_right = x1_right + 2.8*x2_right;
x_left = x_left / max(x_left);
x_right = x_right / max(x_right);
melody = [x_left;x_right];
sound(melody, fs); %% 包络函数
function shap_y1 = y1(ylen)
yt = 1 : ylen;
shap_y1 = (5*((yt./44100).^(1/20)))./exp(yt./44100*1.8);
shap_y1 = shap_y1/max(shap_y1);
return
endfunction shap_y2 = y2(ylen)
yt = ylen+1 : 352800;
shap_y2 = (5*((yt./44100).^(1/20)))./exp(yt./44100*2);
shap_y2 = shap_y2/max(shap_y2);
return
end

【趣味】用MATLAB演奏《追光者》相关推荐

  1. 如何用matlab演奏《偏爱》

    文章目录 前言 一.效果演示 二.如何唱 1.原理 2.代码 总结 前言 之前学了点matlab,看朋友圈有人做了<追光者>,学了几天,兴致勃勃写了个<偏爱>,后忘记记录了,现 ...

  2. 天空之城 matlab,[转载]matlab演奏《天空之城》代码

    %matlab演奏<天空之城>代码 l_dao=262; %将"l_dao"宏定义为低音"1"的频率262Hz l_re =286; %将" ...

  3. 用matlab演奏周杰伦的《七里香》

    问题描述 前几天在学习matlab的时候,发现了一篇用matlab演奏音乐的文章,不禁感叹matlab居然还能这么玩!于是我就学着用matlab演奏我最喜欢听的一首歌--周杰伦的<七里香> ...

  4. matlab音乐合成卡农,matlab演奏《卡农》

    [attach]matlab演奏<卡农>程序文件[/attach] % Cripple Pachebel's Canon on Matlab % Have fun fs = 44100; ...

  5. matlab演奏七里香,沈员外,起风了,未闻花名,卡农

    %%%%%%----MATLAB演奏七里香-----%%%%% fs = 44100; dt = 1/fs; T16 = 0.2; t16 = [0:dt:T16];[temp k] = size(t ...

  6. 《MATLAB PROJECT》用MATLAB演奏音乐

    用MATLAB演奏音乐 (1) 采样率 (2) 十二平均律 (3) 声音强弱效果控制 (4) 声音播放时间控制 (5) 自定义音符函数 (6) <River Flows In You>演奏 ...

  7. 【音乐】基于matlab演奏《过火》【含Matlab源码 1875期】

    一.获取代码方式 获取代码方式1: [音乐]基于matlab演奏<过火>[含Matlab源码 1875期] 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代 ...

  8. 【音乐】基于matlab演奏《青花瓷》【含Matlab源码 1873期】

    一.获取代码方式 获取代码方式1: [音乐]基于matlab演奏<青花瓷>[含Matlab源码 1873期] 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此 ...

  9. matlab自带的音乐,MATLAB乐器(如何用matlab演奏音乐)

    近期在家无聊,刷B站视频的时候发现有up上传了matlab制作的音乐,效果很是有趣.顺带吐槽一下,手机端的B站总是推荐莫名其妙的内容,但是通过搜索关键词,你又总能搜到不错的视频,我试了几个教学课程,视 ...

最新文章

  1. 好多Javascript日期选择器呀-6
  2. selenium之如何等待页面元素加载完成
  3. disruptor入门
  4. lda主题词评论python_Python之酒店评论主题提取LDA主题模型
  5. 从一个git仓库拷贝到另一个git仓库
  6. ArcGIs创建企业级数据库
  7. java 网站计数器_网站计数器——Java实现
  8. Shell编程之常用内置命令
  9. AutoIT:界面与自动化操作结合来简化日常劳动: .Net Reactor验证License,设置License,创建License,截图AutoIt自动化实现。(七)...
  10. CMD 隐藏窗口运行
  11. 《艺多不压身 艺多不养家》反思
  12. Linux调度器笔记
  13. 蓝桥ROS中使用fishros一键安装
  14. C++中你不知道的namespace和using的用法
  15. 奇迹mu登录器工具和网站文件配置
  16. 【GZOJ】1369——小明跳楼梯
  17. Mac电脑如何删除磁盘及双系统分区?
  18. vue项目 - svg格式的icon图标无法显示颜色
  19. Project 2 :Python爬虫源码实现抓取豆瓣电影爱情电影Top200并保存到文件
  20. (系统盘)动态磁盘转换为基本磁盘

热门文章

  1. C#控件——Combobox
  2. ✅【已更新】3本SCIE期刊被剔除!(附目录↓方法)
  3. PTA R7-6 新世界 (C语言) (5 分)
  4. 华为、TCL:十年工作感想
  5. 《计算机组装与维修作业》答案,《计算机组装与维修作业.docx
  6. PDF maker文件遗失
  7. Kibana的离线安装部署
  8. 居然要周末加班才解决这个问题
  9. 《乱斗堂2》如何做自产自销的减法?|Cocos大会实录
  10. 邪恶的WordPress主题框架