用電腦軟件自制流行鋼琴歌曲音樂0003_第1頁
用電腦軟件自制流行鋼琴歌曲音樂0003_第2頁
用電腦軟件自制流行鋼琴歌曲音樂0003_第3頁
用電腦軟件自制流行鋼琴歌曲音樂0003_第4頁
用電腦軟件自制流行鋼琴歌曲音樂0003_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、清華大學(xué)基于LABVIEV鋼琴界面設(shè)計課程名稱:LABVIEV程序設(shè)計題 目LABVIE鋼琴界面設(shè)計系統(tǒng)院 系:計算機(jī)學(xué)院組名:張大偉組員:張大偉授課教師:范祥林日期:2018年6月10日本實驗是基于LABVIEV軟件及mySQ制作的按鍵鋼琴設(shè)計內(nèi)容摘要整個裝置可以完成實時彈奏,實時記錄彈奏樂譜;還可以按照先前記錄下 來的樂譜播放鋼琴曲。系統(tǒng)界面采用了擬物化的設(shè)計風(fēng)格,古風(fēng)字體,后現(xiàn)代 化的虛擬按鍵。設(shè)計總體思想是利用 mySQL勺8個數(shù)字I/O通道作為琴鍵輸入, 通過LABVIEW編程合成出波形數(shù)據(jù),經(jīng)過 D/A變換后通過Audio Out端口放大 輸出的。關(guān)鍵詞:LabVIEW mySQL

2、按鍵鋼琴 擬物化第一章 虛擬鋼琴設(shè)計的目的與意義LABVIEV在測控領(lǐng)域的應(yīng)用非常廣泛。有別于其他編程語言其特點、應(yīng)用 大致可分為如下幾個方面:測試測量:LABVIEW!初就是為測試測量而設(shè)計的, 因而測試測量也就是現(xiàn)在LABVIEW!廣泛的應(yīng)用領(lǐng)域。經(jīng)過多年的發(fā)展,LABVIE在測試測量領(lǐng)域獲得了廣泛的承認(rèn)。至今,大多數(shù)主流的測試儀器、數(shù)據(jù)采集設(shè)備都擁有專門的LABVIEW區(qū)動程序,使用LABVIEWT以非常便捷的控制這些硬件設(shè)備。同時,用戶也可以十 分方便地找到各種適用于測試測量領(lǐng)域的 LABVIEW工具包。這些工具包幾乎覆 蓋了用戶所需的所有功能,用戶在這些工具包的基礎(chǔ)上再開發(fā)程序就容易

3、多了。 有時甚至于只需簡單地調(diào)用幾個工具包中的函數(shù),就可以組成一個完整的測試 測量應(yīng)用程序??焖匍_發(fā):根據(jù)筆者參與的一些項目統(tǒng)計,完成一個功能類似 的大型應(yīng)用軟件,熟練的LABVIEW?序員所需的開發(fā)時間,大概只是熟練的 C 程序員所需時間的 1/5 左右1 。所以,如果項目開發(fā)時間緊張,應(yīng)該優(yōu)先考慮 使用LABVIEW以縮短開發(fā)時間。仿真:LABVIEWfe含了多種多樣的數(shù)學(xué)運(yùn)算函 數(shù),特別適合進(jìn)行模擬、仿真、原型設(shè)計等工作。在設(shè)計機(jī)電設(shè)備之前,可以 先在計算機(jī)上用。LABVIEV搭建仿真原型,驗證設(shè)計的合理性,找到潛在的問題。在高等教育領(lǐng)域,有時如果使用LABVIEWS行軟件就可以達(dá)到同樣

4、的效果, 使學(xué)生不致失去實踐的機(jī)會??缙脚_:如果同一個程序需要運(yùn)行于多個硬件設(shè) 備之上,也可以優(yōu)先考慮使用 LABVIEW LABVIEV具有良好的平臺一致性。 LABVIEV的代碼不需任何修改就可以運(yùn)行在常見的三大臺式機(jī)操作系統(tǒng)上: Windows Mac OS及 Linux。除此之外,LABVIEW5支持各種實時操作系統(tǒng)和 嵌入式設(shè)備,比如常見的PDA FPGA以及運(yùn)行VxWorks和 PharLap系統(tǒng)的RT設(shè) 備。除此之外LABVIEW用自身的附加模塊可實現(xiàn)集成部署硬件,信號處理, 分析和連接控制與仿真數(shù)據(jù)管理,記錄與報表生成開發(fā)工具和驗證,應(yīng)用發(fā)布 等機(jī)能,因此LABVIEW! 門應(yīng)

5、用廣泛,軟硬件結(jié)合簡易的一門圖形化編程語 言,在工業(yè)、測試、應(yīng)用開發(fā)等方面可發(fā)揮重要作用,這次課程設(shè)計正是讓我 們初步認(rèn)識這個系統(tǒng)的機(jī)會,可以為我們在以后的相關(guān)領(lǐng)域的個人發(fā)展中,起 到一個墊腳石的作用第二章 基于LABVIEV虛擬按鍵鋼琴的設(shè)計與調(diào)試2.1 總體設(shè)計要求:利用mySQ的8個數(shù)字I/O通道作為琴鍵輸入,通過LABVIEV編程合成出 所需頻率的聲音,經(jīng)過 D/A 變換后通過 Audio Out 端口放大輸出。而且可以同 時按下兩個或更多的按鍵,輸出的聲音也是這些聲音的疊加。 3 仿照電子琴功 能,還可以錄入彈奏的聲音并可以控制其播放已記錄的聲音。設(shè)計電子琴,首先得用播放聲音之類的控

6、件,在選擇播放波形還是播放放 聲音過程的控件時,我選用了播放波形的控件,原因是因為波形的頻率容易設(shè) 置,能讓聲音聽起來更接近,而播放音頻文件,在網(wǎng)上很難找到相應(yīng)的音頻, 而自己錄制的話,由于條件有限,很難完成,就選用了播放波形控件。先試著 讓一個按鍵發(fā)出聲音,選用波形產(chǎn)生控件,可設(shè)置聲音頻率。 4 然后選擇播放 波形控件如圖將其與對應(yīng)的對應(yīng)的頻率相連接就能實現(xiàn)聲音的產(chǎn)生如所示,右 擊信號仿真器的頻率,創(chuàng)建一個輸入控件,讓后將控件轉(zhuǎn)換為常量,在其中對 其輸入對應(yīng)的頻率。2.2 設(shè)計運(yùn)行及調(diào)試:實驗運(yùn)行之后可實現(xiàn)如要求所示的所有內(nèi)容,另外還添加了分區(qū)彈奏播放 的功能(利用 8個按鍵共可彈奏 24個

7、音階。 5 這就需要將 24個音階分成三個 區(qū)域按照要求選定區(qū)域,實時彈奏和播放聲音記錄文件時均可使用)現(xiàn)在就運(yùn)行效果進(jìn)行品評:程序運(yùn)行后:* J J1F: E小字1宦脫丫.mi.需等待幾秒才可輸入按鍵;同時靈敏度不強(qiáng)按鍵時間較短或者按鍵力度較 輕均不能觸發(fā)頻率發(fā)聲圖給其設(shè)置對應(yīng)的按鍵,選擇按鍵的屬性如所示確定按 鈕屬性設(shè)置可以設(shè)置這個按鈕的大小跟顏色,使控件看起來像一個電子琴的琴 鍵,設(shè)置好后可以保存這個控件,控件如所。 格式的一個文件,以免設(shè)置別 的按鍵時跟此次所設(shè)定的參數(shù)不一樣,而導(dǎo)致電子琴的琴鍵看起來不整齊,而 影響美觀。調(diào)試過程中遇到幾項問題,均得到一定程度的解決:用公式產(chǎn)生波形在進(jìn)

8、行濾波后得到的聲音效果和鋼琴音差距極大,而且還 有尾音較刺耳。所以還是決定制作鋼琴的音樂文件來作為模擬輸入的波形。3效果好很多,但作為代價代碼運(yùn)行速率有所降低。作為鋼琴界面另外一個關(guān)于 聲音的問題是聲音合成的問題,波形只能相同采樣率才能合成,因此需要多個 按鍵同時按下的時候其他沒有按下的也需要作為空白進(jìn)行合成。這里解決方法 是讀取空白聲音文件。2.3前面板界面設(shè)計在設(shè)計完電子琴單按鍵發(fā)聲后,需要把每個按鍵有順序的排布,而每個按 鍵發(fā)聲都是一個事件,所在在程序的后面板需要把他們放在時間結(jié)構(gòu)中,在事件結(jié)構(gòu)中對每個按鍵發(fā)聲進(jìn)行設(shè)置。選擇事件結(jié)構(gòu)。事件結(jié)構(gòu)的選擇在程序中選擇事件結(jié)構(gòu),然后將本分支所處理

9、的單按鍵放入該分支頁面中,然后進(jìn)行 設(shè)置,由于電子琴的琴鍵通常需要按下去才會發(fā)出聲音,所以本分支出發(fā)的條 件就設(shè)置為當(dāng)鼠標(biāo)按下時觸發(fā)。關(guān)于TDM數(shù)據(jù)采集,tdms是實時采集數(shù)據(jù)并寫入。因此不必將其置于 while 循環(huán)之中。關(guān)于讀取,按照先前的想法是依次讀出數(shù)據(jù),由于擁有LABVIEV程序的電腦比較少,也就是說LABVIEW這個軟件并不是很普及。對于我來說, 我希望自己的VI程序能在別人的計算機(jī)上運(yùn)行,對此也就有了設(shè)計中的打包生 成獨立文件的一個環(huán)節(jié)。 首先打開我們的程序VI中的程序菜單中項目選項中 選擇新建項目。后來發(fā)現(xiàn)不能實現(xiàn)依次讀出。這里利用數(shù)組暫存的功能先將數(shù)據(jù)讀出到數(shù) 組,再將其間隔

10、時間按照每一列讀出。第三章 基于LABVIEV便攜式鋼琴的系統(tǒng)設(shè)計3.1系統(tǒng)總體設(shè)計函數(shù)選板子選板:函數(shù)選板編程子選板功能模板就是LABVIEV將傳統(tǒng)儀器上的各種測試功能、信號分析文件操作以及輸入/輸出(1/0)接口設(shè)備的驅(qū)動做 成可供直接調(diào)用的庫函數(shù)。9使用時只需根據(jù)預(yù)完成的功能與操作,從子模板 上選擇相應(yīng)的“圖標(biāo)”放在流程圖編輯窗口中相應(yīng)的位置上即可。該模板上的每一個頂層圖標(biāo)都表示一個子模板(如圖所示)。它可以用Win dows菜單下已經(jīng)提意見有條件的 ShowFu netio nspalette 功能打開它,也 可以在框圖程序窗口的空白處點擊鼠標(biāo)右鍵以彈出功能模板。而且它只有打開了框圖程

11、序窗口后才能出現(xiàn)。它包括結(jié)構(gòu)子模板、數(shù)值運(yùn) 算子模板、布爾邏輯子模板、字符串運(yùn)算子模板、數(shù)組子模板、類子模板、比 較子模板、時間和對話框子模板、文件輸入/輸出子模板、儀器控制子模板、儀 器驅(qū)動程序庫、數(shù)據(jù)采集子模板、信號處理子模板、數(shù)學(xué)模型子模塊、圖形與 聲音子模塊、通訊子模板、應(yīng)用程序控制子模塊、底層接口子模塊、文檔生成 子模板、示教課程子模板、用戶自定義的子 VI模板和選擇VI子程序等子模板 系統(tǒng)總體流程框圖:外3系統(tǒng)總體設(shè)計是系統(tǒng)總體可實現(xiàn)自由彈奏,錄制樂曲,播放樂曲,調(diào)整播 放鍵盤區(qū)域的功能。10在設(shè)計完電子琴單按鍵發(fā)聲后,需要把每個按鍵有順序 的排布,而每個按鍵發(fā)聲都是一個事件,所在

12、在程序的后面板需要把他們放在 時間結(jié)構(gòu)中,在事件結(jié)構(gòu)中對每個按鍵發(fā)聲進(jìn)行設(shè)置。選擇事件結(jié)構(gòu)。11事件結(jié)構(gòu)的選擇在程序中選擇事件結(jié)構(gòu),然后將本分支所處理的單按鍵放入該分支 頁面中,然后進(jìn)行設(shè)置,由于電子琴的琴鍵通常需要按下去才會發(fā)出聲音,所 以本分支出發(fā)的條件就設(shè)置為當(dāng)鼠標(biāo)按下時觸發(fā)。事件結(jié)構(gòu)設(shè)置。3.2模塊設(shè)計fSB程序的主要功能為預(yù)設(shè)聲音文件的路徑、音量大小、播放、暫停、停止和 播放聲音文件。先來介紹設(shè)置聲音文件的路徑,在前面中放入一個下拉列表,在下拉列表 的屬性中的編輯項中所示設(shè)置對應(yīng)的文件名字。12編輯項設(shè)置在后面板中將下 拉列表與條件結(jié)構(gòu)相連,條件結(jié)構(gòu)中添加一個分支,由于下拉列表的項值

13、都是 唯一的,所以將其與條件結(jié)構(gòu)的分支相對應(yīng)。然后在函數(shù)選板中選擇創(chuàng)建路徑的控件徑上選擇連接當(dāng)前VI路徑,在基路,在條件結(jié)構(gòu)中與其想對應(yīng)的項值中放入字符串常量,在其中輸入所對應(yīng)的歌名, 前面的是LABVIEW中當(dāng)前VI路徑的一種形式。13整個路徑設(shè)置所示。獲取到 聲音文件將他連接到聲音文件信息上,聲音文件信息如圖所示。文件信息控件介紹路徑輸出給讀取聲音文件,將聲音文件連接到配置聲音 輸出中,對其音頻文件進(jìn)行操作,例如設(shè)置聲音大小,播放、暫停與停止功能 的實現(xiàn),就是在這部分完成的。321鋼琴界面主面板設(shè)計主結(jié)構(gòu)分為上下部分,上面是曲譜,下面是彈奏部分??梢赃x擇彈奏/播放/錄音等功能。全鍵盤24個

14、按鍵,可以通過mySQL俞入彈奏其中的8個,再通 過鍵盤從按鍵鍵盤輸入mySQL通道數(shù)字信號,寫入一維數(shù)組。再用索引將 8個數(shù) 字信號分別鏈接到聲音讀取判斷結(jié)構(gòu)。例如:輸入的是 00100100, 8個判斷結(jié) 構(gòu)中第三個和第六個取真,其他取假。把其中的聲音進(jìn)行合成,用mySQL俞出的音頻信號。3.2.2鋼琴數(shù)據(jù)輸入模塊每隔0.5s記錄一次采樣的數(shù)據(jù)信號,分8通道記錄名稱為no1-no8。錄音開關(guān) 這個布爾按鈕控制錄音通斷。前面板的控件一定要按次序排布為電子琴的樣子,如圖3.9所示如從左到右白健依次是低音、中音、高音的1 2 3 4 5 6 7,黑鍵也是依次是低音、中音、 高音的半音階。設(shè)置后的

15、電子琴按鍵 3.4播放聲音文件播放聲音文件是本次設(shè) 計中帶的一個小功能,主要是播放自己添加在程序中的幾首歌曲,在真實的電 子琴中,按下某個特定的鍵,可以演奏已經(jīng)預(yù)設(shè)好的音樂,甚至是伴奏,但播 放聲音文件跟這些功能是基本一致的,由于在電腦上彈奏歌曲必定不如在真實 的電子琴上進(jìn)行彈奏,所以也沒有必要用伴奏之類的設(shè)置,而是將其改進(jìn)為播 放歌曲。程序的主要功能為預(yù)設(shè)聲音文件的路徑、音量大小、播放、暫停、停止和 播放聲音文件。先來介紹設(shè)置聲音文件的路徑,在前面中放入一個下拉列表, 在下拉列表的屬性中的編輯項中如圖所示設(shè)置對應(yīng)的文件名字。編輯項設(shè)置在 后面板中將下拉列表與條件結(jié)構(gòu)相連,條件結(jié)構(gòu)中添加一個分

16、支,由于下拉列 表的項值都是唯一的,所以將其與條件結(jié)構(gòu)的分支相對應(yīng)。3.2.3鋼琴數(shù)據(jù)輸出模塊 Mots interprjtwr.vi卻F)Men 8B( mo ian kkwi mm4 n5fHjT iHpX Wt# pFUMGLE NO1T考慮到讀取tdms文件不能順序讀出。這里設(shè)置其先讀入一個二維數(shù)組;再將數(shù) 組中的數(shù)按照列的順序讀出來;并且可以循環(huán)播放該數(shù)據(jù)記錄文件內(nèi)容。另外附加的如鍵盤區(qū)選中,實時曲譜等功能在這里不再一一介紹。用公式 產(chǎn)生波形在進(jìn)行濾波后得到的聲音效果和鋼琴音差距極大,而且還有尾音較刺 耳。所以還是決定制作鋼琴88音的音樂文件來作為模擬輸入daq的波形。效果 好很多,

17、但作為代價代碼運(yùn)行速率有所降低。另外一個關(guān)于聲音的問題是聲音合成的問題,波形只能相同采樣率才能合 成,因此需要多個按鍵同時按下的時候其他沒有按下的也需要作為空白進(jìn)行合 成。這里解決方法是讀取空白聲音文件,再進(jìn)行疊加關(guān)于 TDM數(shù)據(jù)采集,tdms 是實時采集數(shù)據(jù)并寫入。因此不必將其置于while循環(huán)之中。關(guān)于讀取,按照先前的想法是依次讀 出數(shù)據(jù),后來發(fā)現(xiàn)不能實現(xiàn)依次讀出。這里利用數(shù)組暫存的功能先將數(shù)據(jù)讀出 到數(shù)組,再將其間隔時間按照每一列讀出。第四章LABVIEV收獲體會和總結(jié)展望從此次課題中的論文編寫和LABVIEW勺設(shè)計制作全都是趙家龍一個人完成 的。我學(xué)到了很多東西,對LABVIEW勺理解

18、又上升了一個檔次,從一個什么都 不懂的小白到現(xiàn)在能自己創(chuàng)作的LABVIEW勺設(shè)計者。在能實現(xiàn)一個不錯的作品。本次畢設(shè)是用LABVIEV設(shè)計一款電子鋼琴,畢業(yè)設(shè)計階段是一個非常難得 的理論與實踐相結(jié)合的機(jī)會,通過本次的設(shè)計,讓我擺脫了一直都是紙上談兵 的現(xiàn)狀,實際結(jié)合的鍛煉了我運(yùn)用所學(xué)的專業(yè)基礎(chǔ)知識,在老師的指導(dǎo)幫助下 能基本獨立的完成一款軟件的編寫,在起初開始拿到題目正式做設(shè)計時,突然 發(fā)現(xiàn)有股力不從心,無從下手的感覺,但隨著老師的第一次分析與指導(dǎo),讓我 又看到希望,理清了頭緒,明確了目標(biāo)。學(xué)會了應(yīng)用各種程序結(jié)構(gòu),對聲音的輸入,輸出,文件的寫入與讀取都有 了自己的認(rèn)識。在程序設(shè)計的過程中,也碰

19、到了不少的問題,通過查找 LABVIEW?助,查看工具書,上網(wǎng)查找資料和 cnki上的論文對問題的解決有了 自己的方法。當(dāng)然,有些問題確實也沒有得到實質(zhì)上的解決,比如主從 vi 的并行,比如 對某些事件的響應(yīng)順序,再比如數(shù)字濾波器的具體應(yīng)用與選擇方法等等沒有找 到好的解決辦法,這個都是在以后的學(xué)習(xí)過程中要改進(jìn)的地方。當(dāng)然,在短時 間內(nèi)想要做出一個非常復(fù)雜的 vi 還是很不現(xiàn)實的,知識的積累需要一個過程。對于一個問題,總會有各種各樣的方法,這個都是在以后的學(xué)習(xí)過程中要 改進(jìn)的地方。當(dāng)然,在短時間內(nèi)想要做出一個非常復(fù)雜的 vi 還是很不現(xiàn)實的, 知識的積累需要一個過程。對于一個問題,總會有各種各樣的方法,前提是知 識要豐富,有足夠的認(rèn)識才行,所以學(xué)習(xí)一門知識系統(tǒng)點也是很有必要的。對條件結(jié)構(gòu)的使用更加嫻熟,對屬性節(jié)點,層序結(jié)構(gòu)使用更為熟練,電子 琴本身項目的原因也讓我們擴(kuò)充了多方面的知識,不論是從編程,理論知識, 設(shè)計,其他軟件使用方面都對我們有所鍛煉,但是即便如此,我們的程序仍有很大的提升空間,比如,我們可以擴(kuò)展無線控制模塊,MATLAB音處理模塊, 等更多系統(tǒng)的擴(kuò)展,但是這也需要我們積累更多的知

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論