用matlab做音乐仿真,Matlab课程设计报告--MATLAB GUI的音乐键盘仿真
Matlab課程設(shè)計報告--MATLAB GUI的音樂鍵盤仿真
1 MATLAB MATLAB 實(shí)踐實(shí)踐 課程設(shè)計課程設(shè)計 目目 錄錄 1.1.設(shè)計目的設(shè)計目的3 3 2.2.題目分析題目分析3 3 3.3.總體設(shè)計總體設(shè)計4 4 4 4. .具體設(shè)計具體設(shè)計4 4 5.5.結(jié)果分析結(jié)果分析1 15 5 6.6.心得體會心得體會1 15 5 2 1 1、、 設(shè)計目的設(shè)計目的 運(yùn)用 MATLAB 實(shí)現(xiàn) MATLAB 的 GUI 程序設(shè)計。 2 2、、題目分析題目分析 課程設(shè)計題目 MATLAB GUI 的音樂鍵盤仿真 課程設(shè)計的基本要求 1)熟悉和掌握 MATLAB 程序設(shè)計方法。 2)掌握 MATLAB GUI 程序設(shè)計。 3)學(xué)習(xí)音樂合成基本知識。 設(shè)計分析 這次使用的設(shè)計軟件是 MATLAB 的 GUI 模塊,要設(shè)計一個音樂鍵盤要知道一 個最簡單的鍵盤本身要有 36 個發(fā)音鍵,既 21 個音階和 15 個輔音階。于是 就要在界面上畫出 36 個 pushbutton 鍵,再根據(jù)其他要求的功能設(shè)計出其他 相應(yīng)的模塊。 模擬鍵盤發(fā)音是使用音頻函數(shù)soundsc將不同頻率的函數(shù)以聲音的模式表現(xiàn) 出來,而每個音階相差頻率 f440*22/12;音階與相應(yīng)的輔音階相差頻率 f440*21/12。有了音樂合成的這些基本知識后便可根據(jù)自己需要設(shè)計界面 根據(jù)功能編寫相應(yīng)的回調(diào)函數(shù)。 課程設(shè)計的內(nèi)容 學(xué)習(xí) MATLAB GUI 程序設(shè)計,設(shè)計和實(shí)現(xiàn)一個音樂鍵盤仿真系統(tǒng)。要求按 照軟件工程方法,根據(jù)需求進(jìn)行程序的功能分析和界面設(shè)計,給出設(shè)計詳細(xì) 說明。然后按照自己擬定的功能要求進(jìn)行程序設(shè)計和調(diào)試。 1)設(shè)計音樂鍵盤 GUI 界面,實(shí)現(xiàn)單音鍵盤的發(fā)聲。 2)實(shí)現(xiàn)鍵盤的雙音多頻,即每個鍵盤對應(yīng)低音頻組的一個頻率和高音頻組 的一個頻率,實(shí)現(xiàn)按鍵的發(fā)出雙音。 3)能改變音樂包絡(luò)形式,實(shí)現(xiàn)音型的改變。 4)能夠演奏一段音樂。 5)改變鍵盤的音色,給基音加上泛音序列,模擬不同的樂器演奏。 6)選作根據(jù)節(jié)奏節(jié)拍,根據(jù)簡譜自動演奏一段音樂。 3 3 3、總體設(shè)計、總體設(shè)計 其中琴鍵區(qū)域?qū)崿F(xiàn)按鍵發(fā)聲,可用鼠標(biāo)點(diǎn)擊,也可以用鍵盤實(shí)現(xiàn);顯示屏區(qū) 域?qū)崿F(xiàn)聲音波形的實(shí)時顯示;控制區(qū)域?qū)崿F(xiàn)對整個系統(tǒng)的控制,包括音樂播放、 暫停、停止,視屏播放,樂器切換,節(jié)拍切換和諧波切換。 4 4、、具體設(shè)計具體設(shè)計 外板設(shè)計圖如下 4 4.1 琴鍵區(qū)域設(shè)計 (1) 界面設(shè)計 (2) 單個按鍵函數(shù)設(shè)計 該琴鍵設(shè)計為 C 調(diào),1 對應(yīng)頻率為 261.63Hz,相鄰兩鍵為一個半音,頻率 比為21/12,因此后面頻率類推,如 2 對應(yīng) 293.67Hz。 單個按鍵函數(shù)如下 function pushbutton1_CallbackhObject, eventdata, handles f261.63; if gethandles.radiobutton3,Value1; N8000; end; if gethandles.radiobutton4,Value1; N2000; end; if gethandles.radiobutton5,Value1; N25000; end; if gethandles.radiobutton9,Value1; T1; end; if gethandles.radiobutton10,Value1; T0.5; end; if gethandles.radiobutton11,Value1; T0.25; end; n01/NT; xexp-2*n; if gethandles.radiobutton14,Value1; ftx.*sinf*2*pi*n; end if gethandles.radiobutton13,Value1; ftx.*sinf*2*pi*n0.2*sinf*2*2*pi*n; end if gethandles.radiobutton12,Value1; 5 ftx.*sinf*2*pi*n
總結(jié)
以上是生活随笔為你收集整理的用matlab做音乐仿真,Matlab课程设计报告--MATLAB GUI的音乐键盘仿真的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: A/B 测试:数据驱动的产品优化
- 下一篇: gama校正算法matlab,Gamma