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

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

时间2025-08-02 14:42:26分类IT科技浏览4854
导读:​...

一                、前言

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

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

二                    、整体思想

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

然后我个人学习时                    ,以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
图像分割算法综述(图像分割技术及经典实例分割网络Mask R-CNN(含基于Keras Python源码定义)) win10怎样设置浏览器为默认浏览器(win10如何自定义浏览器 win10系统设置默认浏览器方法)