基于LabVIEW的虚拟电子琴设计

基于Labview虚拟电子琴设计

1、设计目的及要求

1.1 设计的目的

电子琴又称为电子键盘,属于一种电子类乐器,音量自由调节,音域较广,表现力及其丰富,应用广泛,深受乐器爱好者的喜爱,但目前市场上电子琴的售价较高。因此本设计的多功能电子琴,是一款基于LabVIEW编程的虚拟电子琴,可通过鼠标点击或键盘操作,简单方便地 标题实现真实电子琴的功能,不占用室内空间,同时能够自动播放音乐,可供使用者休闲娱乐使用。该设计基于LabVIEW的虚拟多功能电子琴在一定程度上满足人们对音乐弹奏的需求。

1.2 课程设计的任务要求

(1)多功能电子琴的界面设计。
(2)多功能电子琴程序设计。
(3)实现鼠标点击电子琴演奏。
(4)实现键盘操作电子琴演奏。

2、方案选择

2.1 系统概述

本次设计基于LabVIEW的虚拟多功能电子琴,有21个黑键,15个白键,共36个琴键,包含高音、中音、低音的音阶以及半音阶,能够在一定程度上满足使用者对电子琴音阶的基本需求,同时也能弹奏大部分歌曲。
通过了解参考实际电子琴的功能和使用方法,该设计的基于LabVIEW的虚拟多功能电子琴主要有三个功能模块,分别为自动播放歌曲模块,鼠标控制虚拟琴键模块。
该基于LabVIEW的虚拟多功能电子琴具有以下特色:
(1)运用鼠标点击琴键发出不同的声音,实现电子琴发声并弹奏歌曲的基本功能。
(2)运用电脑键盘模拟实际琴键,通过敲击键盘指定的按键获得电子琴相应琴键的声音,这种方式更加真实,更接近实际弹奏电子琴。

2.2 系统方案的比较与选定

基于LabVIEW的虚拟多功能电子琴难点主要在于还原真实电子琴的琴声的真实度,所以经过讨论得出的方案有如下两个:
(1)在LabVIEW中利用公式和波形发生器,产生正弦波,进行滤波后得到不同音阶的声音效果。
(2)通过录音设备录下真实电子琴发声音效。

经过验证和讨论,上述两种方案存在以下优缺点:
方案(1):通过LabVIEW中模拟不同频率的发声能够较为真实地还原电子琴琴声, 同时能够充分利用LabVIEW的功能,简单易行,也达到课程设计的目的。
方案(2):采用手机录音设备录下电子琴琴声后,声音会出现部分变化,过程较为复杂,同时因小组成员均没有电子琴,所以成本较高。

综上,基于LabVIEW的虚拟多功能电子琴琴声采用方案(1)通过在LabVIEW中模拟不同频率的发声达到模拟琴声的效果。

2.3 系统子模块规划

通过参考对比真实电子琴的功能设计和结构设计,本设计基于LabVIEW的虚拟多功能电子琴,由三个子模块组成,分别为自动播放歌曲模块,鼠标控制虚拟琴键模块,键盘控制虚拟琴键模块。
其中自动播放歌曲模块,利用LabVIEW中的Activex容器、属性节点、调用节点等实现选择存储在电脑上的WAV格式歌曲自动播放;鼠标控制虚拟琴键模块利用LabVIEW中的事件结构,通过鼠标点击琴键发声;键盘控制虚拟琴键模块利用LabVIEW中的键盘初始化控件、case结构实现通过键盘使琴键发声。
由以上规划,可得系统结构,如图2.3.1所示。

在这里插入图片描述

3、系统设计

3.1 鼠标点击虚拟琴键演奏

3.1.1 确定方案
电子琴由36个琴键组成,每个琴键发出的声音拥有不同的频率,通过在LabVIEW中模拟不同频率的发声达到模拟琴键的效果,通过网上查找资料,每个琴键对应的频率如表3.1.1所示:
在这里插入图片描述
知道每个琴键对应的频率后,先实现单按键发声,可以选用波形产生控件,对波形产生控件的频率进行设置,将波形产生控件与播放波形控件相连,就可以用播放波形控件进行发声。因为要实现按键发声,可以选用LabVIEW中的事件结构,将事件结构触发条件设置为按键的鼠标按下时触发,即可实现单个按键用鼠标按下时,LabVIEW发出固定频率的声音。

实现一个按键的发声后,采用同样的方式即可实现其他35个按键的发声,将每个按键有顺序的在前面板进行排布,并将按键的形状修改为类似于琴键的形状,由于需要不断的点击琴键发声,所以需要将事件结构放入一个while循环控件中,并设置一个关闭按键控制while循环的结束。

需要注意的是,根据采样定理,波形产生控件中的采样频率必须设置为最高声音信号频率的2倍以上,否则会产生错误,这里我们将所有波形产生控件中的采样频率都设置为最高声音信号频率的2倍,在高频率的声音信号中,如果采样频率过高,采样样本过多的情况下,会出现噪声的情况,导致音色变差。 鼠标点击虚拟琴键演奏整体方案如图3.1.1所示:

在这里插入图片描述

3.1.2 VI设计
(1)流程图
流程图如图3.1.2所示,开始运行程序后,即会进入一个while循环,当没有琴键被按下时,则会等待琴键按下,当有琴键被按下,事件结构会判断哪个琴键被按下,从而触发相应的事件,发出相应频率的声音,然后等待下一次琴键按下,直至‘关闭’按钮被按下,跳出while循环,程序结束。

在这里插入图片描述

(2)前面板设计
虚拟电子琴前面板应该要有与电子琴相似的琴键与布局,琴键可以通过修改‘确定’按钮的形状与大小实现,琴键有黑琴键与白琴键两种,如图3.1.3和图3.1.4所示:
在这里插入图片描述

                                  图3.1.3 白琴键

在这里插入图片描述

                                 图3.1.4 黑琴键

白琴键设置高度为220,宽度为39,黑琴键设置高度为160,宽度为30,通过与真实电子琴进行比较,将黑琴键与白琴键按一定的顺序进行排列,整体排列效果图如图3.1.5所示:
在这里插入图片描述

                                图3.1.5 琴键整体布局

琴键从左到右是从低音1到高音7,在左上角加入了一个关闭按钮,可以控制程序结束,也与真实的电子琴相近。

(3)后面板设计
后面板首先要有产生声音与播放声音的控件,波形产生控件可设置声音频率,右击波形产生控件的频率,创建一个输入控件,然后将控件转换为常量,在其中即可输入对应的频率,与播放波形控件按图3.1.6方式进行连接,就能实现声音的产生与播放。
在这里插入图片描述

                             图3.1.6 实现声音的产生与播放

实现按键控制声音,采用事件结构,将按键与波形产生控件、播放波形控件都放入事件结构中,并在事件结构中设置该按钮的鼠标按下时触发,如图3.1.7所示:

在这里插入图片描述

                                      图3.1.7 事件结构

整个程序构成一个循环结构,采用while循环结构,加入布尔按钮控制程序是否停止。整体如图3.1.8所示
在这里插入图片描述

                                   图3.1.8 鼠标点击琴键演奏的后面板

3.2 键盘控制虚拟琴键演奏

3.2.1 确定方案
使用键盘控制虚拟琴键演奏,需要让程序知道是键盘上的哪个按键被按下,在LabVIEW中有专门与键盘建立连接的控件和获取键盘输入的控件,如图3.2.1和图3.2.2所示:
在这里插入图片描述

与键盘进行连接后,获取到键盘的输入,用LabVIEW中的case结构可以对不同的输入运行不同的程序达到控制虚拟琴键演奏的目的,知道如何使用键盘进行琴键控制后,开始对键盘进行划分,确定键盘上键与琴键的对应关系,对照表如下所示

在这里插入图片描述

比如键盘上的‘A’被按下后,case结构判断‘A’键被按下,然后运行‘A’键按下时的程序,也就是中音5.5对应的琴键发声。 由于需要不断的用键盘控制琴键发声,所以需要将事件结构放入一个循环控件中。整体方案如图3.2.3所示:
在这里插入图片描述

3.2.2 VI设计
(1)流程图
流程图如图3.2.4所示,开始运行程序后, 进入到for循环中,将for循环的次数设置为无穷大,循环中先初始化键盘,建立程序与键盘的连接,然后获取键盘的输入,case结构根据判断键盘输入的值,运行相应的程序,发出声音,然后进入到下一个循环直至程序结束。

在这里插入图片描述

(2)前面板设计
前面板设计与鼠标点击琴键演奏相似,唯一的区别是在琴键上写上了对应的键的名称,如图3.2.5所示:
在这里插入图片描述

(3)后面板设计
由于获取键盘输入控件里面的值默认是一个数组,与case结构无法直接相连,所以先将获取键盘输入控件与一个数组坐标控件相连,并将坐标为0的值输出,当键盘上有键按下时,就可以将这个键的值输出,没有键按下时就输出为0,如图3.2.6所示:
在这里插入图片描述

在case结构中,将每个键与对应的程序加入进去,如图3.2.7所示:
在这里插入图片描述

整个程序构成一个循环结构,采用for循环结构,设置循环次数为无数次,由于键盘有时会出现抖动,导致按下键一次会发几次声,所以在for循环中加入一个延时函数,并设置延时为200ms,整体程序图如图3.2.8所示:
在这里插入图片描述

欢迎大家关注微信公众号“柴基”

参考文献
[1] 黄松岭, 吴静. 虚拟仪器设计基础教程[M]. 北京: 清华大学出版社, 2008.
[2] 张国华,朱丽琴. 基于LabVIEW可弹奏电子琴的设计[J]. 电子世界, 2013(12): 123- 124.
[3] 舒景东,刘龙. 基于LabVIEW的简易键盘电子琴设计[J]. 山西电子技术, 2017(04): 66-68.
[4] 杜鸣笛,何淑珍. 基于LabVIEW压力电子琴的设计[J]. 科技资讯, 2017, 15(17): 97- 98+100.
[5] 李晓黎. 试论双排键电子琴上管弦乐音色的模拟[J]. 北方音乐, 2018, 38(22): 243+245.

相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页