基于LabVIEW的电子琴设计.docx
《基于LabVIEW的电子琴设计.docx》由会员分享,可在线阅读,更多相关《基于LabVIEW的电子琴设计.docx(27页珍藏版)》请在冰豆网上搜索。
基于LabVIEW的电子琴设计
摘要
随着电子计算机的不断发展,以及软件开发技术的日新月异,电子计算机在数据的实时分析和处理,现实存贮等方面的优势与传统仪器相比越来越明显,随着计算机性价比的不断提升,传统仪器价格又高居不下,加上传统仪器的功能单一,发展虚拟仪器已经成为一个不可阻挡的历史潮流。
在20世纪80年代,美国国家仪器公司(NI)最早提出了虚拟仪器的概念,引发了传统仪器领域的一场重大变革,使得计算机网络技术得以长驱直入仪器领域,和仪器技术结合起来,从而开创了“软件即是仪器”的先河。
而虚拟仪器的设计,需要图形化的开发环境LabVIEW。
本文讲解了基于LabVIEW的电子琴的设计,通过对声音的频率设置,以及LabVIEW中的常用编程控件,来实现电子琴发声,本程序能实现电子琴基本演奏功能,还有音乐播放功能。
关键词:
虚拟仪器,LabVIEW,电子琴
ElectricPianoDesignBasedonLabVIEW
Abstract
Withtherapiddevelopmentofcomputertechnologyandsoftwaredevelopmenttechnology,theadvantagementofthecomputerinanalyzing,processing,displaying,storingthedatabecomesmoreandmoreobvious.Atthesametime,developingvirtualinstrumenthasbecomeanirresistibletrendofhistoryalongwithhighcostperformanceofcomputer,highpriceoftraditionalinstrumentsandthesinglefunctionofthetraditionalinstruments.Inthisenvironment,theAmericanNIcompanyfirstlybegantothestudyofthevirtualoscilloscope;andthenlaunchedaplatfortheLabVIEW.
Thisthesisdesignsasetofvirtualoscilloscopebasedonthebasicstructureofthevirtualinstrumentandrelatedknowledgeofsignalprocessinginauthor'sprocession.Itanalyzesthedefinition,structuresandtrendofdevelopmentofthevirtualinstrument.Itintroducesthebasicknowledgerelatedwithvirtualoscilloscope,whichisFouriertransform.Virtualinstrumentiscomposedofhardwareandsoftwareintwoparts.Thisthesisintroducesthehardwaresimply,butstudiesthesoftwareatfulllength.Basedonthestudyofthetwopartsofthevirtualinstrument,theauthordesignsthespectrumanalysismodule,memorymodule,displaymoduleandmeasurementmodule.
KeyWords:
VirtualInstrument,LabVIEW,Electronicpiano
第1章绪论
1.1电子琴的特色
电子琴又称作电子键盘,属于电子乐器,发音音量可以自由调节。
音域较宽,和声丰富,甚至可以演奏出一个管弦乐队的效果,表现力极其丰富。
它还可模仿多种音色,甚至可以奏出常规乐器所无法发出的声音(如合唱声,风雨声,宇宙声等)。
另外,电子琴在独奏时,还可随意配上类似打击乐音响的节拍伴奏,适合于演奏节奏性较强的现代音乐。
另外,电子琴还安装有效果器,如混响、回声、延音,震音轮和调制轮等多项功能装置,表达各种情绪时运用自如。
电子琴是电声乐队的中坚力量,常用于独奏主旋律并伴以丰富的和声。
还常作为独奏乐器出现,具有鲜明时代特色。
电子琴的自动节奏部分,为老师给学生进行节奏感的教学提供了有利条件。
老师可让学生合着自动节奏反复打拍子,甚至可以运动身体,比如合着节奏踏步、走步,做操等,从中用心和身体去领略各种节奏的律动。
并且可以了解各种各样的音乐风格,增加其综合音乐素养。
普及型电子琴的演奏有较大一部分是通过自动和弦伴奏来配合完成的,在音乐中和弦的连接推动了旋律地进行,不同的和声连接,形成了不同的音乐色彩。
1.2电子琴的构成
本次设计的电子琴是由36个琴键所构成,包含有高音、中音、低音的音阶以及半音阶共同组成。
也就是所谓的黑键跟白键。
1.3电子琴的发展
1959年,由雅马哈(YAMAHA)株式会社生产了世界上第一台立式电子琴,取名为”伊莱克通“(Electone),它有三层键盘。
1980年,随着电子集成电路的出现,电子琴开始向小型化发展,雅马哈等厂家生产了便捷式单键盘电子琴(PortatonePortasound)。
1983年,雅马哈生产的电子合成器DX7和电钢琴问世。
1986年,HX系统高级历史电子琴问世。
我们现在常见并熟悉的双排键电子琴是日本于1991年之后生产的EL,ELS系列以及便携式双排键DDK7。
在中国,1958年北京邮电学院研制了一台电子管单音电子琴。
由于种种原因,至1977年后,我国才大批生产电子琴。
1989年,我国年产儿童电子琴200万台,并出口39万台。
中国的电子琴事业正在迅速发展。
电子琴发展很快,琴的各项功能日趋完善。
音色和节奏有最初的几种发展到现在的几百种。
除寄存音色外,还可通过插槽外接音色卡。
合成器的某些功能,如音色的编辑修改、自编节奏、多轨录音、演奏程序记忆等也运用到电子琴上。
1.4产品优势
目前市场上的电子琴都比较昂贵,利用LabVIEW编程能够简单又方便的实现钢琴的功能。
由于学习LabVIEW时间有限,和对其掌握的不够透彻,本产品对于实现高真电子琴模拟还有一段距离。
但已经能基本实现电子琴的一份功能,基本能满足使用。
1.5电子琴的意义
1.电子琴的发明极大地推动了流行音乐的发展;现代的流行音乐离不开电子琴,键盘手一般是现代电声乐队的中坚力量。
2.电子琴的发明使人们可以演奏出未曾拥有的音色,丰富了人们情感的表现;电子琴创造出了许多其他乐器无法演奏出的音色,甚至自然不存在的音色,这些音色帮助了人们通过音乐表现自己的情感。
3.电子琴的发明推动了音乐的普及,它让音乐真正成为了大众的音乐,成为了人类社会不可缺少的东西。
电子琴作为科技与音乐的产物,在信息化和电子化的时代,为音乐的大众化做出了不可磨灭的贡献,现代歌曲的制作,很多都需要电子琴才能完成,然后才通过媒介流传开来,电视剧电影插曲、电视节目音效、甚至你的手机铃声,都很可能包含电子琴的身影。
第2章系统软件的开发平台LabVIEW简介
2.1LabVIEW的基本概述
LabVIEW是美国国家仪器公司开发的,基于G语言(GraphicsLanguage)的虚拟仪器开发工具。
其特点是用图形化的符号来代替传统的文本语言,从而达到直观,简洁,易懂的目的。
1992年8月labVIEW2.5实现了从MaCintosh平台到Windows又砰台的移植,从LabVIEW3.0版本开始,LabVIEW作为一个完整优异的图形化软件开发环境得到了工业界和学术界的认可,并开始迅速占领市场,赢得了广大用户的青睐。
它的基本特点是:
1.具有良好的用户接口其用户接口类似于传统仪器的面板,包括按钮、旋钮、图形显示组件、控制组件等。
通过鼠标和键盘向程序输入数据,操作结果由软件在计算机屏幕上生成。
2.编程方式简单、直观采用图形语一言(G语言)、图标和联机代替文本形式编写程序,是对具体编程问题的图形化解决方案。
3.具有层次结构和模块化的特点每一个VI可以作为顶层程序,也可以作为其它程序的子程序。
4.提供程序调试功能程序调试工具包括在源代码中可以设置断点,可以单步执行,也可以启动。
LabVIEW创建虚拟仪器过程
创建虚拟仪器的过程分为三步:
1.创建前面板。
前面板是图形化用户界面,用于设置输入数值和观察输出量。
它模仿了实际仪器的面板。
前面板包含了旋钮、按钮、图形和其他控制与显示对象。
通过鼠标和键盘输入数据、控制按钮,也可在计算机显示器上直接观看结果。
若想要在数字控制中输入或修改数值,只需要用操作工具(见工具模板)点击控制部件和增减按钮,或者用操作工具或标签工具双击数值栏进行输入数值修改。
2.创建框图程序。
在前面板窗口的主菜单windows中选择ShowDiagram将前面板窗口切换到框图程序窗口,此时会看到与前面板对象对应的端口。
根据需要在功能模板中找到所需的节点,并将节点图标放置到框图程序窗口。
用数据连线将这些端口和节点的图标连接起来,形成一个完整的框图程序。
3.创建图标。
一个虚拟仪器的图标/连接端口就像一个图形(表示某一虚拟仪器)的参数列表。
这样,其它的虚拟仪器才能将数据传输给子仪器。
图标和连接允许将此仪器作为最高级的程序,也可以作为其它程序或子程序的子程序。
运行和调试程序。
运行和调试程序是任何一门编程语言编程的最重要的一步。
在LabVIEW中,用户可以通过两种方式来运行程序:
运行和连续运行。
如果一个VI程序存在语法错误,则在面板工具条上的运行按钮将会变成一个折断的箭头,表示程序不能被执行。
这时这个按钮被称作错误列表。
点击它,则LabVIEW弹出错误清单窗口,点击其中任何一个所列出的错误,选用Find功能,则出错的对象或端口就会变成高亮。
调试程序时可以利用单步执行、设置断点、设置探针来显示数据流动方向。
图2.1LabVIEW前面板
图2.2LabVIEW程序框图
2.2LabVIEW的模板分析
LabVIEW是一种图形化设计语言,在一个虚拟仪器VI的开发过程中,主要
利用模板创建和运行程序。
这些操作模板可以随意在屏幕上移动,并可以放置
在屏幕的任意位置。
操纵模板共有三类:
工具(Too1s)选板、控制(Controls)
选板和功能(Functions)选板或称函数选板。
图2.3工具选版
2.2.1工具模板
工具选板为编程者提供了各种用于创建、修改和调试VI程序的工具(如图所示)。
该模板可以在windows菜单下选择ShowToolsPalette命令以显示该模板。
当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状,它包括了以下工具包。
操作工具:
使用该工具来操作前面板的控制和显示。
使用它向数字或字符串控制中键入值时,工具会变成标签工具的形状。
选择工具,用于选择、移动或改变对象的大小当它用于改变对象的连框大小时,会变成相应形状。
标签工具:
用于输入标签文本或者创建自由标签。
当创建自由标签时它会变成相应形状。
连线工具:
用于在框图程序上连接对象。
如果联机帮助的窗口被打开时,
把该工具放在任一条连线上,就会显示相应的数据类型。
对象弹出菜单工具:
用左鼠标键可以弹出对象的弹出式菜单。
漫游工具:
使用该工具就可以不需要使用滚动条而在窗口中漫游
断点工具:
使用该工具在VI的框图对象上设置断点。
探针工具:
可以在框图程序内的数据流线上设置探针。
程序调试员可以通过控针窗口来观察该数据流线上的数据变化状况。
颜色提取工具:
使用该工具来提取颜色用于编辑其他的对象。
颜色工具:
用来给对象定义颜色。
它也显示出对象的前景色和背景色。
自动选择工具
工具模版提供用于操作,编辑前面板和流程图上的对象的各种工具。
如果需要选用某项操作工具,只需要用鼠标点击该工具图标即可。
2.2.2控件选板
图2.4控件选版
控件选板拟仪器的面板是通过软件实现的。
就是LabVIEW将传统仪器上的各种旋纽、开关.、显示屏等所有可能涉及到的操作部件,都做成外形相似的“控件”分类存于控制模板上。
设计仪器模板时,只需根据需要选择合适的“控件”放在面板相应的位置上即可。
每个图标代表一个子模板(如图所示)。
控制模板可以用Windows菜单的ShowControlsPalette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。
它只有当打开前面板窗口时才能调用。
2.2.3函数选板
图2.5函数选板
图2.6函数选板子选板
函数选板编程子选板功能模板就是LabVIEW将传统仪器上的各种测试功能、信号分析文件操作以及输入/输出(1/0)接口设备的驱动做成可供直接调用的库函数。
使用时只需根据预完成的功能与操作,从子模板上选择相应的“图标”放在流程图编辑窗口中相应的位置上即可。
该模板上的每一个顶层图标都表示一个子模板(如图所示)。
它可以用Windows菜单下的ShowFunetionspalette功能打开它,也可以在框图程序窗口的空白处点击鼠标右键以弹出功能模板。
而且它只有打开了框图程序窗口后才能出现。
它包括结构子模板、数值运算子模板、布尔逻辑子模板、字符串运算子模板、数组子模板、类子模板、比较子模板、时间和对话框子模板、文件输入/输出子模板、仪器控制子模板、仪器驱动程序库、数据采集子模板、信号处理子模板、数学模型子模块、图形与声音子模块、通讯子模板、应用程序控制子模块、底层接口子模块、文档生成子模板、示教课程子模板、用户自定义的子Vl模板和选择VI子程序等子模板。
本章介绍了当今在测控领域内的虚拟仪器开发软件LabVIEW语言,它满足了实现虚拟测试仪器的条件,是虚拟仪器开发环境中图形化语言的杰出代表之一。
第3章电子琴的软件设计
3.1设计任务
使用LabVIEW设计一个运行于计算机的电子琴软件,软件实现弹奏功能和音频文件播放功能。
其中弹奏功能:
每按下一个琴键,扬声器播放对应频率声音。
播放音频文件:
在VI目录下放入程序中指定名字的.wav音频文件,在程序中可以选择播放。
3.2单按键发声
设计电子琴,首先得用播放声音之类的控件,在选择播放波形还是播放放声音过程的控件时,我选用了播放波形的控件,原因是因为波形的频率容易设置,能让声音听起来更接近,而播放音频文件,在网上很难找到相应的音频,而自己录制的话,由于条件有限,很难完成,就选用了播放波形控件。
先试着让一个按键发出声音,选用波形产生控件,可设置声音频率,然后选择播放波形控件如图3.1所示将其与对应的对应的频率相连接就能实现声音的产生如图3.2所示,右击信号仿真器的频率,创建一个输入控件,让后将控件转换为常量,在其中对其输入对应的频率
。
图3.1波形产生控件
图3.2频率发声图
给其设置对应的按键
,选择按键的属性如图3.3所示
图3.3确定按钮属性设置
可以设置这个按钮的大小跟颜色,使控件看起来像一个电子琴的琴键,设置好后可以保存这个控件,控件如图3.4所示。
保存为.ctl格式的一个文件,以免设置别的按键时跟此次所设定的参数不一样,而导致电子琴的琴键看起来不整齐,而影响美观。
图3.4设置好后的按键
这是我设置的电子琴白键,而电子琴是由白健跟黑键共同构成的,所以还得用以上步骤设置一个黑色的按键如图3.5所示,同样保存为.ctl格式,留着待用。
图3.5设置后的黑键
3.3电子琴设计
在设计完电子琴单按键发声后,需要把每个按键有顺序的排布,而每个按键发声都是一个事件,所在在程序的后面板需要把他们放在时间结构中,在事件结构中对每个按键发声进行设置。
选择事件结构如图3.6所示。
图3.6事件结构的选择
在程序中选择事件结构,然后将本分支所处理的单按键放入该分支页面中,然后进行设置,由于电子琴的琴键通常需要按下去才会发出声音,所以本分支出发的条件就设置为当鼠标按下时触发。
事件结构设置如图3.7所示。
图3.7事件结构的设置
给对应的每个按键频率进行设置,然后将他们放在事件结构的每个分支中进行相同步骤的设置。
没个按键对应的频率如表3.1所示。
表3.1各个音阶所对应的频率
音符名
频率(Hz)
音符名
频率(Hz)
音符名
频率(Hz)
低音1
261.6256
中音1
523.2511
高音1
1046.502
低音1.5
277.1826
中音1.5
554.3653
高音1.5
1108.731
低音2
293.6648
中音2
587.3295
高音2
1174.659
低音2.5
311.127
中音2.5
622.254
高音2.5
1244.508
低音3
329.6276
中音3
659.2551
高音3
1318.51
低音4
349.2282
中音4
698.4565
高音4
1396.913
低音4.5
369.9944
中音4.5
739.9888
高音4.5
1479.978
低音5
391.9954
中音5
783.9909
高音5
1567.982
低音5.5
415.3047
中音5.5
830.6094
高音5.5
1661.219
低音6
440
中音6
880
高音6
1760
低音6.5
466.1638
中音6.5
932.3275
高音6.5
1864.655
低音7
493.8833
中音7
987.7666
高音7
1975.533
将事件结构的每个按键都设置为鼠标按下,如图3.8所示。
当然前提是要放置够足够的确定按钮(已经设置为相应的按键),这样就可以实现按下一个键,发一个音。
一个简易的电子琴按键发声的程序的基本功能就已经实现了。
图3.8
前面板的控件一定要按次序排布为电子琴的样子,如图3.9所示如从左到右白健依次是低音、中音、高音的1234567,黑键也是依次是低音、中音、高音的半音阶。
图3.9设置后的电子琴按键
3.4播放声音文件
播放声音文件是本次设计中带的一个小功能,主要是播放自己添加在程序中的几首歌曲,在真实的电子琴中,按下某个特定的键,可以演奏已经预设好的音乐,甚至是伴奏,但播放声音文件跟这些功能是基本一致的,由于在电脑上弹奏歌曲必定不如在真实的电子琴上进行弹奏,所以也没有必要用伴奏之类的设置,而是将其改进为播放歌曲。
首先先介绍下整个播放声音文件的程序框图。
图3.10播放声音程序框图
程序的主要功能为预设声音文件的路径、音量大小、播放、暂停、停止和播放声音文件。
先来介绍设置声音文件的路径,在前面中放入一个下拉列表,在下拉列表的属性中的编辑项中如图3.11所示设置对应的文件名字。
图3.11编辑项设置
在后面板中将下拉列表与条件结构相连,条件结构中添加一个分支,由于下拉列表的项值都是唯一的,所以将其与条件结构的分支相对应。
然后在函数
选板中选择创建路径的控件
,在基路径上选择连接当前VI路径
,在条件结构中与其想对应的项值中放入字符串常量,在其中输入所对应的歌名,
前面的..\是LabVIEW中当前VI路径的一种形式。
整个路径设置如图3.12所示。
图3.12文件路径
获取到声音文件将他连接到声音文件信息上,声音文件信息如图所示。
3.13文件信息控件介绍
路径输出给读取声音文件,将声音文件连接到配置声音输出中,对其音频文件进行操作,例如设置声音大小,播放、暂停与停止功能的实现,就是在这部分完成的。
第4章打包生成安装文件
由于拥有LabVIEW程序的电脑比较少,也就是说LabVIEW这个软件并不是很普及。
对于我来说,我希望自己的VI程序能在别人的计算机上运行,对此也就有了设计中的打包生成独立文件的一个环节。
首先打开我们的程序VI中的程序菜单中项目选项中选择新建项目,如图4.1所示。
图4.1新建项目
在这个菜单后会弹出如图4.2的所示的面板。
图4.2新建项目弹出面板
点击添加,程序就会添加到项目中。
如图4.3所示。
图4.3
右击上面的
我的电脑,弹出如图4.4所示菜单。
图4.4
点击添加->文件后如图4.5所示。
图4.5
由于VI中含有音频文件,所以在此处要将几个音频文件分别添加到程序中进行操作。
如图4.6所示。
图4.6
由于要生成安装文件前,必要将程序打包为应用程序,然后在包含在安装文件中才行,下面就先简单介绍下生成应用程序,如图4.7所示。
图4.7生成应用程序选择
点击后如图4.8所示。
图4.8
点击保存后,选择保存路径,输入文件名称后点击保存,如图4.9所示。
图4.9
点击确定后,弹出如图4.10所示面板。
图4.10
首先在信息中设置文件名称,保存路径,如图4.11所示。
图4.11
在源文件中设置启动VI以及始终包含文件,如图4.12所示。
图4.12
其余选择默认,选择生成,生成后返回项目界面,然后右键点击程序生成规范
,生成安装文件,如图4.13所示。
图4.13
选择源文件,将应用程序添加到安装程序中,如图4.14所示。
图4.14
点击添加
将应用程序添加到右边电子琴目录下,如图4.15所示。
图4.15
其余选择默认,点击生成。
返回项目浏览器,右键点击程序生成规范,选择生成全部,如图4.16所示。
图4.16
点击完成后,打开之前设置的保存路径,应用程序跟安装文件如图4.17和4.18所示。
图4.17应用程序
图4.18安装程序
所有文件都已经生成,打包生安装包文件也就完成了。
总结
随着毕业设计的完结,也就意味着大学四年马上就要结束了,本次毕设是用LabVIEW设计一款电子琴,毕业设计阶段是一个非常难得的理论与实践相结合的机会,通过本次的设计,让我摆脱了一直都是纸上谈兵的现状,实际结合的锻炼了我运用所学的专业基础知识,在老师的指导帮助下能基本独立的完成一款软件的编写,在起初开始拿到题目正式做设计时,突然发现有股力不从心,无从下手的感觉,但随着老师的第一次分析与指导,让我又看到希望,理清了头绪,明确了目标。
虽然毕业设计的内容不多,但实际做起来比较繁琐。
各种控件的应用,选择声音播放的系统,以及整个程序的关系。
LabVIEW的逻辑性并没有像其它编程语言那么严谨,但是他对各种循环的选择或者使用让我费尽心思,在书上找了看,看了试。
让我再一次学习了一遍,最终确定了主程序的框架,也给毕业设计起了一个良好的开端。
在程序的制作过程中,在各方面都有所提高,虽然提高是有限的但也是全面的,因为这一次的毕业设计让我积累许多经验,是我更加深刻的学习了有关本专业的专业课程。
这为我在未来的工作和学习中积累了宝贵的经验,也提高了我