晚上看到个帖,matlab演奏卡农,眼前一亮,以前从没想过用matlab出声,作者真乃大牛。看到一条评论:卡农算什么,有本事来最炫民族风。。。。于是我就手贱了。。。

花了几个小时。。。1/3在读懂卡农的程序,1/3在学习简谱知识(还好小学初中学过点),1/3在把简谱转换成代码。。。

不多说,程序如下,欢迎试听哈:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

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

PS:非原创,校内上转的~~~

matlab最炫名族风,matlab版 “最炫民族风” --- 跟风之作相关推荐

  1. matlab最炫名族风,matlab版 “最炫民族风” --- 跟风之作(附音频效果)(转)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 晚上看到个帖,matlab演奏卡农,眼前一亮,以前从没想过用matlab出声,作者真乃大牛.看到一条评论:卡农算什么,有本事来最炫民族风....于是我就手 ...

  2. matlab最炫名族风,Matlab演奏《最炫民族风》

    网络转载,来源未知. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Most shining national wind//最炫民族风 on Matlab % The ...

  3. matlab最炫名族风,Matlab演奏《最炫民族风》的代码

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Most shining national wind//最炫民族风 on Matlab % The Modificati ...

  4. matlab最炫名族风,Matlab 最炫民族风 科技的力量

    % Most shining national wind//最炫民族风 on Matlab % The Modification is from "canon", not by m ...

  5. 生活娱乐 最炫名族风恶搞版大全

    http://huodong.5sing.com/Content/256100/   <最炫民族风>恶搞填词翻唱,再起狂潮! "苍茫的天涯是我的爱,绵绵的青山脚下花正开,什么样的 ...

  6. Matlab结构第三版,MATLAB程序设计(原书第3版)

    图书简介 本书展示使用MATLAB解决各种典型问题的方法和技巧,不仅指导读者编写清晰.高效.良好的MATLAB程序,还介绍了大量MATLAB的实用函数.全书共9章,前7章涵盖MATLAB的基本概念和实 ...

  7. 用matlab数学综合实验,MATLAB与数学实验(第2版)

    MATLAB与数学实验(第2版) 作者:艾冬梅 李艳晴 张丽静 刘琳 出版日期:2014年06月 文件大小:46.48M 支持设备: ¥18.00在线试读 适用客户端: 言商书局 iPad/iPhon ...

  8. matlab画波动图像,【基于Matlab的波动方程的可视化实现最终版材料】

    基于Matlab的波动方程的可视化实现(最终版) <基于Matlab的波动方程的可视化实现.doc>由会员分享,可免费在线阅读全文,更多与<基于Matlab的波动方程的可视化实现(最 ...

  9. 牛顿法的matlab实现例题,【MATLAB|MATLAB牛顿插值法例题与程序Word版】

    『易坊知识库摘要_MATLAB|MATLAB牛顿插值法例题与程序Word版』x12345678y22.523.324.421.7025.228.524.825.4二.数学原理假设有n+1个不同的节点及 ...

最新文章

  1. android保持服务不休眠(持续运行)以及唤醒屏幕的方法
  2. matlab 把一个文件夹下的所有图片(可以包含在子文件夹下)考到指定文件夹下...
  3. ssd测试工具crystaldiskmark_使用SSD增强Ceph性能并对比测试
  4. Android属性动画 PropertyValuesHolder
  5. 一、后台首页index.php【dedecms后台源码分析】
  6. 【计算机网络复习 数据链路层】3.6.5 PPP、HDLC
  7. [前端]网页网络分析及前端网络优化
  8. pytorch中获取模型参数
  9. 苹果Mac Dock 栏应用窗口预览:​​​​​​​​​​​​DockView
  10. 深度学习pytorch基础入门教程(1小时)-张量、操作、转换
  11. excel换行快捷键_13个excel快捷键,学会他们,让你的1秒钟,抵得上同事的5分钟...
  12. 如何免费下载B站视频!!!实测可用!!!
  13. mysql busy buffer_与buffer cache相关的等待事件—buffer busy waits等待事件!
  14. 浅谈极值点偏移(化为单变量以及ALG不等式)
  15. 港科夜闻|香港科大彭倩教授分析疫情下企业如何减低投资损失
  16. 白话零知识证明(二)
  17. mac系统docker发布镜像报错:错误the user name or passphrase you entered is not correct解决
  18. 发现个下载Sailfish OS源码的地方
  19. 反跟单讲解1:重新认识期货反向跟单
  20. EPS坐标点格式转换

热门文章

  1. pytorch pad 实例
  2. matlab norm函数使用_matlab中norm与svd函数用法
  3. 湖北实现企业电子印章全域覆盖,君子签提升企业开办服务水平
  4. linux查找内容高亮显示,设置grep高亮显示匹配项
  5. 如何避免旧代码成包袱?5步教你接手别人的系统
  6. 一个网瘾少年到腾讯码农,再到360技术总监,最后成长为CTO的逆袭之路!太艰难了.....
  7. Fonts (简体中文)
  8. linux数字标牌,数字标牌操作系统中,Android、 Windows、Linux各自的优势在哪?
  9. Linux环境下MySQL报Table 'xxx' doesn't exist错误解决方法
  10. 安溪工业机器人_安溪全自动关节机器人真诚合作