首页IT科技matlab演奏歌曲(MATLAB·学习 | music:祝你生日快乐)

matlab演奏歌曲(MATLAB·学习 | music:祝你生日快乐)

时间2025-06-15 15:45:30分类IT科技浏览4254
导读:​...

一            、前言

本篇文章内容为个人学习分享            ,读代码须知以下

乐理的基本知识                  ,以及十二平均律(波的频率与音高的标准)       ,个人推荐在维基百科中搜索十二平均律表            。

二                   、整体思想

在主函数中         ,将一些简单的乐谱按照节拍                  ,按键          ,基调      ,半音改变经行拆解                  。

然后我个人学习时                  ,以440hz为标准的do依次类推             ,得到的基础钢琴七键   ,然后通过改变基础七键得到其他的音高       。

因为相邻的音阶是等差的                  ,且音高p = 69 + 12 x log2(f频率/440)                ,了解更加细致的讲解点击这里编辑

三      、matlab实现代码:

1.主文件:初始化乐谱

2.声波制作函数:

function y=get_ware(tone, rythm,keynote_type,Soundzone_change,up_down) %tone为音节,rythm为节拍               ,keynote_type为当前基调默认为C调                   ,keynote_change为改变基调    ,up_down为音节升降 %Sound zone_change为改变音区; Fs=8192; freqs=[440*2.^(3/12),440*2^(5/12),440*2^(7/12),440*2^(8/12),440*2^(10/12),440*2^(12/12),440*2^(14/12)];%C调中音 freqs=freqs*2.^((keynote_type-3)/12); freqs=freqs*2.^((Soundzone_change-2)*12/12); freqs=freqs*2.^((up_down-2)/12); x=linspace(0,2*pi*rythm,floor(Fs*rythm)); y=(sin(freqs(tone)*x).*(1-(x/(2*pi*rythm)))); end

四         、总结:

上述的音乐绘制还有一些值得研究的地方            ,比如说                  ,如何发出同时发出多个音       ,实现更为复杂的乐曲的演奏         ,以及如何模拟出钢琴按键轻重不同导致的尾音长短的不同         。还有就是在转换乐谱上边                  ,如果有更加智能的方式生成就更加好了          ,因为基础的演奏的函数其实很简单                  。

声明:本站所有文章      ,如无特殊说明或标注                  ,均为本站原创发布          。任何个人或组织             ,在未征得本站同意时   ,禁止复制                   、盗用         、采集      、发布本站内容到任何网站                   、书籍等各类媒体平台      。如若本站内容侵犯了原著者的合法权益                  ,可联系我们进行处理                  。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
vue组件是什么样子的(记录–vue组件划分的思考) windows中新建文件夹错误操作是(Win10新建文件夹失败的解决方法)