【基于MATLAB的歌曲制作探究10000字(论文)】_第1页
【基于MATLAB的歌曲制作探究10000字(论文)】_第2页
【基于MATLAB的歌曲制作探究10000字(论文)】_第3页
【基于MATLAB的歌曲制作探究10000字(论文)】_第4页
【基于MATLAB的歌曲制作探究10000字(论文)】_第5页
已阅读5页,还剩14页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于MATLAB的歌曲制作研究摘要本文结合“数字信号处理”课程和“Matlab程序设计”课程的相关知识,给出了基于Matlab的音乐播放器的总体设计方案,介绍了播放器主要模块的功能,设计与实现方法。我们将该设计作为电子信息类专业数字信号处理课程设计项目,有助于激发学生的学习兴趣,提高其综合设计和应用创新能力。音乐作为人们生活中必不可少的一部分,音乐搜索具有广大的用户群体,也蕴含着巨大的商机。传统的音乐搜索是根据用户输入的关键词进行搜索,关键词可以是歌曲的名称,歌手名,歌词等,这种方式被称为基于文木的检索。对于这种方式的检索,如果用户不能准确地一记住歌曲的相关信息(歌曲名称,歌词等),就不能准确的检索歌曲。同时,采用这种检索方式需要手动去维护一个音乐数据库,对每首歌曲的基本信息进行标注,增加了管理者的工作量,因此需要找到一种更简单,更快捷的检索方式。哼唱检索便是一种新型的检索方式,它充分利用歌曲自身的特征,如音高,音长等特征,为用户提供一种更简单更自然的检索方式。这种新型的检索方式可以广泛地应用在移动互联网,卡拉OK中,也可以应用于音乐教育等方面。哼唱检索最核心的两部分是音乐旋律特征提取和匹配。如何准确的提取歌曲的特征信息,利用特征信息描述歌曲轮廓;采用哪种匹配算法又快又准确的检索出我们所需要的歌曲是本文的研究重点。围绕这两个问题,本文做了如下相关研究和探索。关键词:Matlab程序设计;数字信号处理;歌曲制作目录TOC\o"1-3"\h\u59511绪论 1110321.1研究的内容和意义 12101.2国内外的研究现状 281351.3选题意义 399032音乐特征概述 4230602.1音乐乐理基础 4197722.2音乐文件格式介绍 6232152.3声音的物理特征 742912.3.1短时平均能量 7229552.3.2短时平均幅度 8271922.3.3音高 8124643基于MATLAB的歌曲制作 918203.1音频信号的预处理 940453.2乐理实验准备 10300923.3音乐存储准备 1066053.4音量和音调的动态波形显示 12280953.5数据存储 13113223.6Matlab结构体仿真 1432013.7实验改进(ADSR) 15308384结束语 1611881参考文献 161绪论1.1研究的内容和意义信息检索(InformationRetrieval)是指将信息按一定的方式组织起来,并根据用户的需要找到相关信息的过程和技术川。信息检索源于图书馆的参考咨询和文摘索引工作,其最初一直都是由人手工建立索引并检索。随着第一台计算机问世及信息技术的发展,给人类社会带来重大影响,信息技术逐步进入信息检索领域。二十一世纪是一个信息时代,随着互联网的迅猛发展,信息,知识和资讯等以前所未有的速度和方式涌向我们。互联网上,一天的信息量足以刻满1.68亿张DVD,每天有2940亿封电子邮件被发送,200万篇博文发布,巨大的信息量给信息检索带来了前所未有的发展机遇,也带来了重大的挑战。当前的信息检索工具主要是基于文本的,而且已经发展得非常成熟。几大著名的搜索引擎Google,Yahoo和百度都是通过构造索引,采用关键字匹配的方式来检索相关文档。最后将检索结果依据“相关度”排序并显示给用户。音乐是人们生活的重要组成部分,也是互联网资源的重要组成部分。随着互联网,移动通信技术的发展,网络己成为人们生活中不可分割的一部分。对于音乐的获取,人们已不再愿意通过购买磁带,CD等载体获取音乐。相反,更多倾向于从互联网上搜索,下载音乐。互联网上存储有大量的歌曲,如何准确,便捷地从庞大的歌曲数据库中检索出用户想要的歌曲,是对搜索引擎的一个巨大挑战。传统的音乐创作也是基于文本的,需要预先手动对音乐的歌曲名称、歌词、演唱者、作者等元数据信息进行标注,即手工录入这些信息。系统根据用户输入的关键字与这些元数据信息进行比对,同样将检索结果依据“相关度”排序并显示给用户。在实际的应用中,这种检索方式有其固有的缺陷。首先,它对用户的要求较高,要求用户能够准确地记住所唱歌曲的名称,演唱者等相关信息。其次,随着时间的推移,数据库中的音频数据量会逐渐增大,人工的标注工作量也会随之增大。基于内容的音乐创作则是利用音乐文件自身的特征信息进行检索,如旋律,节拍,音调等。它充分利用人对音乐的感知,是一种最符合用户习惯的检索方式。当用户听到一首熟悉的旋律时,想要检索这首歌曲,只需哼唱一个片段就可以快速、准确查询相关歌曲的信息,而无需输入歌名,演唱者,歌词等信息。给用户提供了更方便快捷的查询方式,提供更好的用户体验。本文研究的正是这种基于哼唱的音乐创作QBH(QueryByHumming)。这是一不中新型的信息检索方式,同时具备广泛的应用价值。概括来讲,基于哼唱的音乐创作主要有以下几个方而的应用:(1)互联网或移动终端的音乐搜索。随着移动终端的发展,移动终端拥有强大的处理能力,用户可以对着手机或其它移动终端哼唱一小段歌曲,便能通过互联网进行检索或下载。(2)卡拉OK点歌系统。可改变当前的点歌方式,无需输入歌手名称,歌词名等信息,只需哼唱一段,计算机便能返回一个检索列表。(3)音乐教育。系统提取用户哼唱的歌曲特征信息,并细致,全面的分析用户的哼唱情况。指出用户演唱过程中存在的问题,和需要改进的地方,给出相应的改进策略,不断提升用户的演唱技能。1.2国内外的研究现状1995年,英国Southampton大学的Ghias等在ACM多媒体研讨会上介绍了自己在哼唱检索方面的研究,并开发了一个QBH系统。Ghias采用的是基于音符切分的方式提取基频。首先将声音信号按音符切分,然后用基于时域的ACF算法提取音高,根据音高值的变化,采用字母“U","D","R”组成的序列来表示旋律特征。其中,字符“U”表示当前音符的音高值比前一个音符的音高值要高,字符“D”表示当前音符的音高值比前一个音符的音高值要低,字符“R”表示当前音符的音高值和前一个音符的音高值相同。匹配引擎采用近似字符串模糊匹配算法。McNab等人在Ghias等人的基础上增加了对音乐节奏信息的提取与研究,从而提高系统检索的成功率。采用Gold-RabinierAlgorithm算法提取基频,根据提取到的基频特征再采用基于能量的方式进行音符的切分,最后以音符作为最小匹配单元进行搜索,开发了一套MELDEX系统,实现了通过哼唱搜索歌曲的功能。Roland和henhuang为了提高检索的速度采用了基于树的数据库检索技术。Chen等使用半音(semitone)为单位来表示提取到的基频,在旋律的描述序列中去掉相邻的重复音高。LieLu等人也指出,由于音符切分不准确很容易导致提取到的基频中有不少重复的序列,在LieLu等人的研究中,其参考了Ghias的音乐特征农示法,采用相对音高表示法,但不采用+R”字符来表示音乐特征序列。Kosugi等在其系统中提出一种同时考虑音高和节奏的检索方法。Shih在其开发的系统中引入了隐含马尔科夫模型(HMM)进行匹配检索。“台湾清华大学资讯工程系张钾星等人做了大量关于语音识别和哼唱检索方而的研究,也取得了很多成果,并成功开发了多个语音合成,语音识别,哼唱检索相关的产品。张摺星团队开发了一个基于web的大型在线哼唱检索系统MIRACLE,收录的歌曲超过13000首,平均搜索时间在3~4秒之间。系统采用B/S结构,客户端采用Flash技术开发,服务器端采用CUDA并行计算技术加速计算。在匹配算法的选择上该系统采用两级过滤算法进行比较,首先采用LS算法,过滤到90%的不匹配项,然后采用DTW算法从剩下的10%的候选项中进行精确比较,充分结合LS算法在速度上的优势和DTW算法在精度上的优势,使得整个系统具有较快的响应速度和较高的正确率。Google,微软,盛大,腾一讯等IT企业也都做过相关的深入研究,盛大推出了语音哼唱检索开源软件,腾讯推出了一款基于Web的哼唱检索系统。国内的诸多研究所,高校,如清华大学,西北大学,华南理工等都做过这方面的研究。综上所述,音乐哼唱检索系统的研究重点在于如何提取音乐特征,采用何种方式准确描述音乐特征,采用何种匹配算法使系统检索准确度较高,同时保证系统的检索速度能够被广大用户所接受,本文主要也是围绕这几个问题展开。1.3选题意义音乐风格代表着一个音乐创作者的个性,听众对于不同音乐风格的喜好也因人而异,很难找到某一种音乐风格为所有大众喜爱。在这个网络音乐的时代,基于计算机技术的音乐风格分类方法是一个充满前景的研究领域。其主要应用领域包括为:音乐推荐:根据特定用户的喜好,进行同类风格歌曲的推荐。这项功能既可以为用户省去繁琐的搜索音乐过程,也为知名度较低的音乐提供了一个推广的平台。音乐交友:系统根据用户听音乐的习惯,对用户进行分类。对于用户来说,可以很容易地找到和自己喜欢相同或者相近音乐风格的用户进行交流与学习。因此,音乐交友功能是互联网上的一个非常理想的社交平台。自动音乐导航:音乐风格的名词有多种,例如:“布鲁斯”,“新金属”,“新世纪音乐”。而并非所有用户都知道这些术语,对于用户来说,音乐风格可能更趋向于音乐的听觉效果,例如:“忧郁”,“冲击力”,“治愈系”。系统进行音乐分类以后,可以根据用户输入的音乐效果返回相应的音乐风格,例如“治愈系”对应“新世纪音乐”。相似音乐搜索:钟爱于某种音乐风格的用户可能希望听到更多该风格的音乐。例如,用户可能会搜索:“与B.B.King相同风格”,系统可以为用户返回BuddyGuy的音乐计算机辅助音乐创作:此项功能类似于音乐创作人的“决策系统”,为创作人提供作曲、编曲建议。例如:相关软件可以回答“用什么样的和声伴奏使得作品更趋向于JAZZ风格”一类问题。以上为音乐分类技术的部分应用领域,大部分已经被各网站广泛使用。因此,在互联网上的音乐作品成几何级增长的时代,研究基于计算机技术的音乐分类方法具有深远的意义。2音乐特征概述在基于内容的音乐创作技术出现之前,音乐创作只能停留在基于文本信息的层面上。检索系统必须先构建一个音乐特征信息数据库,此时音乐特征数据库中包含的是音乐的作曲者,作词者,演唱者,歌谱,歌词等信息。然后检索系统利用用户输入的关键词去音乐数据库中检索,返回匹配项。墓于内容的音乐创作是基于音乐文件自身特征的检索技术,不需要人工去标注该音乐的作曲者,作词者,演唱者等信息。采用基于内容的音乐创作,其后台的数据库的构建更加的方便与快捷。同时它的出现也使得人们可以采用一种更自然,更直观的方式去检索音乐。只需要对着麦克风哼唱一首歌曲的片段,系统便会从音乐数据库中查找出内容相似的音乐返回给用户。2.1音乐乐理基础声音是由物体振动产生的,以声波的形式进行传播,声波通过各种传播介质,传播到人耳中,引起人耳内鼓膜的振动,这些振动被转化为微小的脑电波,传到大脑相应的部位进行处理和解释,形成我们所能觉察到的声音。自然界中声音的频域非常宽广,但人耳能听到地声音频率大约在20Hz到20000Hz之间。人们把频率高于20000Hz的声音称为超声波,低于20Hz的声音称为次声波。音乐是属于声音世界的一部分。发声体(声源)做有规则的周期振动,发出具有固定频率,具有一定高度的音称为乐音;没有固定频率,无规律又杂乱无章的音称为噪音。音乐是按照一定的规律将各种乐音组织起来,使其产生听觉美感。音乐主要具有以下基本特征。音符(note):音符是用来一记录乐音长短的符号,在乐谱中以其形状表示相对的音长,不同类型的音符代表不同的长度,通常有八分音符、四分音符、二分音符、全音符等。音高(pitch):代表音符的高低,从物理学角度上看,音高是由声源振动的频率决定的。振动的频率越高,音高越高。在五线谱中音高符一号用C,D,E,P,G,A,B七个字母命名,对应简谱中的1,2,3,4,5.6.7。通常女性发声时声带的振动频率较高,一般在1l0Hz到1000Hz之间;相比之下,男性发声时声带的振动频率较低,一般是在65Hz到550Hz之间。音长(duration):用来描述一个音符所持续的时间的长短。音量:通常也称为音强,响度,声音的能量等。音量描述的是声音的强弱。从物理学的角度上看,它是山发声体振动幅度的大小所决定的,发声体振动幅度越大,一音量就越强;发声体振动的}隔度越小,音量也就越弱。音色:指的是发声体的质地,它山发声体的材料性质,形状结构,发声方式等因素决定,体现的是声音的总体品格,是声音给人的一种主观感觉特征,体现了发声体的特色。基音:声音是山发声体做一系列频率、振幅各不相同的振动叠加一而成的。基音是发声体整体振动中频率最低,最强的振动发出的声音。其余为泛音,基音所对应的频率称为基频。泛音:发声体振动发出的声音是以基音为标准的,同时包含着多个泛音,泛音的组合决定了特定的音色,泛音是由发声体112.113,1/4等局部部分振动时发出的声音。乐器和自然界里所有的音都有泛音。节奏:节奏用来描述的是音与音之间的长短关系与间隔。旋律:多个乐音按某种规律组织起来的表现,也称为曲调。在音乐检索中,常用音高,音长等信息综合起来表示旋律。在哼唱检索的研究中,我们主要利用的是音乐的音高和音长特征。因为对于同一首歌曲,不同的人演唱或者用不同的乐器演奏,既使声音的强弱或音色都会发生较大的变化,但人们还是很容易地辨认出这首歌曲。而如果歌曲的音高或音长发生较大的变化,这首歌的旋律将会发生很大的变化。因此,对于音乐来说,音高和音长更能体现出一首歌曲的主要特征。对于基于音乐旋律的哼唱检索来说,我们更多关注的是旋律的音高和音长特征。音色也是基于内容的音乐检索系统考虑的另一个重要特征,但更多的是用音色来识别发声的乐器。音量更多的用在音乐风格的判断上。2.2音乐文件格式介绍声音数据存储也有其固定存储格式。当前使用的声音文件的类型很多,但目前比较流的有WAV文件、VOC文件、MIDI文件、CD文件、MP3文件、WMA文件等。下面简单介绍一下几种最常见的声音文件格式。1.WAV格式WAV文件格式也称为波形文件格式(wavfileformat),其后缀名为“.wav”。WAV文件格式的标准是由IBM和微软公司在1991年联合制定的。在Windows系统中WAV文件是最常用的多媒体音频格式之一,被Windows系列平台及其应用程序所支持。其应用非常广泛,同时也是最早的数字音频格式。WAV格式的文件支持许多压缩算法,可具备较高的音质,然而由于格式对存储空问需求太大,因此不便于用来交流和传播。2.MIDI格式MIDI(MusicalInstrumentDigitalInterface,MIDI),乐器数字接口是用于在一音乐合成器、乐器和计算机之间交换音乐信息的一种标准协议。MIDI是乐器和计算机使用的标准语言,是一套指定的约定。MIDI格式的音乐文件中存储的不是声音信号,而是相关的指令。即告诉乐器(即MIDI设备要做什么,怎么做。例如,告诉音乐设备在某个时刻演奏音符,该音符的音高,持续时间长度,响度等。MIDI文件具有体积小的优点,同时其数据是完全可编辑的。因为MIDI文件中存储的是命令,而不是声音的波形。较声音波形而言,编辑命令是很容易实现的。用户可以在软件的帮助下可以不断地自由修改MIDI音乐文件的命令从而改变音乐的音调、音长等属性,直到满足自己想要的效果。MIDI文件虽然体积小,但是却包含了丰富的音乐信息。MIDI格式的音乐受到了广泛的应用,也被广大研究人员所关注。由于从MIDI音乐中提取音乐信息非常便捷,故MIDI音乐文件常用于音乐库的建设中。3.MP3格式MP3的全称是MPEGAudioLayer3,是一种音频压缩技术。采用这种压缩技术可以大幅度的降低音频数据量,可以将体积较大的音乐文件以较大的压缩比压缩成容量较小的文件。压缩比甚至可以达到12:1。它充分利用的是人耳的掩盖效应,利用人耳对高频声音信号不敏感的特性,将时域波形信号转换成频域信号,并划分成多个频段,对不同的频段使用不同的压缩率,对高频加大压缩比(甚至忽略信号),对低频信号使用小压缩比,保证信号不失真。因此对于大多数用户来一说不会察觉压缩后的音质有明显的下降。而文件的体积只有对应文件的1/10左右。4.WMA格式WMA即WindowsMediaAudio,是微软公司推出的一种压缩音频文件格式。WMA在压缩比和音质方而都超过了MP3,它的压缩比可以达到18:1,并且即使是在较低的采样频率下仍能有较好的音质。WMA7之后的WMA支持证书加密,在未经许可的情况下,既使将WMA格式的音频文件非法拷贝到木地,也是无法使用的。在WMA9中,微软进行了大幅改进,可以使WMA格式的文件在同音质条件下比MP3文件的体积少1/3左右,因此非常适合用于网络流媒体方面的应用。2.3声音的物理特征对哼唱信号进行处理的方法主要分为三大类,基于时域的方法,基于频域的方法,棍合法。基于时域的基频分析方法是最早提出来的,也是最为广泛使用的一种分析方法。基于时域的分析方法直接利用声音信号的时域波形,分析语言信号的短时平均能量或短时平均幅度,过零率,短时自相关函数和短时平均幅度差函数等特征。基于频域的方法是分析声音的频域特征,包括语音信号的频谱,功率谱,倒谱等。混合法则是综合利用声音信号的时域特征或频域特征进行分析,考虑声音的声学感知特性,但通常计算比较复杂,计算量大。基于时域的分析方法简单,直观,提取的特征信息准确,获得了广泛使用。本文中采用的是基于时域分析方法,主要利用的是声音信号的以下几个特征:2.3.1短时平均能量对于信号x(n),假设窗函数中的窗长为N,则短时能量可表示为:由于计算短时能量取的是信号值的平方,所以计算出的短时能量对信号比较敏感。实际应用中,常用对数能量。对数能量的公式如下:采用对数能量公式计算后得到的值的单位是分贝。是一个相对强度的值,比较符合人耳对声音大小的感觉。2.3.2短时平均幅度短时平均能量的一个主要问题是函数对于电平值过于敏感,同时平方运算人为的增加了高低信号之间的差距,且加大了运算量,在实际过程中用平均幅度末表示音量的大小,短时平均幅度函数的定义为短时平均能量和短时一平均幅度都足用来农小音量的大小,音量也被称为“能量”、“力度”、“强度”等,音量特征在声音信一号处理中具有重要作用,主要体现在以下儿个方而:(1)用来区分浊一音,清音与杂音。一般而言,浊音的能量明显要高于清音,清音的能量又要高于杂音。根据这一点,在处理的过程可以设置一个阀值,只提取浊音相关的数据。同时还可以根据音量的变化大致判定清音变成浊音或浊音变成轻音的时刻。(2)在信噪比较高的情况下,可以用来作为区分有声和无声的依据。(3)用于端点检测,估测有声的声母或韵母的开始位置及结束位置。山于音量是一个相对的指标,与麦克风设备及其自身的设定有很大关系。2.3.3音高音高也称为音调,指的是发声体声带振动的频率,通过对基音周期求倒数来获得。音高足一种主观感觉,和音强音量之问其有互为补充的关系。可以用音量补充频率使人感觉音高相同,也可用频率来补充音量使人感觉响度相同。下图中足一咅叉振动发出的声音波形,该声音信号的采样频率为16000Hz。图2.1音叉发出的声音波形从中取出一巾贞的波形,包含256个点,波形如下:图2.2音叉的某一顿波形观察图中的波形可以发现,该声音信号具有明显的波形,图中横线连接的区域包含有5个周期,横线两端的波峰分别对应的是第36个点和第218个点。所以声音的频率为f=16000/[(218-36)/5]=439.56Hz。通常采用半音(semitone)为单位来表示音高,频率到半音的转换公式如下:采用公式一可得出该一音叉振动时发出的声音的音高为68.9827半音(semitone)。当频率为440Hz时,对应该的是69semitone,这与钢琴上的A4键的发音对应。由于音叉振动的频率非常接近于440Hz,故常用音叉来校准钢琴。3基于MATLAB的歌曲制作3.1音频信号的预处理对于用户哼唱的声音信号,由于受到环境和设备的影响。采取到的声音信号中往往包含有大量的噪声,这些噪声包括电气设备的噪声,周围环境的噪音等。同时也存在着相关的信号干扰电源工频干扰。预处理的操作一方面是为了尽可能的排除噪音和信号干扰对基频提取带来的影响,另一方面则是根据后期提取音频信号特征的需要,对音频信号进行进一步的处理。通常音频信号的预处理包括采样,预滤波,去噪,加权重,加窗分顿几个步骤。在实际操作中可以将“去噪”这一步放在基频的后期处理操作中,采用基于能量的过滤和平滑处理來去除噪声干扰和野点。因此,一个声音信号预处理的典型流程如下图所示:图3.1声音信号的预处理模块3.2乐理实验准备在五线谱的五根等距离的平行横线上,线上和线间都代表不同的音符,同时可以再五线谱的上方或下方加线或间,在五线谱上音的位置愈高,音也愈高,反之音的位置愈低,音也愈低。五线谱音符与简谱音阶对应的对照图如下。图3-2五线谱的线和间图3-3五线谱、简谱音阶对照示意图3.3音乐存储准备图3-4键盘样式和按键编号在上述键盘中,我们将A4键即编号为49的按键的频率作为基准频率,该键被命名为A-440,表示它的频率是440Hz,由于每个音阶相隔12个按键,那么每两个按键之间的频率跨度为2的12分之一Hz。这样可以计算得出编号为44的按键的频率为440×2(44-49)/12Hz。由此可以得出更加一般的频率计算公式:这样,只要我们能得到每个按键的编号,经过上述公式变换,便能得到每个按键的频率。频率的大小反映了音调的高低,记录音符的频率就相当于决定了按键在琴盘的位置。在解决了每个按键的频率问题之后,接下来还有一个问题要解决:每个音符持续的时间。在五线谱中,不同的音符代表不同的长度。音符有以下几种:全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符、六十四分音符。我们可以通过识别每个音符的外形来判断其持续的节拍数。然后再把所有的节拍数存储起来,就可以得到所有音符的时长了。图3-5乐谱截图比如在上面的五线谱截图中,在Violin1音轨,4/4表示以4分音符为一拍,每一节4拍。例如,在第一小节中前两个音符各占一拍,第三个音符占一拍半,第四个音符占半拍。而第一个节拍中的四个音符的pulse数分别为4,4,6,2,对pulse单位的说明如下:clear;clc;

A4=440;%标准音A4

pt=44100;p0=pt/2;%频率

scale12=A4/2^(9/12)*2.^((0:11)/12);%十二平均律

map=[135681012];%七音符

%乐谱

score=[1155665,...dodosolsollalasol-

4433221,...fafamimireredo-

5544332,...solsolfafamimire-

5544332,...solsolfafamimire-

1155665,...dodosolsollalasol-

4433221];%fafamimireredo-

%节拍

rhythm=repmat([1111112],1,6);

%歌词

lyric=['一闪一闪亮晶晶'...Twinkletwinklelittlestar

'满天都是小星星'...HowIwonderwhatyouare

'挂在天上放光明'...Upabovetheworldsohigh

'好像许多小眼睛'...likeadiamondinthesky

'一闪一闪亮晶晶'...Twinkletwinklelittlestar

'满天都是小星星'];%HowIwonderwhatyouare

%下面开始播放

fori=1:length(score)

fprintf(1,'%c',lyric(i))

wavplay(sin((1:rhythm(i)*p0)/pt*2*pi*scale12(map(score(i)))),pt);

ifmod(i,7)==0

fprintf(1,'\n');

end

end我们存储的时长是以pulse为单位的,所以乘以该变量就可以完成从乐谱节拍到存储音符时长的转换,得到每个音符持续的时间。至此,让MATLAB函数发出完整的旋律的所有要素我们已经准备好了。3.4音量和音调的动态波形显示该模块用来展现动态且富有张力的视觉效果,设计为时域和频域显示两部分。时域显示音量的强度,用一条不断跳跃的曲线表现,方法是将信号长度分段,每段约5000点,时长约0.1134秒。启动定时器timer,用plot指令将各段信号绘制成波形,显示在控件axes上。频域描述音调,用20根上下不断跳转的柱形图表现。其方法是将各段时间信号进行傅里叶变换获得其幅频特性,利用bar函数绘制成柱状图,显示在axes控件上。为增强动态效果和界面美感,将显示波形设计成红、橙、黄、绿、蓝、靛、紫七种颜色,由红、绿、蓝三基色合成。绘制时域波形时,直接在plot命令中设置三基色值,绘制频域波形时,用colormap命令设置色调。另外,该模块还设计了“切换显示”按钮,通过点击按钮可以不断在时域波形、频域波形以及无显示三者之间切换。3.5数据存储我们得到了每个音符的频率和时长,我们将数据存储在.mat文件中,mat文件不是文本格式的,而是二进制的,通过Matlab的load命令可以打开。下面是依次打开的过程:图3-6加载mat后的视图这里的两个结构体表明是对应的乐谱是双音轨。两个音轨叠加,可以得到更加悦耳的和弦。图3-7每个结构体的成员变量这是每个结构体里的成员变量,其中keys对应的是按键的编号,durations对应的是每个音符持续的时长,以pulse为单位。图3-8keys成员变量的值的集合这是打开keys成员变量后的视图,可以很清楚的看到,这是按键的编号集合。通过循环遍历,我们就可以得到每个按键的频率。3.6Matlab结构体仿真Matlab的结构体不用预先定义,直接使用即可。实例代码如下:x.Amp=7;x.phase=-pi/2;x.freq=100;x.fs=11025;x.timeInterval=0:(1/x.fs):0.05;x.values=x.Amp*cos(2*pi*(x.freq)*(x.timeInterval)+x.phase);='SinSignal';%echothecontentsofthestructure"x"plot(x.timeInterval,x.values);title();上述代码的运行效果如下:图3-9验证结构体使用方法得到的正弦波形程序流程图:图3-10程序流程图3.7实验改进(ADSR)ADSR用来调整合成的音乐的幅度,使之对听众的耳朵更加友好。x(t)=E(t)cos(2πfkeyt+Φ)公式中的E(t)就是我们应该施加的窗函数。一种普遍的做法是,利用一下函数来

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论