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

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

时间2025-09-18 14:59:27分类IT科技浏览5734
导读:​...

一                、前言

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

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

二                        、整体思想

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

然后我个人学习时                        ,以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
怎么爬取一个网站的数据(网页数据采集方法-从网页中爬取数据的方法) jquery更改属性值(jQuery.getJSON() – jQuery API)