【趣味】用MATLAB演奏《追光者》
【趣味】用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演奏《追光者》相关推荐
- 如何用matlab演奏《偏爱》
文章目录 前言 一.效果演示 二.如何唱 1.原理 2.代码 总结 前言 之前学了点matlab,看朋友圈有人做了<追光者>,学了几天,兴致勃勃写了个<偏爱>,后忘记记录了,现 ...
- 天空之城 matlab,[转载]matlab演奏《天空之城》代码
%matlab演奏<天空之城>代码 l_dao=262; %将"l_dao"宏定义为低音"1"的频率262Hz l_re =286; %将" ...
- 用matlab演奏周杰伦的《七里香》
问题描述 前几天在学习matlab的时候,发现了一篇用matlab演奏音乐的文章,不禁感叹matlab居然还能这么玩!于是我就学着用matlab演奏我最喜欢听的一首歌--周杰伦的<七里香> ...
- matlab音乐合成卡农,matlab演奏《卡农》
[attach]matlab演奏<卡农>程序文件[/attach] % Cripple Pachebel's Canon on Matlab % Have fun fs = 44100; ...
- matlab演奏七里香,沈员外,起风了,未闻花名,卡农
%%%%%%----MATLAB演奏七里香-----%%%%% fs = 44100; dt = 1/fs; T16 = 0.2; t16 = [0:dt:T16];[temp k] = size(t ...
- 《MATLAB PROJECT》用MATLAB演奏音乐
用MATLAB演奏音乐 (1) 采样率 (2) 十二平均律 (3) 声音强弱效果控制 (4) 声音播放时间控制 (5) 自定义音符函数 (6) <River Flows In You>演奏 ...
- 【音乐】基于matlab演奏《过火》【含Matlab源码 1875期】
一.获取代码方式 获取代码方式1: [音乐]基于matlab演奏<过火>[含Matlab源码 1875期] 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代 ...
- 【音乐】基于matlab演奏《青花瓷》【含Matlab源码 1873期】
一.获取代码方式 获取代码方式1: [音乐]基于matlab演奏<青花瓷>[含Matlab源码 1873期] 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此 ...
- matlab自带的音乐,MATLAB乐器(如何用matlab演奏音乐)
近期在家无聊,刷B站视频的时候发现有up上传了matlab制作的音乐,效果很是有趣.顺带吐槽一下,手机端的B站总是推荐莫名其妙的内容,但是通过搜索关键词,你又总能搜到不错的视频,我试了几个教学课程,视 ...
最新文章
- 好多Javascript日期选择器呀-6
- selenium之如何等待页面元素加载完成
- disruptor入门
- lda主题词评论python_Python之酒店评论主题提取LDA主题模型
- 从一个git仓库拷贝到另一个git仓库
- ArcGIs创建企业级数据库
- java 网站计数器_网站计数器——Java实现
- Shell编程之常用内置命令
- AutoIT:界面与自动化操作结合来简化日常劳动: .Net Reactor验证License,设置License,创建License,截图AutoIt自动化实现。(七)...
- CMD 隐藏窗口运行
- 《艺多不压身 艺多不养家》反思
- Linux调度器笔记
- 蓝桥ROS中使用fishros一键安装
- C++中你不知道的namespace和using的用法
- 奇迹mu登录器工具和网站文件配置
- 【GZOJ】1369——小明跳楼梯
- Mac电脑如何删除磁盘及双系统分区?
- vue项目 - svg格式的icon图标无法显示颜色
- Project 2 :Python爬虫源码实现抓取豆瓣电影爱情电影Top200并保存到文件
- (系统盘)动态磁盘转换为基本磁盘