基于MATLAB的音乐电子琴制作剖析

合集下载

基于单片机的带音乐播放的电子琴设计

基于单片机的带音乐播放的电子琴设计

课题名称、主要内容和基本要求:进度安排:指导教师签名:评阅教师签名:毕业设计(论文)成绩:答辩委员会主任签名:摘要电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。

它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。

本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴。

以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有10个按键和扬声器。

本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。

众所周知,由于一首音乐是由许多不同的音阶组合而成的,而每个音阶则对应着不同的频率,因此我们可以利用不同的频率来进行音阶的组合,即可产生美妙的音乐了。

对于单片机来说,产生不同的频率非常方便,只要算出某一音频的周期,然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后,就将输出脉冲的I/O反相,然后重复计时,此半周期再对I/O反相,即可在I/O脚上得到此频率的脉冲。

因此我们可以利用单片机的定时器,使其工作在计数器模式MODE1下,改变计数值TH0及TL0来产生不同频率的信号。

从而产生不同的音符[1]。

关键词:音阶,频率,单片机AbstractElectronic organ is a modern electronic music technology and the product is a ne w type of keyboard instruments. It played an important role in modern music. SCM ha s powerful control functions and flexible programming characteristics. It has converge d with modern people's lives, become an irreplaceable part. The main content is AT89 S51 control of the core components, design of a electronic organ. SCM as a host to th e core, with the keyboard, speaker and other core modules. In the main control modul e has 16 keys and a speaker. The system is steady, its simple hardware circuits, softwa re functions, reliability of control system and high cost performance is its advantages. It also has certain practical and reference value.Well-known, the music is made up by many different scales, and each scale corresponds to different frequency, so we can use different frequency to make combination of scales, and then produce wonderful music.As for single-chip microcomputer, it is very convenient to produce different frequency, we just calculate an audio cycle, then this cycle divided by 2, namely half cycle time, using timer to time the half cycle time.Whenever timing, it will output pulse I/O reverse phase, and repeat the timing, the half cycle again to the I/O reversed-phase, then can get this frequency pulse from the I/O feet. So we can use microcontroller timer to make it work in the counter mode and generate different frequency signal. Thus produce different notes. Keywords: scales,frequency, single-chip microcomputer目录第一章绪论 (1)1.1电子琴的特点及研究意义 (1)1.2系统介绍 (1)第二章方案论证 (2)2.1单片机选择 (2)2.2键盘选择 (2)2.3功放电路选择 (3)第三章系统设计 (4)3.1单片机的介绍 (4)3.1.1单片机AT89S52基本知识 (4)3.1.2单片机AT89S52产品特点 (4)3.1.3单片机AT89S52的使用 (5)3.1.4单片机AT89S52的特性 (6)3.1.5AT89S52引脚功能与封装 (7)3.2LED数码管 (9)3.2.1LED数码管主要技术参数 (9)3.2.2LED数码管的引脚说明 (10)3.2.3数码管编码说明 (11)3.3LM386 (12)3.3.1LM386简介 (12)3.3.2LM386特性 (12)3.3.3LM386应用特点 (12)3.3.4LM386引脚图 (12)3.3.5LM386注意事项 (12)第四章硬件设计 (13)4.1总体电路设计 (13)4.2单片机最小系统电路 (14)4.3LM386功放电路 (14)4.4数码管显示电路 (15)4.5按键电路 (16)4.6按键指示灯电路 (17)4.7音乐产生方法 (17)第五章软件设计 (19)5.1程序流程图 (19)5.2S1-S8按键识别程序 (20)5.3S9键识别电路程序 (21)5.4音乐产生程序 (22)第六章调试过程 (26)6.1数码管显示乱码 (26)6.3按键处理问题 (26)结论 (26)参考文献 (27)谢辞 (28)附录 (29)附录一程序源代码 (29)附录二电路图 (41)第一章绪论1.1电子琴特点及研究意义本论文设计的为电子琴,电子琴又称作电子键盘,属于电子乐器(区别于电声乐器),发音音量可以自由调节。

MATLAB在电子琴制作与编程中的应用指南

MATLAB在电子琴制作与编程中的应用指南

MATLAB在电子琴制作与编程中的应用指南随着科技的不断发展,电子琴已经逐渐成为了一种受欢迎的音乐工具。

由于不限于传统的乐器结构,电子琴不仅可以模拟各种声音,还可以通过编程来实现更多的功能。

在电子琴的制作与编程过程中,MATLAB是一种常用且强大的工具。

本文将探讨MATLAB在电子琴制作与编程中的应用指南。

一、MATLAB简介与基本知识MATLAB是一种矩阵实验室,主要用于数学计算、数据处理、图像处理和建模等领域。

它提供了丰富的函数和工具箱,使得它成为了电子琴制作与编程的理想选择。

在使用MATLAB进行电子琴编程之前,我们需要对MATLAB有一定的了解与掌握。

首先,MATLAB具有强大的计算功能,可以进行各种复杂的数学运算。

这为电子琴的声音合成和信号处理提供了基础。

其次,MATLAB具有友好的图形界面和直观的编程语言,使得编写和调试电子琴的代码变得更加简单和高效。

最后,MATLAB还提供了广泛的工具箱,包括音频信号处理、数字滤波器设计等,这些工具箱可以方便地应用于电子琴的制作中。

二、电子琴声音合成与波形生成在电子琴制作中,声音合成和波形生成是其中的关键步骤。

使用MATLAB,我们可以通过编程来生成各种不同的声音效果。

首先,我们可以利用MATLAB中的信号处理工具箱来设计并生成特定频率的音调。

例如,使用MATLAB的sine函数可以生成正弦波,而使用square函数可以生成方波。

可以根据实际需求自定义音调,并根据自定义的频率生成相应的波形。

这使得我们能够根据不同的琴键来生成不同的音调,从而实现电子琴的声音合成。

此外,通过在波形中引入不同的参数变化,如振幅、频率、相位等,我们还可以模拟琴键按下和弹奏的过程中产生的音效,使得电子琴的音乐更加真实和生动。

这些参数可以根据实际需求进行调整,从而实现不同的音效变化。

三、电子琴控制与界面设计除了声音合成和波形生成,电子琴还需要实现用户与乐器之间的良好交互。

在电子琴的制作中,我们可以通过MATLAB来设计和实现电子琴的控制与界面。

Matlab中的电子音乐制作与音频合成技术

Matlab中的电子音乐制作与音频合成技术

Matlab中的电子音乐制作与音频合成技术引言电子音乐制作是一种结合技术和艺术的创造过程,而Matlab作为一种强大的数学计算软件,不仅可以应用于科学研究和工程设计,也能够用于音频处理和音乐创作。

本文将介绍Matlab中的一些电子音乐制作和音频合成技术,探讨如何利用Matlab来实现音频效果的设计和实现。

1. Matlab中的音频处理工具Matlab提供了许多音频处理工具箱,如Audio System Toolbox和DSP System Toolbox。

这些工具箱包含了各种音频处理算法和函数,可以用于音频的录制、分析、编辑和合成等方面。

通过这些工具箱,用户可以实现各种音频效果,如均衡器、压缩器、延时器等,并可以对音频进行滤波、混响、合成等处理。

2. 音频合成技术音频合成是电子音乐制作的重要环节之一,它可以通过合成器、采样和合成算法等方式来生成各种音频信号。

Matlab中的音频合成技术主要通过生成相应的音频波形来实现。

2.1 合成器Matlab提供了很多合成器函数,如sine、square、sawtooth等,用于生成不同类型的音频波形。

用户可以通过调整参数,如频率、振幅、相位等来控制波形的特性。

这些合成器函数可以通过简单的数学公式来实现生成音频波形的过程,使用户能够灵活地创作各种音乐效果。

2.2 采样合成除了使用合成器函数生成音频波形外,Matlab还提供了采样合成技术,用户可以通过将各种音频样本进行采样和合成来实现音频合成。

这种方法可以将现实世界中的各种音频素材转化为数字信号,并通过合成算法进行处理和合成。

3. 音频效果的设计与实现Matlab中的音频处理工具箱提供了丰富的音频效果函数和滤波器设计工具,使用户能够设计和实现各种音频效果。

3.1 均衡器均衡器是一种常用的音频效果器,它可以调整不同频段的音量,改变音频频谱的平衡来达到音频加工的效果。

Matlab中可以使用filter函数和滤波器设计工具来设计和实现不同类型的均衡器。

基于MATLAB数字电子琴的音乐喷泉控制系统设计

基于MATLAB数字电子琴的音乐喷泉控制系统设计

基于MATLAB数字电子琴的音乐喷泉控制系统设计作者:陈禄洪邵群英蔡伟强来源:《魅力中国》2018年第46期摘要:本设计是以MATLAB为出发点,STM32F103系列作为硬件支撑,并且搭载音乐喷泉效果的控制系统,通过软硬件结合,设计出友好的人机交互GUI界面,實现了基于MATLAB数字电子琴的音乐喷泉控制系统。

关键词:MATLAB;数字电子琴;音乐喷泉一、引言电子琴是艺术与现代电子技术融合的产物,是新时代乐器的骄子,它不但可以帮助我们的音乐老师进行传统音乐文化的教育教学工作,而且它又具备现代音乐,特别是电子音乐、电脑音乐的基本结构、特征,因而使我们的教师在音乐教学中更直接、更简便[1],对培养学生的音乐感受力,开发学生的想象力,加深学生对音乐的记忆力及提高学生的听辨力和鉴赏力都有积极作用。

而一部真正好的电子琴,是让学习者能更好融入到电子琴中。

基于此种情况,我们提出了基于MATLAB数字电子琴的音乐喷泉控制系统设计,本设计利用MATLAB的GUI界面来进行信号处理程序设计仿真出电子琴,并结合单片机实现音乐喷泉音响的视觉效果和听觉盛宴,更加激发学习者对学习电子琴的兴趣与耐心。

二、软件设计此部分设计大部分在MATLAB的GUI界面中完成,在界面设计之前弄清楚了不同音阶对应的不同频率的关系(如图1)。

在GUI界面设计中,用画图工具把电子琴的框架设计出来后,在每个琴键的回调函数中添加对应音阶的代码,编译运行后,能实现每个琴键可鼠标控制,且发出对应音阶的声音。

音阶代码如图2(以do为例)三、硬件设计此数字电子琴的音乐喷泉控制系统的硬件部分,主要是实现以硬件也能弹奏和喷泉的功能。

本设计的芯片采用STM32F103系列,外接12个直插轻触按键来模拟对应的琴键,控制12个音符喷头的启动,形成动感喷泉效果。

如图3(一)外接12个直插轻触按键来模拟对应的琴键,形成一个小型的直接按键弹奏的电子琴,来直接控制喷泉的触发。

基于MATLAB的数字电子琴设计

基于MATLAB的数字电子琴设计

*****************实践教学*******************题目:基于MATLAB的数字电子琴设计专业班级:姓名:学号:指导教师:成绩:摘要本次课设的任务是基于MATLAB设计一个数字电子琴,首先实现数字信号发生器的设计。

数字信号发生器是一种基于软硬件实现的波形发生器,可以实现各种基本波形的产生。

在工程的各种复杂信号是由这些基本信号叠加产生,因此它在工程分析和实验教学中有着广泛的应用,可用MATLAB实现。

MATLAB是一个数据分析和处理功能十分强大的工程实用软件,它的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令,在数字信号处理方面方便实用。

本文首先详细介绍了基于MATLAB的数字发生器的设计过程,实现了简单波形(正弦波、方波、三角波、锯齿波、白噪声、脉冲、阶跃)信号的具体实现方法。

其次介绍了利用该数字信号发生器产生的正弦波信号和声卡设计的简易电子琴。

关键词:MATLAB;数字信号发生器;简易电子琴目录前言 (1)一、数字信号发生器 (2)1.1图形用户界面的简介 (2)1.2设计流程 (2)1.3波形实现的基本原理 (3)二、电子琴的实现 (5)2.1简易数字电子琴的简介 (5)2.2实现原理 (5)三、基于MATLAB的仿真及结果分析 (6)3.1 GUI界面 (6)3.2编写M文件 (7)总结 (14)参考文献 (14)附录 (15)致谢 (22)前言MATLAB(矩阵实验室)是Matrix Laboratory的缩写,是一种用于算法开发、数据可视化、数据分析以及数值计算的高级计算机语言和交互式环境。

MATLAB 可以进行矩阵运算、绘制函数图像和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

Matlab环境下的图形用户界面(GUI)是由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面,可在图形用户界面内根据需要搭建图形,并对控件的回调函数进行编写,完成最完整的GUI界面编辑即可运行。

钢琴键设计与实现基于matlab的开题报告

钢琴键设计与实现基于matlab的开题报告

钢琴键设计与实现基于matlab的开题报告钢琴键设计与实现基于Matlab的开题报告一、研究背景钢琴是一种传统音乐乐器,其键盘设计和制造一直是科技和艺术的结合体。

钢琴键盘由黄铜锤和带有缝隙的木质键盘组成。

钢琴键可以控制琴弦之间的间隔和弦的音高,通过键盘发出声音。

对于钢琴键盘的设计,不仅需要考虑键盘的外形美学,还要确保声学效果的高品质。

因此,设计和制造钢琴键盘需要考虑多种条件,如材料、形状、重量、弹力等,这些因素将直接影响到钢琴的品质和声音。

二、研究目的本项目旨在设计并实现基于Matlab的钢琴键盘。

研究将深入挖掘钢琴键盘的设计和制造方法,借助Matlab软件结合先进的计算和仿真技术来设计和构建高品质的钢琴键盘。

本研究期望实现以下目标:1.分析钢琴键盘的设计和制造要素,确定各种参数的规范范围。

2.结合Matlab的计算机仿真技术,对钢琴键的材料、形状、重量、弹力进行建模和仿真。

3.设计并实现基于Matlab的钢琴键盘,验证仿真结果。

三、研究内容1. 钢琴键盘的设计和制造要素分析通过对钢琴键盘形状、材料、重量、弹力等关键参数进行详尽的分析和研究,确定了钢琴键盘设计和制造的规范范围和要素。

由此,为后续的模拟和仿真提供了依据。

2. 基于Matlab的钢琴键建模和仿真使用Matlab软件进行钢琴键建模,模拟钢琴键弹力、材料、形状等关键参数进行仿真,评估不同参数下的钢琴键的声音品质。

通过建模和仿真,预测键盘的性能表现、调整参数,从而满足音乐家和录音工程师的实际需求。

3. 基于Matlab的钢琴键盘实现在通过建模和仿真分析之后,基于Matlab设计实现钢琴键盘。

并对实现结果进行实验验证和分析。

四、研究意义本研究将结合Matlab的计算机仿真技术和音乐乐器软件系统设计和制造出高品质的钢琴键盘。

此外,本研究的第一阶段将分析键盘设计和制造方面的关键要素,为其他音乐乐器的键盘设计和制造奠定基础。

五、研究计划1.确定钢琴键盘的设计范围。

MATLAB在电子音乐合成与创作中的应用指南

MATLAB在电子音乐合成与创作中的应用指南

MATLAB在电子音乐合成与创作中的应用指南引言电子音乐合成与创作作为音乐领域的一个重要分支,一直以来都受到许多音乐家和音乐爱好者的追捧。

在数字化时代,计算机技术的发展为电子音乐合成与创作提供了更多可能性。

而MATLAB作为一种强大的科学计算软件,也在电子音乐领域发挥着重要的作用。

本文将介绍MATLAB在电子音乐合成与创作中的应用指南,并探讨其在声音合成、音频处理以及音乐创作方面的应用。

声音合成声音合成是电子音乐合成与创作中的重要环节,它可以通过模拟或合成声音波形,产生各种音效和声音效果。

MATLAB提供了一系列函数和工具箱,可以帮助实现声音合成的过程。

首先,MATLAB提供了信号处理工具箱,其中包含了许多用于声音合成的函数。

例如,可以使用MATLAB中的sin函数生成正弦波信号,通过改变频率、幅度和相位等参数,可以合成出不同音高、音色和音调的声音。

此外,还可以利用MATLAB的加法和乘法运算,将多个不同频率的正弦波信号叠加在一起,生成更复杂的声音波形。

其次,MATLAB还提供了滤波器设计工具箱,可以用于设计各种数字滤波器,用来改变声音波形的频率响应。

通过选择不同类型的滤波器和调整其参数,可以实现音色的改变和音频效果的增强。

滤波器设计工具箱还提供了可视化界面,方便用户直观地观察滤波器的频率响应,并进行实时调整。

此外,MATLAB还支持数字信号处理算法的开发和测试,通过编写自定义的算法,可以实现更精确和灵活的声音合成。

用户可以利用MATLAB的编程功能,结合音频信号的特征和自己的创意,开发出各种创新的声音合成算法。

音频处理音频处理是电子音乐合成与创作中不可或缺的一部分,它可以对现有的音频进行修改、编辑和优化,以获得更好的音质和音效。

MATLAB提供了丰富的音频处理工具和函数,可以方便地进行音频处理。

首先,MATLAB提供了音频文件的读取和写入函数,可以读取常见的音频文件格式(如WAV、MP3等),并将处理后的音频保存为新的文件。

基于matlab的数字电子琴信号处理系统的设计与实现

基于matlab的数字电子琴信号处理系统的设计与实现

《工程信号处理》大作业—基于Matlab的信号处理系统的设计与实现—伍星、柳小勤、刘畅机电工程学院KUST-HMI联合实验室2010.03目录1预备知识 (3)2项目意义 (3)3项目简介 (3)4项目要求 (3)4.1“数字电子琴”的软件功能 (3)4.2“数字频谱分析仪”的软件功能 (4)4.3“数字均衡器”的软件功能 (5)5编码规范 (6)5.1每个程序文件(.M文件)开头的H ELP部分 (6)5.2程序结构和注释 (6)5.3代码中的变量定义规则 (6)6项目提交 (7)1预备知识机械工程测试技术、工程信号处理、虚拟仪器、MATLAB等。

2项目意义1)将掌握Matlab软件开发过程的基本理论、基本知识和基本技能,为开展学位论文课题研究打下坚实的基础。

2)熟悉基于Matlab平台的若干信号处理系统开发及调试方法。

3)培养科研的团队协作精神。

3项目简介在Matlab开发平台上开发若干信号处理系统——“数字电子琴、数字频谱分析仪、数字均衡器”。

4项目要求设计“数字电子琴、数字频谱分析仪、数字均衡器”三个信号处理系统,具体要求如下:1)自由组合分组,每组4人;由班长将分组名单发至教师email。

2)相关文献资料阅读和综述分析、项目设计方案制订、主要技术难点和技术实现方法。

3)使用M函数设计具有GUI(图形化用户界面)的三个信号处理系统。

4)每组提交一份源程序;撰写不少于10页的《项目研究报告》项目报告,提交纸质版和电子版各1份。

5)每组准备课堂汇报PPT,讲解整个项目的设计、开发、分工等情况。

4.1“数字电子琴”的软件功能1)数字信号发生器的功能:能够产生正弦波、方波、三角波等常见的波形的数字信号,并且提供了图形界面用于选择波形、频率、幅值与相位。

能够根据用户指定的波形和参数产生相应的数字信号,然后将数字信号写入声卡的缓冲区,最后由声卡播放出相应的声音。

2)数字电子琴的功能:电子琴的每个音阶均对应一个特定频率的信号,通过调用数字信号发生器产生一系列指定的频率的声音,从而达到虚拟的电子琴的功能,界面中包含A、B、…、O共15个琴键,鼠标按下时即发声,松开时发声停止。

基于MATLAB的音乐电子琴制作

基于MATLAB的音乐电子琴制作

基于MATLAB的音乐电子琴制作简述:电子琴的每个音阶均对应一个特定频率的信号,通过调用数字信号发生器产生一系列指定的频率的声音,从而达到虚拟的电子琴的功能。

本次设计是基于MATLAB GUI 程序实现的一个音乐键盘仿真系统。

1 功能介绍总体设计框图如下图所示,其包括单音键盘发音模块,音效长短的选择模块,包络的选择模块,实现键盘代替鼠标输入模块,双音多频模块,演奏音乐模块,播放歌曲,视频模块包括对文件播放的暂停,停止和复位,多键盘输入对输入后统一播放模块和画图模块。

Matlab的数据采集工具箱(DAT)提供了一系列的函数和命令来实现实时模拟信号的输出, 通过调用这些函数和命令可以直接控制声卡输出虚拟信号。

只需要一台带有普通多媒体声卡并安装了Matlab 软件的计算机就可以满足要求实现虚拟信号的输出, 系统结构简单方便。

交互界面如图1所示:图1 程序的交互界面1)单音键盘发音模块设计一个带参子函数实现键盘的发音功能,当实现需要实现音阶的播放时,只要调用这个子函数,并根据不同音阶、不同音调的频率改变子函数的参数即可。

2) 音效长短的选择模块制作一个button group的组控件分别选择不同的控件实现不同的音效长短,音效的长短是通过改变播放一个音阶的时间长短来实现的。

3)包络的选择模块制作一个button group的组控件分别选择不同的控件实现不同的包络,在模块一的基础上,设置选中不同的控件分别对应不同的包络,x为不同包络(如正弦波、三角波、指数等)的表达形式,将x与模块一中实现单音键盘发音的函数相乘时便可实现不同形式的衰减,实现音型的改变。

4)实现键盘代替鼠标输入模块根据计算机键盘上的不同按键对应不同的ASCII码的值,利用函数get()获取当前所按下的数字键对应的ASCII码的值,根据 ASCII码的值判断对应是按下键盘的值。

并执行相应音阶的功能键。

5)双音多频模块通过设置一个radio button 来实现双音多频的功能,设置一个全局变量,当选中该控件时,全局变量的值改变,即在带参的子函数中增加它的频率分量。

具有自动乐曲演奏功能的电子琴设计方案

具有自动乐曲演奏功能的电子琴设计方案

具有自动乐曲演奏功能的电子琴设计方案随着科技的发展,电子琴作为一种数字化、电子化的乐器,也越来越受到欢迎。

而具有自动乐曲演奏功能的电子琴更是一种新的趋势,为乐手们带来了更多的便捷和乐趣。

本文将为大家介绍一个具有自动乐曲演奏功能的电子琴的设计方案。

一、方案介绍本设计的电子琴将采用基于FPGA的设计方法,实现自动乐曲演奏的功能。

利用现代数字技术,将琴键的音高、节拍等信息处理成数字信号,以FPGA实现自动演奏功能,与琴键输入信号结合出现最终的演奏效果。

各个部分的实现如下:(一)键盘控制模块键盘控制模块主要负责对乐器键盘的键位的输入信息进行扫描,将信息传到音源控制模块。

具体实现采用的是键盘矩阵扫描的方法,通过多路复用器依次对各个键盘扫描,将扫描结果输出,供音源控制模块使用。

(二)音源控制模块音源控制模块负责将键盘控制模块输出的键位信息进行解码,以获得干净的音符信息。

该模块还负责产生不同的音色、节拍和音量等特殊音效,便于播放不同风格的音乐。

(三)FPGA控制器FPGA控制器主要负责控制整个电子琴的功能。

它包含了控制不同部分之间的数据交换和通信的逻辑,同时还负责执行自动演奏的算法。

FPGA控制器可以根据内部预先存储的midi乐曲信息,自动播放乐曲,实现自动演奏的功能。

(四)输出模块输出模块主要是通过声音放大器输出音乐。

具体实现方式包括选用AC或DC电源驱动,根据工作条件选择电容或者电阻等元件。

在实际设计中,还需辅助加入一些电容和阻值的计算和测试,保障输出音质的稳定和清晰。

二、核心技术本设计方案的核心技术是数字信号处理和自动演奏的算法。

通过数字信号处理,将琴键输入信息处理成数字信号,再通过FPGA控制器进行逻辑控制,最终输出音频信号,实现自动乐曲演奏的目的。

三、设计优势1、精确可靠本设计采用数字信号处理,减少了人工操作的失误,提高了演奏的准确性和可靠性。

同时,利用FPGA控制器,可以对音符和节拍等信息进行逻辑控制,确保演奏效果良好。

毕业设计-基于matlab软件的音乐合成

毕业设计-基于matlab软件的音乐合成

河北经贸大学毕业论文基于MATLAB软件的音乐合成专业名称:电子信息工程班级:学生姓名:指导老师:完成时间:2015年5月摘要本设计利用MA TLAB软件,通过MA TLAB GUI构建一个具有图形用户界面的音乐合成系统。

该系统能实现音乐的简单合成、音乐的降噪处理、音乐的加谐波处理、音乐的升降度处理、音乐的时域和频域波形图显示及利用傅里叶级数原理合成音乐的操作。

本系统应用模块化的思路进行设计,将系统分为四个模块,分别为简单合成及处理音乐的模块、利用傅里叶变换分析音乐频谱的模块、基于傅里叶级数合成音乐的模块和音乐字幕动态显示的模块。

本论文阐述了整个系统详细的设计过程,而针对每个模块的设计都有详细的理论基础为依托,包括原理及设计程序,并且有仿真效果的演示。

该软件系统作为教学辅助软件可以为语音信号处理课程的教学提供一定的帮助,可以让学生们更好地深入理解信号与系统等主干课程的内容,充分发挥自身的创新能力与实践能力。

该系统可以通过选取不同的算法,对音乐分别进行处理,基本做到抑制噪声,提高音乐质量,有利于更高层次的处理与应用。

此外,从整体效果上看,该系统的用户应用界面友好、便于操作,通过菜单、控件的使用可以方便的选取不同的方法,设置不同的参数以便于用户操作使用。

系统通过对各种处理效果的演示,也可以让用户更直观地了解简单音乐处理的几种方法,并在各种相应处理前后的对比中让用户更容易接受与其对应的方法及特点。

关键词音乐合成;MTALAB;GUI;傅里叶变换AbstractThe design in this paper uses the MATLAB software to construct a music synthesis system with a graphical user interface by MATLAB GUI.The system can achieve simple music synthesis,the processing of reducing music noise,the treatment of music with harmonic,the processing of raising and lower octave,displaying waveform in time domain and frequency domain and synthesis of music based on Fourier series.This system takes the idea of modular design,divided into four modules, respectively including the module of music of simple synthesis and processing,the module of music spectrum analysis through using the Fourier transform,the module of music synthesis based on Fourier series,the module of displaying music subtitle dynamically.This paper,including the principle and program design and simulation results demonstrate, describes the design process of the system in detail.Each module has a detailed theoretical basis for support.As a teaching aid software can provide some help for the speech signal processing course in teaching,which can help students understand the signal and system course and give full play to students’ innovation ability and practice ability.Through selecting different algorithms,the system can dispose music respectively, suppress noise basically,improve the quality of music and avail to deal with the higher level.In addition,the graphic user interface of the system is friendly and easy to operate. Select different methods and set different parameters for users by using the menu,controls.Through a variety of demonstrations of effects,the system also makes users understand several ways of dealing with music more intuitively and in compare with before and after the all treatments,we can accept the corresponding methods and characteristics more easily.Keywords Music synthesis; MTALAB;GUI;Fourier transform目录1 绪论 (1)1.1 研究背景及意义 (1)1.2 研究的主要内容 (1)2 MA TLAB软件的简介 (3)2.1 MA TLAB的发展史 (3)2.2 MA TLAB的系统构成 (4)3MA TLAB音乐合成的原理 (5)3.1 所涉及的乐理知识简述 (5)3.1.1 音调与唱名 (5)3.1.2 音色与谐波 (5)3.1.3 十二平均律 (5)3.2 傅里叶变换与频谱分析 (6)4 MA TLAB音乐合成系统的总体设计 (7)4.1 系统的总体设计 (7)4.2 GUI界面的设计 (7)4.2.1 启动GUIDE (8)4.2.2 GUIDE设计环境 (8)4.2.3 GUI界面的功能设计 (9)5 MA TLAB音乐合成系统的设计与实现 (11)5.1 简单合成及处理音乐模块的设计与实现 (11)5.1.1 合成《社会主义好》 (11)5.1.2 加包络,除噪音 (12)5.1.3 音乐升降度处理 (13)5.1.4 音乐加谐波处理 (15)5.2 用傅里叶变换分析音乐频谱模块的设计与实现 (16)5.3 基于傅里叶级数合成的音乐模块的设计与实现 (20)5.4 音乐《小星星》字幕动态显示模块的设计与实现 (21)6 系统的调试与运行 (24)6.1 音乐的播放、暂停的调试与运行 (24)6.2 傅里叶变换分析音乐的调试与运行 (25)总结 (26)参考文献 (27)基于MA TLAB软件的音乐合成1 绪论1.1研究背景及意义如今,信息化、数字化程度越来越高,语音信号的处理技术作为基于数字信号处理技术与语音学知识对语音信号进行处理的新兴技术被越来越多的高科技产业广泛应用,这项技术成为信息科学工程与研究领域的核心技术之一。

matlab电子琴说明书

matlab电子琴说明书

m a t l a b电子琴说明书-CAL-FENGHAI.-(YICAI)-Company One1基于MATLAB的数字电子琴设计日期:2011-3-25姓名:王之海、郑俊超、张楠、杜坤组号:第一组1.目标与范围随着计算机软硬件技术的发展,越来越多现实物品的功能能够由计算机实现。

也就是我们经常所说的将硬件设备软件化,这样做的好处很多,比如说将成本降低,易于实现,修改容易并且可以进行仿真。

现在比较成熟的这类软件有很多,比如说LABVIEW。

基于这样的考虑我们进行了数字电子琴的模拟仿真实验。

这样一个实验的进行会为以后的学习工作中奠定一定的基础。

2.信号处理原理数字信号发生器的功能就是将数字信号通过D/A转换变成所需要的模拟信号。

由于声卡本身具有D/A转换的功能,从而可以利用声卡在计算机了模拟信号发生器。

声卡的D/A转换机理是定时将声卡缓冲区中的内容转换成模拟信号并输出,所以软件所做的即是向声卡缓冲区中写数据。

以正弦信号为例,其模拟信号计算工时如下为实现数字信号的发生,在程序中先根据公式计算出需要存放到缓冲区的数据,以数组的形式存放,然后将数据存放入声卡的缓冲区。

对于方波,y=sign(sin(2*pi*f*t+p))对于其它波形,可以用类似方法实现。

软件的流程图如图所示数字电子琴的流程图3.系统的功能分析软件的功能由数字信号发生器和数字电子琴两部分组成。

(1)数字信号发生器的功能能够产生正弦波、方波、三角波等常见的波形的数字信号,并且提供了图形界面用于选择波形、频率、幅值与相位。

能够根据用户指定的波形和参数产生相应的数字信号,然后将数字信号写入声卡的缓冲区,最后由声卡播放出相应的声音。

(2)数字电子琴的功能1)数字电子琴的功能是基于数字信号发生器的,通过条用数字信号发生器产生一系列指定的频率的声音,从而达到虚拟的电子琴的功能,界面中包含do/rai/mi…共16个琴键,鼠标按下时即时发声秒;并可通过键盘敲击按键进行琴音播放。

(数字信号发生器+电子琴)实验报告

(数字信号发生器+电子琴)实验报告

试验一数字信号发生器和电子琴制作一、试验目的1.生疏matlab 的软件环境,把握信号处理的方法,能在matlab 的环境下完成对信号的根本处理;2.学会使用matlab 的GUI 控件编辑图形用户界面;3.了解matlab 中一些常用函数的使用及常用运算符,并能使用函数完成根本的信号处理;二、试验仪器计算机一台,matlab R2023b 软件。

三、试验原理1.数字信号发生器MATLAB 是矩阵试验室〔Matrix Laboratory 〕的简称,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB 和Simulink 两大局部。

的常用正弦波、方涉及三角波,可以通过matlab自带的函数实现,通过转变函数的幅值、相位和频率可以得到不同的信号。

正弦信号:y=A*sin〔2*pi*f*t〕;方波信号:y=A*square(2*f*pi*x+c);三角波信号:y=A*sawtooth(2*pi*f*x+c);2.电子琴电子琴的每个音阶均对应一个特定频率的信号,通过调用数字信号发生器产生一系列指定的频率的声音,从而到达虚拟的电子琴的功能。

界面中包含 1、2、…、7 共 7 个琴键,鼠标按下时即发声,松开时发声停顿。

同时能够产生正弦波、方波、三角波等常见的波形的数字信号,然后将数字信号写入声卡的缓冲区,最终由声卡播放出相应的声音。

音乐的七个音阶的主频率分别是 131Hz、147Hz、165Hz、175Hz、196Hz、220Hz 和247Hz,分别构造正弦波、方波和三角波,可以组成简洁的电子琴。

四、试验内容1.数字信号发生器的制作(1)搭建GUI 界面图形用户界面〔Graphical User Interface ,简称GUI,又称图形用户接口〕是指承受图形方式显示的计算机操作用户界面。

与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于承受。

Matlab中的音乐处理与乐曲生成方法

Matlab中的音乐处理与乐曲生成方法

Matlab中的音乐处理与乐曲生成方法音乐是人类文化的一部分,也是人们生活中不可或缺的重要元素。

如今,随着数码技术的快速发展,音乐处理和乐曲生成在科技领域中也越来越重要。

Matlab作为一个功能强大且灵活的编程语言,被广泛应用于音乐处理和乐曲生成的领域。

本文将重点介绍Matlab中的音乐处理方法和乐曲生成技术。

首先,让我们先了解一下Matlab的基本概念。

Matlab是一种专业的数学计算软件,其名字来源于Matrix Laboratory(矩阵实验室)的缩写。

它提供了许多内置函数和工具箱,用于数据分析、信号处理、图像处理等各种科学计算领域。

在音乐处理和乐曲生成方面,Matlab将输入的音频信号转换成数字信号,并通过算法进行处理和生成。

音乐处理是指对音频信号进行分析、处理和修改的过程。

在Matlab中,可以通过各种工具箱和函数来实现音乐处理。

其中,最常用的是Matlab音频工具箱(Audio Toolbox)。

这个工具箱提供了处理音频信号的函数和工具,例如读取音频文件、提取音频特征、进行音频滤波等。

音频特征提取是音乐处理中的一个重要步骤。

在Matlab中,可以使用函数"audioread"来读取音频文件,然后使用函数"miraudio"来提取音频特征。

常用的音频特征包括频谱、时域特征、频域特征、谱质心等。

这些特征可以用于音频信号分类、音频信号相似性计算等。

除了音乐处理,Matlab还提供了一些乐曲生成的方法。

其中,最常见的方法是使用MIDI音乐文件进行乐曲生成。

MIDI(Musical Instrument Digital Interface)是一种数字音乐格式,用于记录音乐的信息和指令。

在Matlab中,可以使用函数"midi2audio"将MIDI文件转换成音频信号,然后进行进一步的乐曲生成和处理。

在乐曲生成方面,Matlab中还有其他一些方法和工具可以使用。

基于Matlab的数字电子琴的设计与实现

基于Matlab的数字电子琴的设计与实现

工程数字信号处理算法与实践之基于Matlab的数字电子琴的设计与实现学生:吕柳燕班级:机硕0701学号:200770438指导教师:何岭松日期:2007-9-28基于Matlab的数字电子琴的设计与实现电子琴发展概况电子琴是随着电子技术的广泛应用而产生。

1959年,世界上第一台全晶体管双排键电子琴在日本诞生。

从此,电子琴技术不断发展成熟,电子琴的普及也越来越广。

电子琴在中国的推广始于20世纪八十年代,至今在音色、音质、演奏的便利性等方面都达到了相当成熟的地步,而且随着集成电路技术的发展,其升级换代可以在保持原有结构不变的情况下,通过简单的芯片更换实现。

但是,电子琴也有明显的不足之处:与非电子乐器,如钢琴、管弦乐器等的协奏问题,限制了电子琴在重要音乐场所的使用,这极大的影响了电子琴的应用和推广。

协调电子琴与非电子乐器的协奏,是当前音乐界人士和电子琴开发商的当务之急。

电子琴发音原理物体振动时会发出声音,振动的频率不同,声音的音调就不同。

在电子琴里,虽然没有振动的弦、簧、管等物体,却有许多特殊的电装置,每个电装置一工作,就会使喇叭发出一定频率的声音。

当按动某个琴键时,就会使与它对应的电装置工作,从而使喇叭发出某种音调的声音。

电子琴的音量控制器,实质上是一个可调电阻器。

当转动音量控制器旋扭时,可调电阻器的电阻就随着变化。

电阻大小的变化,又会引起喇叭声音强弱的变化。

所以转动音量控制旋扭时,电子琴发声的响度就随之变化。

当乐器发声时,除了发出某一频率的声音──基音以外,还会发出响度较小、频率加倍的辅助音──谐音。

我们听到的乐器的声音是它发出的基音和谐音混合而成的。

不同的乐器发出同一基音时,不仅谐音的数目不同,而且各谐音的响度也不同。

因而使不同的乐器具有不同的音品。

在电子琴里,除了有与基音对应的电装置外,还有与许多谐音对应的电装置,适当地选择不同的谐音电装置,就可以模仿出不同乐器的声音来。

基于 Matlab的数字电子琴实现原理振动频率不同,音调就不同。

基于单片机的微型电子琴建模

基于单片机的微型电子琴建模

基于单片机的微型电子琴建模随着科技的不断发展,单片机技术在各个领域得到了广泛应用,其中包括音乐领域。

单片机在音乐电子琴中的应用,可以实现丰富的音色和多功能的音乐演奏效果。

本文将介绍基于单片机的微型电子琴建模,包括硬件和软件的设计。

本文还将探讨在设计过程中的一些关键技术和难点,并给出相应的解决方案。

一、微型电子琴的整体设计思路微型电子琴的整体设计思路是基于单片机来实现的。

在硬件方面,微型电子琴主要包括音频输入输出模块、按键模块、显示模块和电源模块。

在软件方面,需要设计合适的算法来处理音频信号和按键输入,并实现琴键的控制和音色的切换等功能。

二、硬件设计1. 音频输入输出模块音频输入输出模块是微型电子琴的核心部件之一。

它包括声音的输入和输出。

声音输入通常采用麦克风或音频接口,声音输出则可通过扬声器或耳机接口实现。

音频输入输出模块需要配合单片机进行声音的采集、处理和播放。

2. 按键模块按键模块是微型电子琴的另一个核心部件。

它由多个琴键组成,每个琴键对应一个音调或音符。

按键模块需要能够准确地检测琴键的按下和抬起动作,并将按键的状态信息传输给单片机进行处理。

3. 显示模块显示模块用于显示音乐演奏时的相关信息,比如琴键的音符、音量大小、音色选择等。

常见的显示模块包括数码管、液晶显示屏和LED等。

4. 电源模块电源模块负责为微型电子琴提供稳定的电源供应。

由于微型电子琴通常需要使用电池供电,因此电源模块还需要考虑节能和寿命的问题。

1. 音频处理算法音频处理算法是微型电子琴的核心部分。

它需要能够实时地对采集到的声音信号进行分析和处理,以实现音符的识别、音色的切换和音量的调节等功能。

常见的音频处理算法包括FFT(快速傅里叶变换)、滤波器设计、音频编解码等。

2. 按键输入处理算法按键输入处理算法用于对琴键的按下和抬起动作进行检测和处理,以实现音符的选择和音符的演奏。

这涉及到按键扫描算法、按键状态的存储和切换等内容。

3. 控制算法控制算法用于微型电子琴的整体控制。

基于单片机的微型电子琴建模

基于单片机的微型电子琴建模

基于单片机的微型电子琴建模微型电子琴是一种基于单片机的电子乐器,它可以模拟出各种音乐乐器的声音,如钢琴、吉他、小提琴等,同时还可以通过按键演奏出各种音乐曲目。

在本文中,我们将讨论如何基于单片机制作一款微型电子琴,并进行建模分析。

一、硬件设计为了制作一款微型电子琴,首先需要选取合适的硬件设备。

在本项目中,我们选择使用STM32单片机作为主控芯片,因为它具有强大的性能和丰富的外设接口,非常适合用于音乐合成的应用。

除了主控芯片外,还需要选择合适的按键、音频输出设备和显示屏。

按键用于演奏音符,音频输出设备用于发声,显示屏用于显示当前演奏的音符和曲目信息。

在硬件设计中,需要合理布局这些设备,并设计合适的电路连接和供电方案,以确保整个系统的稳定和可靠性。

还需要考虑外设设备的尺寸和重量,以便将其集成到一个紧凑的外壳中,从而构成一款便携式的微型电子琴。

在软件设计中,主要需要实现音乐合成和按键控制两个功能。

音乐合成是通过模拟声音波形来模拟不同乐器的声音,按键控制是通过按键输入来演奏音符。

对于音乐合成功能,首先需要设计合适的算法来生成不同乐器的声音波形。

一种常用的方法是使用加法合成技术,通过叠加不同频率和幅度的正弦波来模拟乐器的音色。

还可以使用现成的乐器音色样本,通过数字信号处理技术来实现音乐合成。

对于按键控制功能,需要设计合适的按键扫描算法和音符映射表。

按键扫描算法用于检测按键输入,音符映射表用于将按键输入映射到具体的音符和音高。

还需要设计合适的节奏控制和声音效果,以实现丰富多彩的音乐演奏。

三、建模分析在完成硬件设计和软件设计后,需要进行建模分析来评估整个系统的性能和稳定性。

建模分析可以帮助我们发现潜在的问题和改进空间,从而优化整个系统的设计和实施方案。

需要进行电路建模分析,评估电路连接和供电方案的稳定性和可靠性。

通过电路建模分析,可以确定电路元件的参数和特性,从而优化电路连接和供电方案。

需要进行音乐合成算法的建模分析,评估音乐合成的性能和音色效果。

MATLAB技术音乐分析方法

MATLAB技术音乐分析方法

MAT1AB技术音乐分析方法介绍音乐是人类文化中不可或缺的一部分,它有着丰富多样的样式和形式。

随着科技的发展,人们对音乐进行分析和研究的需求也逐渐增加。

MAT1AB作为一种流行的科学计算软件,可以提供丰富的工具和算法来分析音乐。

本文将探讨一些MAT1AB技术在音乐分析方面的应用。

音频信号处理在音乐分析中,首先需要将音频信号转换为数字形式,以便进行计算和分析。

MAT1AB提供了强大的信号处理工具箱,可以实现音频信号的读取、处理和分析。

通过MAT1AB中的函数,我们可以轻松地将音频文件加载到变量中,并进行预处理操作,比如去噪、均衡化和滤波等。

频谱分析频谱分析是音乐分析的重要一环,它可以揭示出音频信号中不同时域和频域的特征。

MAT1AB提供了快速傅里叶变换(FFT)和短时傅里叶变换(STFT)等函数,可以将音频信号转换成频域表示。

通过对频谱数据的分析,可以提取出音乐中的频谱特征,比如频谱图、频谱包络和频谱质心等。

节奏分析节奏是音乐中的重要元素,了解音乐的节奏特征对分析和理解音乐非常重要。

MAT1AB提供了一系列的时间序列分析工具,可以用于检测和提取音频信号中的节奏信息。

通过对信号进行重采样和分析,我们可以得到节拍点、节拍强度和节拍频率等节奏特征。

音高分析音高是音乐中的基本特征之一,它可以用于分析音乐的旋律和和声。

MAT1AB提供了多种音高分析算法,可以用于检测和提取音频信号中的音高信息。

通过调用MAT1AB 中的音高分析函数,我们可以得到音高轮廓、音高曲线和音高直方图等音高特征,从而对音乐的旋律进行定量分析和比较。

情感分析音乐不仅仅是一种艺术形式,也承载着人们的情感和情绪。

MAT1AB可以通过分析音频信号的特征来实现音乐的情感分析。

通过对振幅、节奏、音高等各种特征的分析,可以推断出音乐中所包含的情感倾向。

这种情感分析的结果可以应用于音乐推荐系统、情感分类和情感识别等应用中。

机器学习方法除了以上介绍的传统分析方法,MAT1AB还提供了丰富的机器学习工具箱,可以用于音乐分类、拟合和聚类等任务。

基于MATLAB的数字信号发生器及简易电子琴设计

基于MATLAB的数字信号发生器及简易电子琴设计

基于MATLAB的数字信号发生器及简易电子琴设计摘要数字信号发生器是一种基于软硬件结合实现的函数波形产生仪器。

在工程实践中需要检测和分析的各种复杂信号均可分解成各种简单信号之和,而这些简单信号皆可由数字信号发生器模拟产生,因此它在工程分析和实验教学中有着广泛的应用。

MATLAB是一个数据分析和处理功能十分强大的工程实用软件,它的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令,在数字信号处理方面方便实用。

本文介绍了一种使用MATLAB建立一个简单数字信号发生器的基本流程,并详细叙述了简单波形(正弦波、方波、三角波、锯齿波、白噪声、脉冲、阶跃、斜坡)信号的具体实现方法。

最后,利用简单的正弦波信号和PC的声卡设计了一个简易电子琴。

关键字:MATLAB,数字信号发生器,简易电子琴1概述随着计算机技术和测试技术的不断发展,传统的测试仪器正向虚拟化方向发展,特别是在试验教学领域。

虚拟仪器作为现代仪器技术和计算机技术深层次结合的产物,更是得到了广泛应用。

信号发生器原本是模拟电子技术发展的产物,但本文设计出的数字信号发生器是基于计算机软硬件实现的数字信号发生器,是一种虚拟仪器。

2 设计原理常用的数字信号发生器一般可产生正弦信号、方波信号、三角波信号、锯齿波信号、白噪声信号、脉冲信号、阶跃信号、斜坡信号等。

此时的数字信号又可称为离散信号,即时间为离散变量的信号。

它只在离散时间上给出函数值,是时间上不连续的“序列”。

离散时间的间隔是均匀的,以t ∆表示。

t ∆的值由信号的采样频率fs 决定。

为保证采样后信号能真实地保留原始模拟信号信息,信号采样频率必须至少为原信号中最高频率成分的2倍。

这是采样的基本法则,称为采样定理。

本文为了使产生的数字信号更接近原始的模拟信号,采用的采样频率为原始信号频率的30倍。

MATLAB 程序提供了常用的各种基本信号的生成函数。

本设计需模拟的八种信号大部分都直接使用了MATLAB 提供的函数,只有少数几个信号没有调用函数,直接编写的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MATLAB的音乐电子琴制作简述:电子琴的每个音阶均对应一个特定频率的信号,通过调用数字信号发生器产生一系列指定的频率的声音,从而达到虚拟的电子琴的功能。

本次设计是基于MATLAB GUI 程序实现的一个音乐键盘仿真系统。

1 功能介绍总体设计框图如下图所示,其包括单音键盘发音模块,音效长短的选择模块,包络的选择模块,实现键盘代替鼠标输入模块,双音多频模块,演奏音乐模块,播放歌曲,视频模块包括对文件播放的暂停,停止和复位,多键盘输入对输入后统一播放模块和画图模块。

Matlab的数据采集工具箱(DAT)提供了一系列的函数和命令来实现实时模拟信号的输出, 通过调用这些函数和命令可以直接控制声卡输出虚拟信号。

只需要一台带有普通多媒体声卡并安装了Matlab 软件的计算机就可以满足要求实现虚拟信号的输出, 系统结构简单方便。

交互界面如图1所示:图1 程序的交互界面1.1功能模块1)单音键盘发音模块设计一个带参子函数实现键盘的发音功能,当实现需要实现音阶的播放时,只要调用这个子函数,并根据不同音阶、不同音调的频率改变子函数的参数即可。

2) 音效长短的选择模块制作一个button group的组控件分别选择不同的控件实现不同的音效长短,音效的长短是通过改变播放一个音阶的时间长短来实现的。

3)包络的选择模块制作一个button group的组控件分别选择不同的控件实现不同的包络,在模块一的基础上,设置选中不同的控件分别对应不同的包络,x为不同包络(如正弦波、三角波、指数等)的表达形式,将x与模块一中实现单音键盘发音的函数相乘时便可实现不同形式的衰减,实现音型的改变。

4)实现键盘代替鼠标输入模块根据计算机键盘上的不同按键对应不同的ASCII码的值,利用函数get()获取当前所按下的数字键对应的ASCII码的值,根据 ASCII码的值判断对应是按下键盘的值。

并执行相应音阶的功能键。

5)双音多频模块通过设置一个radio button 来实现双音多频的功能,设置一个全局变量,当选中该控件时,全局变量的值改变,即在带参的子函数中增加它的频率分量。

就可以实现双音多频功能。

6)演奏音乐模块通过设置一个push button键来实现,按下该键时,可以选择事先自己编好的txt的文档,通过这个文档就可以播放音乐。

7)播放歌曲,视频模块根据matlab提供的函数,视频时首先对文件的名字和路径进行提起,直接对文件的播放。

音乐的则是首先对文件的名字和路径进行提起,得到名字和路径后就对该文件进行采样,使其离散化。

最后实现对文件的播放。

8)多键盘输入对输入后统一播放模块该功能实现先对键盘输入内容进行存储,当输入完成后就可以按播放键对刚才的存储内容进行播放,本功能通过radio button键实现的键盘输入的存储,当该建被选中时,则会不断的扫描键盘是否有键盘按下,并对按下键进行存储,直到该键没有被选中为止,同时设置一个push button键对存储的信息进行播放,播放完成后自动清除存储的内容,以便下一次存储。

9)画图模块该模块的功能是根据播放每一个音符的数组画出每一个音符的波形,使我们对播放的音型可以一目了然,便于观察与分析。

2 功能实现程序由两个部分组成:MATLAB代码(.m文件)和GUI图形(.fig)。

备注:软件版本:MATLAB R2011b2.1单音键盘发音模块根据要求,首先利用push button键作为单音键盘的发音键。

1~7七个音阶对应高中低三种不同的音调共21个键,还有15个辅音,共36个按键。

如图2所示,白色的按键代表音调键,前7个是低音的七个音阶,中间7个是中音的七个音阶,后面7个是高音的七个音阶,黑色的代表辅音。

查阅相关资料可知,发音频率对应的表达式为f=440*2^((s-49)/12),当所发音为低音时s的取值为31~37,发中音时s的取值为40~46,发高音时s的取值为49~55。

为了程序设计简化目的,设计一个名为gangqin(s)的子函数。

有以上带参的子函数后则每个键盘下面的程序非常简单,然后在每个push button键的callback函数中调用该子函数即可,如gangqin(45);图2 单音键盘发音模块具体代码参见:function gangqin(s)2.1.1音效长短的选择模块制作一个button group的组控件分别选择不同的控件实现不同的音效长短,该组控件包括三个radio button分别对应不同的音效长短(长,中,短)。

音效长短的改变实质上是改变其音阶播放时间的长短,定义一个全局变量T通过改变T的值来改变音效的长度,gangqin的子函数如上面所示。

界面如图3所示:图3 音效长短的选择模块具体代码参见:Function yinxiao_Callback (hObject, eventdata, handles)2.2包络的选择模块制作一个button group的组控件分别选择不同的控件实现不同的包络,该组控件包括三个radio button分别对应不同的包络。

如图4所示,定义了方波、三角波和正弦波三种不同形式的包络可供选择。

图4 包络的选择模块将组合键中的button group键的Tag的值设置为“baol”,三个radio button键分别对应指数波、三角波、正弦波,相应的Tag设“zhishu”、” sanjiao”、” zhengxian”,def=get(de,'tag')获取三个Radio Button键中Tag的值,设置一个全局变量p,用switch函数实现,当case为 ' zhishu '时,p的值1; case 为' sanjiao '时,p的值2; case 为' zhengxian ' 时p的值为3。

把p的值反应到gangqin(s)的子函数中,在子函数中根据不同的p的值选用不同的包络,即可实现不同的包络,所发出的音型便不一样。

由于电子琴的实验结果是声音,难以用文字表达,在下面仅用几张图片展示一下结果。

图5 正弦波包络图6 方波包络图7 三角波具体代码参见:Function baoluo_Callback (hObject, eventdata, handles)2.3实现键盘代替鼠标输入模块用一个radio button键便可实现该功能,可以根据不同的键盘按键发出不同的音乐。

同时将该键的string改为“键盘”,表示这个键是实现键盘的功能。

如图8所示:图8 键盘代替鼠标输入根据计算机键盘上不同键对应的ASCII码的值不同,利用函数get()获取当前所按下的键对应的ASCII码的值,并执行相应播放音阶。

具体代码参见:function jianpan_KeyPressFcn(hObject, eventdata, handles)2.4双音多频模块通过设置一个radio button 来实现双音多频的功能,当选中该按钮时,则增加它的频率分量。

使其含有丰富频率分量。

如图9所示:图9 双音多频模块具体代码参见:function duopin_Callback(hObject, eventdata, handles)2.5演奏音乐模块通过设置一个push button键来实现,如图10所示:图10 播放谱曲按下该键时,界面会要求你选择文档,可以选择事先自己编好的txt的文档,选中该文档,并按打开键就可以播放音乐。

txt文件的内容如图11所示:图11 乐谱内容Txt文件代表的意思是如‘44 1’,是表示频率为44,延长的长度为1。

播放音乐不仅需要确定每个音符,还要确定每个音符延长的时间,音符延长的时间是有n的取值大小所确定的。

因此这里就可以调用子函数的形式方便的实现。

具体代码参见:function qinpu(a,b)function dakai_Callback(hObject, eventdata, handles)2.6播放歌曲,视频模块本功能的实现是通过push button键来实现的。

界面如图12所示:图12 播放歌曲视频模块通过按下播放歌曲键或者播放视频键就可以选择播放的文件,界面如图13所示:按打开按钮就可以播放音乐或视频。

图13 播放视频视频时首先对文件的名字和路径进行提起,直接对文件的播放,用的是matlab自带的函数implay()。

音乐的则是首先对文件的名字和路径进行提起,得到名字和路径后就对该文件进行采样,使其离散化。

最后实现对文件的播放。

这里不仅可以对音乐的播放,还可以对音乐的暂停,复位和停止。

分别用到matlab自带的函数:播放play(),暂停pause (),复位resume()和停止stop()。

具体代码参见:function shipin_Callback(hObject, eventdata, handles)function changge_Callback(hObject, eventdata, handles)2.7多键盘输入后统一播放模块本功能通过radio button键实现的键盘输入的存储,当该建被选中时,则会不断的扫描键盘是否有键盘按下,并对按下键进行存储,直到该键没有被选中为止,同时设置一个push button键对存储的信息进行播放,播放完成后自动清除存储的内容,以便下一次存储。

界面如图14所示:图14 多键盘输入后播放该功能实现先对键盘输入内容进行存储,当输入完成后就可以按播放键对刚才的存储内容进行播放,播放完成后对存储的内容进行清空。

实现对键盘的输入内容进行存储,并把存储的值整合到数组y内,push button键是对上述存储的信息进行读取,识别并播放。

具体代码参见:function jianc_KeyPressFcn(hObject, eventdata, handles)function bf_Callback(hObject, eventdata, handles)2.8画图模块通过axse控件实现绘图,绘出播放每个音阶的波形,并把画出的波形显示到axse 上,界面如图15所示:图15 音阶的波形该模块的功能是根据播放每一个音符的数组画出每一个音符的波形,并把其显示在界面上。

具体代码参见:function axes1_CreateFcn(hObject, eventdata, handles)3 程序总结本程序实现简单的音频处理功能及便捷的图形化交互界面。

具有以下特点与缺陷:1、图形化用户交互界面简洁明了。

右侧放置音频视频播放的各选项控件,且从上到下的排布体现操作步骤;上侧显示音频文件的数据波形。

提示信息丰富,方便操作。

2、程序可扩展性好,方便功能扩展。

未尽功能:(1)没有调节音量大小的按钮,可以优化。

相关文档
最新文档