基于 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 码的值推断对应是按