为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Matlab的音乐合成器应用

2012-04-08 3页 pdf 190KB 48阅读

用户头像

is_047044

暂无简介

举报
Matlab的音乐合成器应用 M at l ab的音乐合成器应用 张盼盼 (华中科技大学电子与信息工程系,湖北 武汉 430074) 技术市场 【摘 要】声音的响度与声波振动的幅度有关,而声波的频率主要影响音调。通过储存音符的频率以及时长,再循环遍历,就能 合成了多音轨的乐曲。本文就是通过识别五线谱来合成双音轨的乐曲,matlab仿真波形实现乐曲的音调与节奏的变化。为了进一 步使乐曲听起来更加和谐,用ADSR实现对音乐响度的调整。使之对人耳更友好。 【关键词】音乐合成器;matlab;频率;ADSR 数字化已经在很多领域有广泛的...
Matlab的音乐合成器应用
M at l ab的音乐合成器应用 张盼盼 (华中科技大学电子与信息系,湖北 武汉 430074) 技术市场 【摘 要】声音的响度与声波振动的幅度有关,而声波的频率主要影响音调。通过储存音符的频率以及时长,再循环遍历,就能 合成了多音轨的乐曲。本文就是通过识别五线谱来合成双音轨的乐曲,matlab仿真波形实现乐曲的音调与节奏的变化。为了进一 步使乐曲听起来更加和谐,用ADSR实现对音乐响度的调整。使之对人耳更友好。 【关键词】音乐合成器;matlab;频率;ADSR 数字化已经在很多领域有广泛的应用,给人们的生活带来 了极大的方便。同样,音频信号也可以通过数字化来实现,当代 音乐合成的发展经历了电子模拟、数字模拟、采样回放、物理模 型 4个阶段,其中数字合成法由于具有良好的灵活性和稳定性 而被人们普遍接受。在数字音乐合成器的中,将 MATLAB 作为仿真工具,以五线谱为例研究出基于 MATLAB进行数字 音乐合成器的设计,并结合 ADRS进行改进,使之更适合 聆听。 一 、 乐理实验准备 在五线谱的五根等距离的平行横线上,线上和线间都代表 不同的音符,同时可以再五线谱的上方或下方加线或间,在五 线谱上音的位置愈高,音也愈高,反之音的位置愈低 ,音也愈 低。五线谱音符与简谱音阶对应的对照图如下。 三 蔫四 : . 一,第匹阅 :: 嚣三问 一 第 司 \ .第一阒 第一 图 1五线谱的线和间 -t--~--,~-4r- .. I l I l j J l j { ; I } l;{ 图2 五线谱、简谱音阶对照示意图 二、音乐合成存储准备 Mm C ^ | { 440}2(¨ 一仰 , 2 图3 键盘样式和按键编号 在上述键盘中,我们将A4键即编号为49的按键的频率作 为基准频率,该键被命名为 0,表示它的频率是440I--Iz,由 于每个音阶相隔12个按键,那么每两个按键之间的频率跨度 为2的l2分之一Hz。这样可以计算得出编号为44的按键的 频率为440x 2(44-49ylZnz。由此可以得出更加一般的频率计算公 式: ~eq=440x 2 晰 这样,只要我们能得到每个按键的编号,经过上述公式变 换,便能得到每个按键的频率。频率的大小反映了音调的高低, 记录音符的频率就相当于决定了按键在琴盘的位置。在解决了 每个按键的频率问题之后,接下来还有一个问题要解决:每个 音符持续的时间。在五线谱中,不同的音符代表不同的长度。音 符有以下几种:全音符、二分音符、四分音符、八分音符、十六分 音符、三十二分音符、六十四分音符。我们可以通过识别每个音 符的外形来判断其持续的节拍数。然后再把所有的节拍数存储 起来,就可以得到所有音符的时长了。 图 4 乐谱截图 比如在上面的五线谱截图中,在Violinl音轨,4/4表示以4 分音符为一拍,每一节4拍。例如,在第一小节中前两个音符各 占一拍,第三个音符占一拍半,第四个音符占半拍。而第一个节 拍中的四个音符的pulse数分别为4,4,6,2,对pulse单位的说 明如下: beats _ per_second : bpm/60j seconds _ per—beat = 1/beat s_per second; seconds _ per_pulse=s~conds per—beat/4 图5 BMP算法 我们存储的时长是以pulse为单位的,所以乘以该变量就 可以完成从乐谱节拍到存储音符时长的转换,得到每个音符持 续的时间。至此,让 MATLAB发出完整的旋律的所有要素 我们已经准备好了。 三、数据存储 我们得到了每个音符的频率和时长,我们将数据存储在. mat文件中,mat文件不是文本格式的,而是二进制的,通过 Matlab的load命令可以打开。下面是依次打开的过程: 口圈矗墨墨—曩墨■■■———● l咕 * 国{ 鬻 l:F习 { ===j=== === 墨二 f随=飘蕊礴 基 _ ■ 图6加载mat后的视图 企业导报 2011年第11期 297 点 准 O 墓 鞠 须 万方数据 技术市场 这里的两个结构体表明是对应的乐谱是双音轨。两个音轨 叠加,可以得到更加悦耳的和弦。 努 赫{置j日 J嘧.5l咄 # {<1x~27 do曲fP) :i it/伸5 I<1x427 d0曲扫) l startPulso$ I【1 图7 每个结构体的成员变量 这是每个结构体里的成员变量,其中keys对应的是按键的 编号,durations对应的是每个音符持续的时长,以pulse为单 位。 一‘_ _ 图8 keys成员变量的值的集合 这是打开keys成员变量后的视图,可以很清楚的看到,这 是按键的编号集合。通过循环遍历,我们就可以得到每个按键 的频率。 四、Mat Iab结构体仿真 Matlab的结构体不用预先定义,直接使用即可。实例代码 如下: x.Amp= 7: x.phasc= -pi/2; x.fleq = 100; x.fs= 11025; X.timelnterval=O:(1/x.fS):O.05; x.values= x.Amp cos(2 pi (x.freq) (x.timelnterva1)+ x. phase); x.name= ’Sin Signal’: %~ .echo the contents of the structure ”x" plot(x.timelnterval,x.values); title(x.name); 上述代码的运行效果如下: 图9 验证结构体使用方法得到的正弦波形 程序流程图: ‘ Load M usicData.mat I波 bl1 蠡 298 企业导报 2011年第11期 将mat中l~Jkcys棚 /L durations 存在硒部 娈整 i I I渊f1]key2note ,逋J』j 轨l I 的站 体t得到饺 IJjJ吼 i 渊 key2note 遮 ff~,k2砖 的绵构体,叠加|±Ij笈 j氩主 0 调用sound..~播 放肯乐 l 峭ltjwaw'rite侏 尔史作为WaX.=格式 图 10 程序流程图 五、实验改进(ADSR) ADSR用来调整合成的音乐的幅度,使之对听众的耳朵更 加友好。x(t)=_E(t)cos(2rr f~t+o) 公式中的 Em就是我们应该施加的窗函数。一种普遍的做 法是,利用一下函数来实现: 图 11 ADSR实例 对上述四个参数的解释如下:(1)起音(attack):这段决定声 音从开始发出到最初的最大音量所需的时间长短。在打击乐音 色里这部分当然要很短。(2)衰减(delay):在声音达到最大音量 后立即发生衰减的时间长短,衰减后的音量大小就是后面保持 的音量大小。(3)保持(sustain):他决定在衰减后音量保持的大 小,与其他三个不同的是他并不代表保持的时间长短,形象的 说当你按下键盘不松手,持续发声时的音量大小就是保持决定 的,你按多长时间他就保持多长时间,所以他不代表时间长短。 通常保持的音量都低于起音的最高音量,不过也有相同甚至高 出起音音量的。(4)释音(release):这是声音最后的阶段,代表着 声音从保持的音量逐渐衰减到0电平(最小音量)的时间长短。 用matlab设计数字音乐合成器,很大程度上发挥了matlab 的数字信号处理优势。本采用数字频率合成发实现乐曲音 调的合成,实现了数字信号处理的原理的研究,对于研究更加 精湛的技术如嵌入式音乐合成系统等都有很大的帮助。 参 考 文 献 [1]李云鸿,胡修林,张蕴玉.基于人耳听觉模型的语音质量客观评价 方法【J】.华中理工大学学报.2000,28(5)63~65 [2】毛春静,关永,刘永梅,吴敏华,刘旭敏.数字音乐合成器的研究与 设计[J】.计算机工程与应用.2009,45(6)89~91 万方数据 Matlab的音乐合成器应用 作者: 张盼盼 作者单位: 华中科技大学电子与信息工程系,湖北武汉,430074 刊名: 企业导报 英文刊名: 年,卷(期): 2011(11) 本文链接:http://d.g.wanfangdata.com.cn/Periodical_qydb201111218.aspx
/
本文档为【Matlab的音乐合成器应用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索