利用MATLAB演奏最炫民族风[通俗易懂]

利用MATLAB演奏最炫民族风[通俗易懂]sp=actxserver(‘SAPI.SpVoice’);sp.Speak(‘最炫民族风’);sp.Speak(‘作曲者’);sp.Speak(‘二狗子’);sp.Speak(‘演奏者’);sp.Speak(‘Matlab’);%Mostshiningnationalwind//最炫民族风onMatlab%TheModificationisfrom”can


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

sp=actxserver('SAPI.SpVoice');
sp.Speak('最炫民族风');
sp.Speak('作曲者');
sp.Speak('二狗子');
sp.Speak('演奏者');
sp.Speak('Matlab');

% Most shining national wind//最炫民族风 on Matlab 
% The Modification is from "canon", not by me 
fs = 44100; % sample rate 
dt = 1/fs;

T16 = 0.125;

t16 = [0:dt:T16]; 
[temp k] = size(t16);

t4 = linspace(0,4*T16,4*k); 
t8 = linspace(0,2*T16,2*k);

[temp i] = size(t4); 
[temp j] = size(t8);

% Modification functions 
mod4=(t4.^4).*exp(-30*(t4.^0.5)); 
mod4=mod4*(1/max(mod4)); 
mod8=(t8.^4).*exp(-50*(t8.^0.5)); 
mod8=mod8*(1/max(mod8)); 
mod16=(t16.^4).*exp(-90*(t16.^0.5)); 
mod16=mod16*(1/max(mod16));

f0 = 2*146.8; % reference frequency

ScaleTable = [2/3 3/4 5/6 15/16 ... 
1 9/8 5/4 4/3 3/2 5/3 9/5 15/8 ... 
2 9/4 5/2 8/3 3 10/3 15/4 4 ... 
1/2 9/16 5/8];

% 1/4 notes 
do0f = mod4.*cos(2*pi*ScaleTable(21)*f0*t4); 
re0f = mod4.*cos(2*pi*ScaleTable(22)*f0*t4); 
mi0f = mod4.*cos(2*pi*ScaleTable(23)*f0*t4);

fa0f = mod4.*cos(2*pi*ScaleTable(1)*f0*t4); 
so0f = mod4.*cos(2*pi*ScaleTable(2)*f0*t4); 
la0f = mod4.*cos(2*pi*ScaleTable(3)*f0*t4); 
ti0f = mod4.*cos(2*pi*ScaleTable(4)*f0*t4); 
do1f = mod4.*cos(2*pi*ScaleTable(5)*f0*t4); 
re1f = mod4.*cos(2*pi*ScaleTable(6)*f0*t4); 
mi1f = mod4.*cos(2*pi*ScaleTable(7)*f0*t4); 
fa1f = mod4.*cos(2*pi*ScaleTable(8)*f0*t4); 
so1f = mod4.*cos(2*pi*ScaleTable(9)*f0*t4); 
la1f = mod4.*cos(2*pi*ScaleTable(10)*f0*t4); 
tb1f = mod4.*cos(2*pi*ScaleTable(11)*f0*t4); 
ti1f = mod4.*cos(2*pi*ScaleTable(12)*f0*t4); 
do2f = mod4.*cos(2*pi*ScaleTable(13)*f0*t4); 
re2f = mod4.*cos(2*pi*ScaleTable(14)*f0*t4); 
mi2f = mod4.*cos(2*pi*ScaleTable(15)*f0*t4); 
fa2f = mod4.*cos(2*pi*ScaleTable(16)*f0*t4); 
so2f = mod4.*cos(2*pi*ScaleTable(17)*f0*t4); 
la2f = mod4.*cos(2*pi*ScaleTable(18)*f0*t4); 
ti2f = mod4.*cos(2*pi*ScaleTable(19)*f0*t4); 
do3f = mod4.*cos(2*pi*ScaleTable(20)*f0*t4); 
blkf = zeros(1,i);

% 1/8 notes 
do0e = mod8.*cos(2*pi*ScaleTable(21)*f0*t8); 
re0e = mod8.*cos(2*pi*ScaleTable(22)*f0*t8); 
mi0e = mod8.*cos(2*pi*ScaleTable(23)*f0*t8);

fa0e = mod8.*cos(2*pi*ScaleTable(1)*f0*t8); 
so0e = mod8.*cos(2*pi*ScaleTable(2)*f0*t8); 
la0e = mod8.*cos(2*pi*ScaleTable(3)*f0*t8); 
ti0e = mod8.*cos(2*pi*ScaleTable(4)*f0*t8); 
do1e = mod8.*cos(2*pi*ScaleTable(5)*f0*t8); 
re1e = mod8.*cos(2*pi*ScaleTable(6)*f0*t8); 
mi1e = mod8.*cos(2*pi*ScaleTable(7)*f0*t8); 
fa1e = mod8.*cos(2*pi*ScaleTable(8)*f0*t8); 
so1e = mod8.*cos(2*pi*ScaleTable(9)*f0*t8); 
la1e = mod8.*cos(2*pi*ScaleTable(10)*f0*t8); 
tb1e = mod8.*cos(2*pi*ScaleTable(11)*f0*t8); 
ti1e = mod8.*cos(2*pi*ScaleTable(12)*f0*t8); 
do2e = mod8.*cos(2*pi*ScaleTable(13)*f0*t8); 
re2e = mod8.*cos(2*pi*ScaleTable(14)*f0*t8); 
mi2e = mod8.*cos(2*pi*ScaleTable(15)*f0*t8); 
fa2e = mod8.*cos(2*pi*ScaleTable(16)*f0*t8); 
so2e = mod8.*cos(2*pi*ScaleTable(17)*f0*t8); 
la2e = mod8.*cos(2*pi*ScaleTable(18)*f0*t8); 
ti2e = mod8.*cos(2*pi*ScaleTable(19)*f0*t8); 
do3e = mod8.*cos(2*pi*ScaleTable(20)*f0*t8); 
blke = zeros(1,j);

% 1/16 notes 
do0s = mod16.*cos(2*pi*ScaleTable(21)*f0*t16); 
re0s = mod16.*cos(2*pi*ScaleTable(22)*f0*t16); 
mi0s = mod16.*cos(2*pi*ScaleTable(23)*f0*t16);

fa0s = mod16.*cos(2*pi*ScaleTable(1)*f0*t16); 
so0s = mod16.*cos(2*pi*ScaleTable(2)*f0*t16); 
la0s = mod16.*cos(2*pi*ScaleTable(3)*f0*t16); 
ti0s = mod16.*cos(2*pi*ScaleTable(4)*f0*t16); 
do1s = mod16.*cos(2*pi*ScaleTable(5)*f0*t16); 
re1s = mod16.*cos(2*pi*ScaleTable(6)*f0*t16); 
mi1s = mod16.*cos(2*pi*ScaleTable(7)*f0*t16); 
fa1s = mod16.*cos(2*pi*ScaleTable(8)*f0*t16); 
so1s = mod16.*cos(2*pi*ScaleTable(9)*f0*t16); 
la1s = mod16.*cos(2*pi*ScaleTable(10)*f0*t16); 
tb1s = mod16.*cos(2*pi*ScaleTable(11)*f0*t16); 
ti1s = mod16.*cos(2*pi*ScaleTable(12)*f0*t16); 
do2s = mod16.*cos(2*pi*ScaleTable(13)*f0*t16); 
re2s = mod16.*cos(2*pi*ScaleTable(14)*f0*t16); 
mi2s = mod16.*cos(2*pi*ScaleTable(15)*f0*t16); 
fa2s = mod16.*cos(2*pi*ScaleTable(16)*f0*t16); 
so2s = mod16.*cos(2*pi*ScaleTable(17)*f0*t16); 
la2s = mod16.*cos(2*pi*ScaleTable(18)*f0*t16); 
ti2s = mod16.*cos(2*pi*ScaleTable(19)*f0*t16); 
do3s = mod16.*cos(2*pi*ScaleTable(20)*f0*t16); 
blks = zeros(1,k);


% Melody by Schau_mal 
part0 = [mi1f la0e la0e do1f mi1f ... 
re1e re1s mi1s re1e do1e re1e do1e la0f ... 
mi1f la0e la0e do1f mi1f ... 
so1e re1s mi1s re1e do1e re1e do1e ti0e so0e ... 
mi1f la0e la0e do1f mi1f ... 
re1e re1s mi1s re1e do1e re1e do1e la0e so0e ... 
mi1f la0e la0e do1f mi1f ... 
so1e mi1e blkf blkf blkf ... 
];

part1 = [la0f la0e so0e la0f la0e do1e ... 
do1f re1e do1e la0f la0f ... 
do1f do1e so0e do1e re1e mi1e so1e ... 
so1e mi1e re1f mi1f mi1f ... 
la1e la1e la1e so1e mi1e mi1f do1e ... 
la0e la0e la0e mi1e re1s mi1s re1e re1f ... 
mi1e mi1e so1e mi1e re1e mi1e re1e do1e ... 
la0f so0f la0f la0f ... 
];

part2 = [mi1e mi1e so1e mi1e mi1e so1e so1e la1e ... 
do2e la1e so1f la1s do2s la1e la1f ... 
la0f la0e so0e la0f do1f ... 
re1e mi1s re1s do1e re1e mi1f mi1f ... 
la0e la1e la1e so1e re1e mi1s re1s do1e re1e ... 
mi1f mi1f blke blke blkf ... 
do1e la0e la0e do1e re1f so0e so0e ... 
mi1e so1e mi1e re1e do1f do1f ... 
la0e do1e re1e mi1e re1e do1e so0e mi0e ... 
la0f la0f blke blke blkf ... 
];

part3 = [la0f la0e so0e la0f do1f ... 
re1e mi1s re1s do1e re1e mi1f mi1f ... 
la0e la1e la1e so1e re1e mi1s re1s do1e re1e ... 
mi1f mi1f blke blke blkf ... 
do1e la0e la0e do1e re1f so0e so0e ... 
mi1e so1e mi1e re1e do1f do1e do1e ... 
la0e do1e re1e mi1e so1e mi1e mi1e so1e ... 
la1f la1f la1f la1f ... 
];

part4 = [la1e la1s la1s la1e la1e la1e la1s so1s mi1e re1e ... 
re1e re1s re1s mi1e mi1s so1s mi1e mi1s re1s do1e do1s la0s ... 
la0f la0e so0e la0f la0e do1e ... 
re1e mi1s re1s do1e re1e mi1f mi1f ... 
la1e so1e mi1e re1e so1e mi1e re1e do1e ... 
do1f do1f la0s do1s re1s mi1s re1s do1s la0s do1s 
];

part5 = [do2e do2s do2s la1e la1s la1s so1e so1s so1s mi1e mi1s mi1s ... 
re1e mi1s re1s do1e la0s so0s la0s so0s do1s re1s mi1s so1s la1s re2s ... 
do2f do2f blks blks blks blks do1e re1e ... 
mi1f mi1f mi1f so1e mi1e ... 
la1f la1f la1e do1e so1e mi1e ... 
re1f re1e re1s re1s re1e re1e do1e re1e ... 
mi1f mi1e mi1s mi1s mi1e re1s do1s ti0e do1s re1s ... 
mi1f mi1f mi1f so1e mi1e ... 
do2f la1f la1f la1e do1e ... 
re1f so1f so1f la1f ... 
ti1f ti1f ti1f ti1f ... 
];

part6 = [blkf blkf mi1e so1e mi1e so1e ... 
mi1f la0e la0s la0s do1f la0e mi1s la0s ... 
do1e do1s do1s re1e do1s re1s mi1f mi1f ... 
mi1f la0e la0s la0s so1f re1e re1s re1s ... 
mi1f mi1f mi1s re1s do1s la0s mi0s re0s mi0s so0s ... 
do1f la0e la0s la0s re1f so0e so0s so0s ... 
mi0f so0e so0s so0s do1f do1f ... 
la0f do1e do1s la0s mi1e mi1s mi1s re1e re1s mi1s ... 
];

% Combination, v1 is complete version, v2 is simple version. 
v1 = [part0 part1 part1 part2 part3 part4 part0 part1 part1 part2 part3 part5 part3 part6 part3]; 
v2 = [part0 part1 part1 part2 part3 part5 part3 part6 part3];

% Let's rock ^_^ 
s = v1; 
s = s/max(s);

sound(s,fs);


%[filename,pathname]=uiputfile('.wav','保存文件到…');
%if isequal(filename,0)||isequal(pathname,0)
%return;
%end
%fpathsave=[pathname filename];
%wavwrite(s,fs,[pathname filename]);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190568.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 免费pdf转word在线转换器[通俗易懂]

    免费pdf转word在线转换器[通俗易懂]免费pdf转word在线转换器   在办公环境下如何将PDF转换成Word,是不少上班族普遍需要了解的问题之一。面对上百份需要处理的文档,其实否不用安装专业的PDF转Word转换器,借助免费PDF转Word在线转换器就能轻松帮你搞定PDF转Word问题。  最新发布的迅捷免费pdf转word在线转换器,是目前转换效果最好的转换工具,能够轻松实现批量PDF文件的转换,对于个人或者企业用户来说

    2022年6月12日
  • 微信公众号之自定义菜单

    微信公众号之自定义菜单今天是“微信开发会客厅”栏目的第一期,我的微信自媒体“刘琪的商业观察”有幸请到了几位自定义菜单的“尝鲜者”,请他们谈谈对。 “订酒店”公众号负责人、快捷酒店管家产品经理朱坤的看法比较具有典型性,他表示:“如果说是惊喜还谈不上,毕竟微信团队的人太少了,而且事情非常多,所以开放和相关功能的开发肯定是慢慢来的。不过,这也传递了一个很重要的信号与信心,那就是,每个公号都会成为一个独立的具体

    2022年5月13日
  • windows server2003 web服务器搭建

    windows server2003 web服务器搭建在控制面板中点击添加或删除程序,打开如下界面:勾选并打开应用程序服务器-Internet信息服务(IIS)-万维网服务依次点击确定后,开始下载服务,完成后打开IIS管理器然后进行如下设置在主目录下创建一个文本文档,输入内容,并保存为index.htm打开浏览器,输入IP地址,即可看到刚才输入的内容用物理机访问同理…

    2022年5月27日
  • 基于SSH的实验室设备管理系统mysql[通俗易懂]

    基于SSH的实验室设备管理系统mysql[通俗易懂]### 环境:JSP+SHH框架+MySQL数据库+jdk+tomcat每个功能模块的具体功能如下所述:实验室教师端(管理员端)通知管理模块该模块是实验管理员发布通知公告的地方,具体包括新增通知公告、删除通知公告。预约和借用记录管理模块这是两个模块,而其设计思想大致相同,借用记录管理模块主要是对借用的设备仪器进行记录,其包括借用人、借用时间、归还时间和审核。借用设备需要管理员的审核…

    2022年10月13日
  • Struts2 漏洞信息汇总

    Struts2 漏洞信息汇总官方链接如下:https://cwiki.apache.org/confluence/display/WW/Security+Bulletins最近不出以外Struts2又又又一次被爆出RCE漏洞【S2-061Struts远程代码执行漏洞(CVE-2020-17530)】每次Struts2RCE漏洞爆发的时候都在想,如果有个地方能统一看一下Struts2的历史漏洞就好了,网上搜索了下居然没有,翻了下Struts2官网,终于找到了需要的内容截至本文发布时,所以已经爆出的Strut.

    2022年7月19日
  • 递归算法之阶乘算法

    递归算法之阶乘算法递归算法是一种比较难理解的算法,本人是一位学生,饱受编程之苦,为了给广大学编程的童鞋提供方便,这里总结了一些教科书中常见的递归算法案例。这是第一篇,简单的用递归实现的阶乘算法。#includeusingnamespacestd;intFactorial(intn){ intsum=0;//定义一个累乘的sum量 if(n==0)return

    2022年7月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号