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

Matlab的音乐合成器应用

2017-10-16 7页 doc 77KB 95阅读

用户头像

is_511210

暂无简介

举报
Matlab的音乐合成器应用Matlab的音乐合成器应用 2012-07-13################2012-07-13######2#0#12-07-13######## 张盼盼 (华中科技大学电子与信息工程系,湖北 武汉 43007)4 【摘 要】声音的响度与声波振动的幅度有关,而声波的频率主要影响音调。通过储存音符的频率以及时长,再循环遍历,就能合成了多音轨的乐曲。本文就是通过识别五线谱来合成双音轨的乐曲ma,tlab 仿真波形实现乐曲的音调与节奏的变化。为了进一 步使乐曲听起来更加和谐,用AD SR 实现对音乐响度的调整。使之对人...
Matlab的音乐合成器应用
Matlab的音乐合成器应用 2012-07-13################2012-07-13######2#0#12-07-13######## 张盼盼 (华中科技大学电子与信息工程系,湖北 武汉 43007)4 【摘 要】声音的响度与声波振动的幅度有关,而声波的频率主要影响音调。通过储存音符的频率以及时长,再循环遍历,就能合成了多音轨的乐曲。本文就是通过识别五线谱来合成双音轨的乐曲ma,tlab 仿真波形实现乐曲的音调与节奏的变化。为了进一 步使乐曲听起来更加和谐,用AD SR 实现对音乐响度的调整。使之对人耳更友好。 【关键词】音乐合成器m;atlab;频率;ADSR 数字化已经在很多领域有广泛的应用,给人们的生活带来式:(keynumber)49)/12 freq=440×2了极大的方便。同样,音频信号也可以通过数字化来实现,当代 这样,只要我们能得到每个按键的编号,经过上述公式变 音乐合成的发展经历了电子模拟、数字模拟、采样回放、物理模 型 4 个阶段,其中数字合成法由于具有良好的灵活性和稳定性 换,便能得到每个按键的频率。频率的大小反映了音调的高低, 而被人们普遍接受。在数字音乐合成器的设计中,将M ATLAB 记录音符的频率就相当于决定了按键在琴盘的位置。在解决了 作为仿真工具,以五线谱为例研究出基于 MATLAB 进行数字 每个按键的频率问题之后,接下来还有一个问题要解决:每个 音乐合成器的设计方法,并结合ADR S 进行改进,使之更适合 音符持续的时间。在五线谱中,不同的音符代表不同的长度。音 聆听。 符有以下几种:全音符、二分音符、四分音符、八分音符、十六分 一、乐理实验准备 在五线谱的五根等距离的平行横线上,音符、三十二分音符、六十四分音符。我们可以通过识别每个音 线上和线间都代表 符的外形来判断其持续的节拍数。然后再把所有的节拍数存储 不同的音符,同时可以再五线谱的上方或下方加线或间,在五 起来,就可以得到所有音符的时长了。 线谱上音的位置愈高,音也愈高,反之音的位置愈低,音也愈 低。五线谱音符与简谱音阶对应的对照图如下。 图 4 乐谱截图 比如在上面的五线谱截图中,在 Violin1 音轨,4/4 表示以 4 分音符为一拍,每一节4 拍。例如,在第一小节中前两个音符各 占一拍,第三个音符占一拍半,第四个音符占半拍。而第一个节 图 1 五线谱的线和间 拍中的四个音符的 pulse数分别 为 4,4,6,2,对 pulse单位的 说 明如下: 图 2 五线谱、简谱音阶对照示意图 二、音乐合成存储准备 图 5 BMP 算法 我们存储的时长是以 pulse为单位的,所以乘以该变量就 可以完成从乐谱节拍到存储音符时长的转换,得到每个音符持 续的时间。至此,让MA TLAB 函数发出完整的旋律的所有要素 我们已经准备好了。 三、数据存储 我们得到了每个音符的频率和时长,我们 将数据存储在. mat 文件中,mat 文件不是文本的,而是二进制的,通过 Matlab 的 load 命令可以打开。下面是依次打开的过程: 图 3 键盘样式和按键编号 在上述键盘中,我们将A 4 键即编号为 49 的按键的频率作 为基准频率,该键被命名为A -440,表示它的频率是 440Hz,由 于每个音阶相隔 12 个按键,那么每两个按键之间的频率跨度 为2的12 分之一Hz。这样可以计算得出编号为44的按键的2012-07-13################2012-07-13######2#0#12-07-13######## 这里的两个结构体表明是对应的乐谱是双音轨。两个音轨 叠加,可以得到更加悦耳的和弦。 图 7 每个结构体的成员变量 这是每个结构体里的成员变量,其中ke ys 对应的是按键的 编号,durations 对应的是每个音符持续的时长,以pu lse为 单 位。 图 8 keys成员变量的值的集合 这是打开 keys成员变量后的视图,可以很清楚的 看到,这 是按键的编号集合。通过循环遍历,我们就可以得到每个按键 的频率。 图 10 程序图 四、Mat l ab 结构体仿真 五、实验改进( ADSR) Matlab 的结构体不用预先定义,直接使用即可。实例代码 ADSR用来 调整合成的音乐的幅度,使之对听众的耳朵更 如下: 加友好。x(t)=E(t)cos(2πft+Φ) key x.Amp = 7; 公式中的 E(t)就是我们应该施加的窗函数。一种普遍的做 x.phase = -pi/2; 法是,利用一下函数来实现: x.freq = 100; x.fs = 11025; x.timeInterval = 0:(1/x.fs):0.05; x.vaues = x.Amp*cos (2*pi (x.freq) (x.tmenterva) l**iIl+ x. phase); x.name = 'Sn Sgna'; iil图 11 ADSR 实例 对上述四个参数的解释如下:(1)起音(attack):这段决定声 %---- echo t he contents of the structure "x" 音从开始发出到最初的最大音量所需的时间长短。在打击乐音 plot(x.timeInterval,x.values); 色里这部分当然要很短。(2)衰减(delay):在声音达到最大音量 title(x.name); 后立即发生衰减的时间长短,衰减后的音量大小就是后面保持 上述代码的运行效果如下: 的音量大小。(3)保持(sustain):他决定在衰减后音量保持的大 小,与其他三个不同的是他并不代表保持的时间长短,形象的 说当你按下键盘不松手,持续发声时的音量大小就是保持决定 的,你按多长时间他就保持多长时间,所以他不代表时间长短。 通常保持的音量都低于起音的最高音量,不过也有相同甚至高 出起音音量的。(4)释音(release):这是声音最后的阶段,代表着 声音从保持的音量逐渐衰减到 0 电平(最小音量)的时间长短。 用 matab 设计数字音乐合成器,很大程度上发挥了m atab ll 的数字信号处理优势。本方案采用数字频率合成发实现乐曲音 调的合成,实现了数字信号处理的原理的研究,对于研究更加 图 9 验证结构体使用方法得到的正弦波形 精湛的技术如嵌入式音乐合成系统等都有很大的帮助。 程序: 参考文献 [1]李云鸿,胡修林,张蕴玉,基于人耳听觉模型的语音质量客观评价 方法[J],华中理工大学学报,2000,28(5)63:65 [2]毛春静,关永,刘 永梅,吴敏华,刘旭敏,数字音乐合成器的研究与 设计[J],计算机工 程与应用,2009,45(6)89:91 Your requestcould not be processed becauseof a configurationerror: "Could not connect to LDAPserver." For assistance,contact your network support team.
/
本文档为【Matlab的音乐合成器应用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索