黃俊華 劉富成



摘要:本文研究設計了一種基于LabVIEW的多功能電子琴,該虛擬電子琴有四個主要的功能:鼠標點擊虛擬琴鍵演奏、鍵盤控制演奏、顯示電子琴譜和播放鋼琴曲,文中闡述了這四個功能的設計思路與編程實現。
關鍵詞:LabVIEW 電子琴多功能
引言
LabVIEW軟件是由美國國家儀器公司(NI)開發的一種功能強大的虛擬儀器和數據處理分析軟件,它采用圖形化的編程語言 G語言。LabVIEW采用數據流的編程方式,程序的執行順序由數據流向決定,它自帶的函數庫可用于數據采集、串行設備的控制、數據分析和顯示等。
目前市場上的電子琴種類繁多、功能強大,但價格比較高昂,另外,電子琴的體積較大,占用空間較多,而利用LabVIEW編程設計的虛擬電子琴操作簡單、使用方便,不占用室內空間,可在一定程度上滿足人們對音樂彈奏的需求,供人們娛樂。
一、電子琴概述
電子琴,又稱電子合成器,屬于電子樂器類,其發音音量可以自由調節,音域較寬,和聲多樣,表現力極其豐富。電子琴還可以模仿多種音色,甚至可以奏出常規樂器所無法發出的聲音(如合唱聲,風雨聲等)。另外,電子琴在獨奏時,還可隨意配上類似打擊樂音響的節拍伴奏,適合于演奏節奏性較強的現代音樂。目前,電子琴主要分為玩具型電子琴、家庭型電子琴和演奏型電子琴。
二、系統設計
本文研究設計的基于LabVIEW的電子琴是由36個琴鍵所構成,包含高音、由音低音的音階以及半音階,也就是人們常稱的白鍵和黑鍵。該設計滿足了人們對電子琴音階的基本需求,能演奏絕大多數的歌曲。
參考實際的電子琴的功能,擬設計的基于LabVIEW的電子琴由四個主要的功能模塊組成,它們分別是:虛擬電子琴鍵(鼠標點擊)、虛擬電子琴鍵(鍵盤控制)、電子琴譜、播放鋼琴曲。根據設計的功能規劃,得到系統結構如圖l所示。
根據設計的基于LabVIEW的電子琴的功能規劃,設計好后的電子琴的前面板如圖2所示。
由圖2可以看到,前面板的中間主體為琴譜;琴譜選擇、琴譜大小縮放、琴譜位置調整等功能位于琴譜的右側;在前面板的左側,有結束Vl的“關機”鍵,還有選擇鋼琴曲、停止/播放鋼琴曲等功能鍵;虛擬電子琴鍵位于前面板的下方,一共由36個黑鍵與白鍵組成,包含了高音、中音、低音音階以及半音階。
如圖3所示為虛擬電子琴鍵的高音、中音、低音音階以及半音階的劃分示意。
1.鼠標控制電子琴鍵模塊
鼠標控制電子琴鍵模塊的功能是用戶可以通過鼠標點擊Vl前面板上的虛擬電子琴鍵獲得相應琴鍵的聲音,實現電子琴發聲演奏的基本功能。虛擬電子琴鍵如圖3所示。
2.鍵盤控制電子琴鍵模塊
鍵盤控制電子琴鍵模塊的功能是用戶可以通過按鍵盤上指定的鍵來獲得電子琴相應琴鍵的聲音,通過鍵盤實現電子琴發聲演奏的基本功能。通過鍵盤演奏,比通過鼠標點擊虛擬琴鍵演奏更與實際彈奏電子琴相似。
3.電子琴譜模塊
電子琴譜模塊的功能是為用戶提供琴譜,方便用戶彈奏時參考琴譜,也可以為用戶學習彈奏新的鋼琴曲提供便利,這是一項非常實用的功能。結合實際情況后,本文研究設計的電子琴譜模塊主要包括四個部分,分別是:琴譜展示窗口、琴譜選擇、琴譜大小縮放和調節琴譜位置。
4.播放鋼琴曲模塊
播放鋼琴曲模塊的主要功能是播放鋼琴曲,不僅可以為用戶學習鋼琴曲提供方便,而且可以提供娛樂、放松心情的途徑。在實際的電子琴中,一般均附帶該項功能。
我們設計的播放鋼琴曲模塊有三個功能,分別是:選擇鋼琴曲、播放歌曲指示燈、停止/播放鋼琴曲。
三、發布應用程序
編寫完成多功能電子琴的程序后,用戶實際上并不希望程序只能在LabVIEW開發環境中運行。一方面是由于LabVIEW開發環境比較昂貴,另一方面LabVIEW開發環境的安裝與運行都是非常耗費時間和計算機資源。許多家庭的計算機中可能并沒有安裝LabVIEW軟件,因此,應該向用戶發布獨立的安裝包或可執行文件。
生成獨立可執行文件后,可以將可執行文件和相關支持軟件(如LaloVIEW Run-Time引擎、儀器驅動等)打包在一起作為一個安裝程序發布,這樣就可避免讓用戶再麻煩地單獨安裝LabVIEW RunTime引擎或硬件驅動,安裝程序即常見的Setup文件。
四、結束語
本文研究設計了一種基于LabVIEW的由36個琴鍵組成的多功能電子琴,該電子琴除了可實現鍵盤彈奏外,還能夠選擇與顯示琴譜、選擇與播放鋼琴曲,為人們的練習電子琴提供了便利。然而,基于LabVIEW的電子琴與實際的電子琴相比仍然存在一定的差距,例如電子琴的音色相當豐富,有鋼琴、多種弦樂、多種管樂、多種打擊樂音色,本次設計的虛擬電子琴只模仿了鋼琴的音色。
參考文獻
[1]劉其和,李云明,等.LabVIEW虛擬儀器程序設計與應用[M].北京:化學工業出版社,2011.
[2]張國華,朱麗琴,基于LabVIEW可彈奏電子琴的設計[J].電子世界,2013(12):123-124.
[3]舒景東,劉龍.基于LabVIEW的簡易鍵盤電子琴設計[J].山西電子技術,2017(4):66-68