日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

利用MATLAB对乐曲进行钢琴演奏【matlab调音_1】

發(fā)布時間:2024/8/1 循环神经网络 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用MATLAB对乐曲进行钢琴演奏【matlab调音_1】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

/*僅當(dāng)作學(xué)習(xí)筆記,若有紕漏歡迎友好交流指正,此外若能夠提供一點幫助將會十分榮幸*/

?

摘要:本文首先對鋼琴結(jié)構(gòu)以及matlab發(fā)聲原理進行簡單介紹。然后利用matlab擬合鋼琴的發(fā)聲,基于十二平均律利用sound函數(shù)編曲,并利用包絡(luò)函數(shù)對鋼琴聲音進行優(yōu)化。

圖1 Matlab發(fā)聲基本流程圖?

關(guān)于鋼琴的基礎(chǔ)知識

1鋼琴的基本結(jié)構(gòu)

1、擁有88個琴鍵,其中52個白色琴鍵,36個黑色琴鍵。第1號琴鍵為A2,第88號琴鍵為c5

圖2 鋼琴琴鍵與大譜對照表

2、第1號琴鍵A2為最低音,發(fā)出樂音的基頻為27.5Hz,第88號琴鍵c5為最高音,發(fā)出樂音的基頻為4186.01Hz。

3、鋼琴上存在著一個國際基準(zhǔn)音,為第49號琴鍵a1,也就是小字一組的第6個白鍵,其發(fā)出樂音的基頻為440Hz(也稱作標(biāo)準(zhǔn)音)

4、鋼琴是遵循十二平均律制制作的樂器,鋼琴上每相鄰的兩個琴鍵(包括黑、白琴鍵)的頻率差異稱為半音。半音是十二平均律體系中最小的頻率差異距離,即最小的音高距離。將一個八度音程十二等分為十二個半音,其數(shù)學(xué)意義為:

八度音程指的是從基頻至兩倍頻率的范圍。因此在八度音程中分為十二等分乃是把這個頻率范圍分為十二個等比級數(shù),其結(jié)果就是每個后續(xù)音的基頻為前一個音的1.059463 倍。

、分別為前后兩個音

表1 十二平均律對照表

2利用matlab模擬鋼琴發(fā)聲的原理

聲音是一種常見的物理現(xiàn)象。物體機械振動形成聲波,借助空氣媒介,傳至人類的耳膜,引起神經(jīng)反射,被人類感知為聲音,人腦又對聲音信號快速翻譯成人類可以理解的語言、音樂和各種已知的聲音。人類能感知的聲音在每秒振動數(shù)為20-20000次左右,即20 Hz-20000 Hz的頻率范圍。

音樂中使用的樂音通過長期改良、調(diào)整,已形成了固定組合,能夠表達(dá)作曲者的感情,傳遞作曲者的思想,形成音樂文化。考慮到人耳對聲波頻率的感知能力,音樂樂音被限定在27-4100 Hz的頻率范圍內(nèi),超過這個頻率范圍,人類不能清晰地感知,對表現(xiàn)塑造音樂形象的意義不大。

樂器的樂音音高特征對應(yīng)振動頻率

樂音音長特征對應(yīng)振動的持續(xù)時間長短

樂音的音強特征對應(yīng)振動的振幅

樂音的音色特征對應(yīng)著振動的頻譜分布

因此樂音特征由振動波的頻率、時長、振幅、頻譜四種物理量所決定。樂音四種物理量是樂器具有完美表現(xiàn)與感染效果不可缺失的四大元素,所以對樂音的研究,應(yīng)首先從物理學(xué)入手。物理學(xué)研究發(fā)現(xiàn),聲音的音高和聲波的振動頻率關(guān)系密切,琴弦振動時,觀察振動的波形圖,兩個相鄰?fù)较蚍逯抵g的間隔時間稱為振蕩周期,琴弦振動周期越短,則振動頻率越高,表現(xiàn)為產(chǎn)生的聲音音高越高。

簡而言之,要想利用matlab簡單的發(fā)出一段聲音,只要找到該聲音對應(yīng)的頻率、音長,并且最好利用包絡(luò)函數(shù)稍加潤色,然后利用程序進行相應(yīng)發(fā)聲即可。

正文

1樂曲識譜

這里以孫燕姿《遇見》的第一句歌詞為例,其對應(yīng)簡譜見下圖3。

圖3 《遇見》第一句歌詞簡譜

《遇見》為一首四四拍(四分音符為一拍,每小節(jié)四拍)的樂曲。在第一節(jié)中前3個“0”表示休止符,“5 3”表示兩個八分音符。(由于這里是音樂簡譜相關(guān)知識,就不班門弄斧了,故不作過多介紹)

2根據(jù)十二平均律表找到每個音對應(yīng)頻率

為了便于計算,這里我們?nèi) 队鲆姟返那{(diào)為1=C(與實際樂譜中的曲調(diào)不相同),即簡譜音符”1”對應(yīng)“do”。我們?nèi)≈幸魠^(qū)的小字一組,查看表1,即音符”1”對應(yīng)的頻率為523Hz。以此類推計算出第一句歌詞中各樂音對應(yīng)的頻率如表2所示。

5

3

3

5

2

2

3

2

2

1

1

784

659

659

784

587

587

659

587

587

523

523

表2 《遇見》第一句歌詞對應(yīng)音符頻率

3將頻率以及音長(節(jié)奏)信息輸入到一個函數(shù)中存儲

為了能夠利用sound函數(shù)播放聲音,需滿足sound(y,Fs)的結(jié)構(gòu),其中 Fs代表采樣率,取為Fs=8192(matlab的默認(rèn)采樣率區(qū)間為1000-38400,超出這個區(qū)間就不能播出聲音了)。而y代表音頻信號矩陣,我們將前面得到的音符頻率代入到正弦函數(shù)中得到一個信號值:

并且,為了使音樂具備基礎(chǔ)的節(jié)奏(即使得每一個音符有長有短),我們引入另外一個量rhythm,它用于控制每個音符的長度。例如二分音符對應(yīng)的rhythm值就大于四分音符對應(yīng)的rhythm值。則音頻信號矩陣y就可以表示為:

4利用包絡(luò)函數(shù)潤色聲音

利用plot函數(shù),可得信號矩陣y對應(yīng)的聲音波形為:

圖4 未進行包絡(luò)處理的聲音波形

從上圖中的波形可以看出,聲音幾乎沒有起伏,聲音播放出來人耳也只會聽到一段長長的“嗶”,這顯然是8行的,于時在此基礎(chǔ)上我們利用包絡(luò)函數(shù)對其進行潤色。最常見的包絡(luò)函數(shù)為指數(shù)衰減,最簡單衰減方式是對每個音乘以因子。當(dāng)我們對原始信號使用函數(shù)進行包絡(luò),得到的波形為

圖5 包絡(luò)函數(shù)處理后的聲音波形

5利用sound函數(shù)進行發(fā)聲

接下來的工作就很機械了,我們只需要將上面根據(jù)譜子得到的音符頻率、音長等信息導(dǎo)入正弦函數(shù),然后利用包絡(luò)函數(shù)潤色,并最終利用sound(y,Fs)函數(shù)發(fā)聲即可。

展示部分程序: 《遇見》主程序: Fs=8192; %聽見 冬天 的離開 y1=gen_wave_C5(8,0.5); y2=gen_wave_C5(5,0.7); y3=gen_wave_C5(8,0.5); y4=gen_wave_C5(3,0.7); y5=gen_wave_C5(5,0.5); y6=gen_wave_C5(3,0.55); y7=gen_wave_C5(1,0.7); y=[y1,y2,y3,y4,y5,y6,y7]; %我在某年某月 醒過來 y1=gen_wave_C5(1,0.4); y2=gen_wave_C4(12,0.5); y3=gen_wave_C4(10,0.4); y4=gen_wave_C4(12,0.5); y5=gen_wave_C5(1,0.4); y6=gen_wave_C4(12,0.5); y7=gen_wave_C5(1,0.5); y8=gen_wave_C5(3,0.5); y9=gen_wave_C5(5,0.65); y=[y,y1,y2,y3,y4,y5,y6,y7,y8,y9]; %播放聲音 sound(y,Fs);《遇見》gen_wave函數(shù)程序(包括指數(shù)衰減包絡(luò)處理) %音調(diào)函數(shù)C5(音高,節(jié)奏) function y= gen_wave_C5( tone,rhythm ) %定義采樣頻率 Fs=8192; x=linspace(0,2*rhythm*pi,floor(rhythm*Fs));%floor朝負(fù)無窮方向取整,保證采樣頻率為整 %定義基礎(chǔ)音階對應(yīng)的頻率(C,C#,D,D#,E,F,F#,G,G#,A,A#,B) freqs=[521,556,586,618,660,695,742,782,835,880,927,990]; %聲音 y=sin(freqs(tone)*x).*exp(-1*x); end

總結(jié)

以上是生活随笔為你收集整理的利用MATLAB对乐曲进行钢琴演奏【matlab调音_1】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。