基于MATLAB软件GUI界面的自制简单电子琴

这是我大一暑期课程《MATLAB基础与应用》的两个小课设之一。

本课设用的是MATLAB及其自带的GUI界面,初步设想是做一个类似于电子琴的发音器。所用到的文件目录如下:

共需要用到4个文件。其中,.m是MATLAB源代码文件,.fig是MATLAB的GUI文件,.jpg和.wav分别是一张图和一段语音,是项目所需的资源文件。

当点击“运行”之后,显示的界面是这个样子的:

在程序最开始,会默认打开目录中的.wav文件,播放一段语音,内容就是“welcome to my piano”。后面还有一个label,它显示的内容也是这句话,label的标志是一个笑脸,就是目录中的.jpg文件。之后就进入了程序的正式界面。如下图:

现在我们来看这个界面。

上方标题之下是2个坐标面板,左右分别显示当前琴音的时域、频域波形。右侧框内显示了琴音的频率数值,当前按下的是小字一组的g(so音),其频率为392Hz。下面的单选框是选择坐标值有无虚线网格。下方的按键是对应计算机键盘作出来的,因为当时的初步想法是按下某一个键盘就响起对应的琴音,但是后来没能实现,所以只好老老实实地用鼠标点击。我一共是作了5组音键:大字组、小字组、小字一组、小字二组、小字三组,频率由低变高。

当按下右侧中间的“Exit”按钮时,会出现以下界面:

确认退出就按“是”,否则就按“否”或“取消”。

最后做一个简单的小结:

这个小项目本身十分粗糙,然而作为一个为期仅有一周的暑期课的课设也不算太low。由于当时的知识储备还比较少,并且也没有乐理方面的基础知识,所以也就没有认识到谐波对音色音质的重要影响,故而琴音只是用计算机模拟的正弦音配上合适的频率而已。如果有读者对这个项目感兴趣,不妨在这点上多做一些优化。另一方面,这个GUI界面也是比较丑的,从审美角度看一个优美的界面应当尽可能隐藏一切细节而把空间最大可能地留给显示部分,具体操作包括把按钮等控件做成菜单或者工具栏等等,所以说这里也有提升的空间。

转载时务必注明来源及作者。尊重知识产权从我做起。

代码已上传至网络,欢迎下载。

链接:https://pan.baidu.com/s/1fTmgdysUI2i8TdyTfVzWEg 密码:3ps7

猜你喜欢

转载自blog.csdn.net/ctyqy2015301200079/article/details/83115703
今日推荐