基于MATLAB的音乐电子琴制作

合集下载

基于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 来实现双音多频的功能,设置一个全局变量,当选中该控件时,全局变量的值改变,即在带参的子函数中增加它的频率分量。

基于matlab的数字电子琴的完全指导手册

基于matlab的数字电子琴的完全指导手册

1.概述伴随计算机软硬件技术旳发展, 越来越多现实物品旳功能可以由计算机实现。

信号发生器原本是模拟电子技术发展旳产物, 到后来旳数字信号发生器也是通过硬件实现旳, 本文将给出旳则是通过计算机软件实现旳数字信号发生器。

目前有许多功能强仿真软件(如LabView、EWB)提功了多种模拟信号发生器旳功能, 从而并没有多少人专门去开发数字信号发生器软件, 虽然是特殊功能旳信号发生器也是基于仿真软件完毕旳, 不过数字信号发生器旳软件模块可以用来开发某些别旳软件, 如数字电子琴。

数字电子琴旳编程实现已经有许多人已经做过了(例如基于BASIC旳模拟电子琴[1]), 也出现了诸多功能较强大旳模拟电子琴软件, 如HappyEO、MidiPiano等。

2.软件设计2.1.软件旳功能软件旳功能由数字信号发生器和数字电子琴两部分构成。

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

可以根据顾客指定旳波形和参数产生对应旳数字信号, 然后将数字信号写入声卡旳缓冲区, 最终由声卡播放出对应旳声音。

(2)数字电子琴旳功能数字电子琴旳功能是基于数字信号发生器旳, 通过调用数字信号发生器产生一系列指定旳频率旳声音, 从而到达虚拟旳电子琴旳功能, 界面中包括A.B.…、O 共15个琴键, 鼠标按下时即发声, 松开时发声停止。

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

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

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

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

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 GUI 程序实现的一个音乐键盘仿真系统。

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

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

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

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

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

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

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

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

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

基于LabVIEW的电子琴设计

基于LabVIEW的电子琴设计

基于LabVIEW的电子琴的设计摘要随着电子计算机的不断发展,以及软件开发技术的日新月异,电子计算机在数据的实时分析和处理,现实存贮等方面的优势与传统仪器相比越来越明显,随着计算机性价比的不断提升,传统仪器价格又高居不下,加上传统仪器的功能单一,发展虚拟仪器已经成为一个不可阻挡的历史潮流。

在20世纪80年代,美国国家仪器公司(NI)最早提出了虚拟仪器的概念,引发了传统仪器领域的一场重大变革,使得计算机网络技术得以长驱直入仪器领域,和仪器技术结合起来,从而开创了“软件即是仪器”的先河。

而虚拟仪器的设计,需要图形化的开发环境LabVIEW。

本文讲解了基于LabVIEW的电子琴的设计,通过对声音的频率设置,以及LabVIEW中的常用编程控件,来实现电子琴发声,本程序能实现电子琴基本演奏功能,还有音乐播放功能。

关键词:虚拟仪器,LabVIEW,电子琴Electric Piano Design Based on LabVIEWAbstractWith the rapid development of computer technology and software development technology, the advantagement of the computer in analyzing, processing, displaying, storing the data becomes more and more obvious. At the same time, developing virtual instrument has become an irresistible trend of history along with high cost performance of computer, high price of traditional instruments and the single function of the traditional instruments. In this environment, the American NI company firstly began to the study of the virtual oscilloscope; and then launched a plat for the LabVIEW.This thesis designs a set of virtual oscilloscope based on the basic structure of the virtual instrument and related knowledge of signal processing in author's procession. It analyzes the definition, structures and trend of development of the virtual instrument. It introduces the basic knowledge related with virtual oscilloscope, which is Fourier transform. Virtual instrument is composed of hardware and software in two parts. This thesis introduces the hardware simply, but studies the software at full length. Based on the study of the two parts of the virtual instrument, the author designs the spectrum analysis module, memory module, display module and measurement module.Key Words: Virtual Instrument, LabVIEW, Electronic piano目录第1章绪论 (1)1.1 电子琴的特色 (1)1.2 电子琴的构成 (1)1.3 电子琴的发展 (1)1.4 产品优势 (2)1.5 电子琴的意义 (2)第2章系统软件的开发平台LabVIEW简介 (2)2.1 LabVIEW的基本概述 (3)2.2 LabVIEW的模板分析 (5)2.2.1工具模板 (5)2.2.2 控件选板 (7)2.2.3 函数选板 (7)第3章电子琴的软件设计 (9)3.1 设计任务 (9)3.2 单按键发声 (9)3.3 电子琴设计 (11)3.4 播放声音文件 (13)第4章打包生安装文件 (16)总结 (25)参考文献 (26)致谢 (27)第1章绪论1.1 电子琴的特色电子琴又称作电子键盘,属于电子乐器,发音音量可以自由调节。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于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 来实现双音多频的功能,设置一个全局变量,当选中该控件时,全局变量的值改变,即在带参的子函数中增加它的频率分量。

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

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

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

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

最后实现对文件的播放。

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

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

程序由两个部分组成: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)没有调节音量大小的按钮,可以优化。

(2)声音播放时,实时的显示播放进度。

相关文档
最新文档