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

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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]);

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • RNN:timestep、inputsize、Batchsize的区别「建议收藏」

    近期读了一些关于LSTM的文章,但仍旧很难理解,关键就是不懂输入、输出是什么,相比于图像处理的CNN,RNN特别抽象。昨晚花了很大的精力去理解“遗留状态”这个概念,现在终于明白了一些,关键在timestep这个概念。关于timestep我们看到的所有的RNN结构图,其实都是在一个timestep中的,而不是整个序列。(这句话很简单,但真的是花了很长时间才领悟到的)以下引用自知乎回答:[我的…

  • map.containsKey方法的运用「建议收藏」

    map.containsKey方法的运用「建议收藏」map之containsKey方法例如:List<HashMap<String,Object>>pt=mapperDao.query(param1,param2);for(HashMap<String,Object>map:pt){if(!map.containsKey(“age”)||null==map.get(“age”))c…

  • 超详细的Git下载安装、环境变量配置教程

    超详细的Git下载安装、环境变量配置教程一、安装教程:1.首先去官网下载git安装包,附网址:https://git-scm.com/官网下载会比较慢,附上csdn下载链接:2.点击下载好的exe文件3.一直点击next,直到出现install,点击install,安装完成后点击finish:4.启动测试  到此,Git的安装完成,可以在开始菜单中看到Git的三个启动图标(GitBash、GitCMD(Deprecated)、GitGUI)。  GitBash

  • python文件操作步骤_python读取csv文件

    python文件操作步骤_python读取csv文件文件操作文件操作主要包括对文件内容的读写操作,这些操作是通过文件对象实现的,通过文件对象可以读写文本文件和二进制文件open(file,mode='r',buffering=-

  • 如何用决策树模型做数据分析报告_决策树实例

    如何用决策树模型做数据分析报告_决策树实例什么是决策树?决策树模型本质是一颗由多个判断节点组成的树。在树的每个节点做参数判断,进而在树的最末枝(叶结点)能够对所关心变量的取值作出最佳判断。通常,一棵决策树包含一个根结点,若干内…

  • docker部署Kafka_kafka容器部署

    docker部署Kafka_kafka容器部署1.拉取镜像dockerpullwurstmeister/zookeeperdockerpullwurstmeister/kafka2.启动,先启动zookeeperdockerrun-d–namezookeeper-p2181:2181-twurstmeister/zookeeper再启动kafka,中间两个参数的172.17.137.55改为宿主机器的IP地址,如果不这么设置,可能会导致在别的机器上访问不到kafka。使用docker命令可快速在同一台机器搭

    2022年10月18日

发表回复

您的电子邮箱地址不会被公开。

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