版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第頁首先講下簡單的樂理知識,知道音樂是怎么演奏出來的自然就可以通過代碼來進行編排了。
1.演奏單音符
一首樂曲有若干音符組成,一個音符對應(yīng)一個頻率。我們知道到相對應(yīng)的頻率讓arduino輸出到蜂鳴器蜂鳴器就會放出相應(yīng)的聲音,這里有個表供大家參考:
2.音符的演奏時間
我們知道了音符是如何演奏出來的,下一步就是控制音符的演奏時間。每個音符都會播放一定的時間,這樣才能構(gòu)成一首優(yōu)美的曲子,而不是生硬的一個調(diào)的把所有的音符一股腦的都播放出來。如何確定每個音符演奏的單位時間呢?
我們知道,音符節(jié)奏分為一拍、半拍、1/4拍、1/8拍,我們規(guī)定一拍音符的時間為1;半拍為0.5;1/4拍為0.25;1/8拍為0.125……,所以我們可以為每個音符賦予這樣的拍子播放出來,音樂就成了。
好了我們看看如何將簡譜翻譯成對應(yīng)頻率和拍子。
以葫蘆娃為例:
先看下左上角1=D這里,用的是D調(diào),好那我們就看《音符頻率表》中的D行(紅色部分)
,
第一個音符是1但上面有個點,所以對應(yīng)的就是589,時間是一拍=1,
第二個音符6(沒有點)就是495,時間也是一拍=1,
第三個音符5即441,因為有下劃線所以是半拍=0.5,
……以此類推
第四0這里要注意下,這里是沒有聲音,但是要是用頻率0表示還是會有聲音(這個不懂),所以我們用一個很高頻率的聲音,這樣人耳聽不到就達到了沒有聲音的效果,所以頻率為-1。拍子=1拍
第五,再接著看到第一句歌詞葫蘆娃這個娃的音是3—,這表示是兩拍,后面每加一個“-”,表示拍子+1(1+1),本例中最多是加到4.
第六,第二句歌詞葫蘆娃這個娃,3?帶個點,點的意思是去3的拍子的一半,即3?的拍子是1+0.5
第七,大家可能會問那弧線怎么表示,這在音樂中屬于連音,我們要表示的話,可以稍微改下連音后面那個音的頻率,比如減少或增加一些數(shù)值(需自己調(diào)試),這樣表現(xiàn)會更流暢,但操作上更復(fù)雜了,本例沒有做連音的處理,大家有興趣可以自己調(diào)整下。
所以說了一大堆,規(guī)律就是時間上單個音符沒有下劃線,就是一拍(1),有下劃線是半拍(0.5),兩個下劃線是四分之一拍(0.25),有“—”=前面音符的拍子+1;頻率上就是按照音符是否帶點,點在上還是在下到表中查找就可以了。
至此原理清楚,隨便拿個簡譜來我們都可以翻譯成代碼了。
好,下面進入代碼部分,來看下這首《葫蘆娃》的代碼:
01.#defineNOTE_D0-1
02.#defineNOTE_D1294
03.#defineNOTE_D2330
04.#defineNOTE_D3350
05.#defineNOTE_D4393
06.#defineNOTE_D5441
07.#defineNOTE_D6495
08.#defineNOTE_D7556
09.
10.#defineNOTE_DL1147
11.#defineNOTE_DL2165
12.#defineNOTE_DL3175
13.#defineNOTE_DL4196
14.#defineNOTE_DL5221
15.#defineNOTE_DL6248
16.#defineNOTE_DL7278
17.
18.#defineNOTE_DH1589
19.#defineNOTE_DH2661
20.#defineNOTE_DH3700
21.#defineNOTE_DH4786
22.#defineNOTE_DH5882
23.#defineNOTE_DH6990
24.#defineNOTE_DH71112
25.//以上部分是定義是把每個音符和頻率值對應(yīng)起來,其實不用打這么多,但是都打上了,后面可以隨意編寫D調(diào)的各種歌,我這里用NOTE_D+數(shù)字表示音符,NOTE_DH+數(shù)字表示上面有點的那種音符,NOTE_DL+數(shù)字表示下面有點的那種音符。這樣后面寫起來比較好識別。
26.#defineWHOLE1
27.#defineHALF0.5
28.#defineQUARTER0.25
29.#defineEIGHTH0.25
30.#defineSIXTEENTH0.625
31.//這部分是用英文對應(yīng)了拍子,這樣后面也比較好看
32.inttune[]=
33.{
34.
NOTE_DH1,NOTE_D6,NOTE_D5,NOTE_D6,NOTE_D0,
35.
NOTE_DH1,NOTE_D6,NOTE_D5,NOTE_DH1,NOTE_D6,NOTE_D0,NOTE_D6,
36.
NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D6,NOTE_D0,NOTE_D6,
37.
NOTE_DH1,NOTE_D6,NOTE_D5,NOTE_DH1,NOTE_D6,NOTE_D0,
38.
39.
NOTE_D1,NOTE_D1,NOTE_D3,
40.
NOTE_D1,NOTE_D1,NOTE_D3,NOTE_D0,
41.
NOTE_D6,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D6,
42.
NOTE_D5,NOTE_D1,NOTE_D3,NOTE_D0,
43.
NOTE_DH1,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D6,
44.
NOTE_D5,NOTE_D1,NOTE_D2,NOTE_D0,
45.
NOTE_D7,NOTE_D7,NOTE_D5,NOTE_D3,
46.
NOTE_D5,
47.
NOTE_DH1,NOTE_D0,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D5,NOTE_D6,NOTE_D6,
48.
NOTE_D0,NOTE_D5,NOTE_D1,NOTE_D3,NOTE_D0,
49.
NOTE_DH1,NOTE_D0,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D5,NOTE_D6,NOTE_D6,
50.
NOTE_D0,NOTE_D5,NOTE_D1,NOTE_D2,NOTE_D0,
51.
NOTE_D3,NOTE_D3,NOTE_D1,NOTE_DL6,
52.
NOTE_D1,
53.
NOTE_D3,NOTE_D5,NOTE_D6,NOTE_D6,
54.
NOTE_D3,NOTE_D5,NOTE_D6,NOTE_D6,
55.
NOTE_DH1,NOTE_D0,NOTE_D7,NOTE_D5,
56.
NOTE_D6,
57.};//這部分就是整首曲子的音符部分,用了一個序列定義為tune,整數(shù)
58.
59.floatduration[]=
60.{
61.
1,1,0.5,0.5,1,
62.
0.5,0.5,0.5,0.5,1,0.5,0.5,
63.
0.5,1,0.5,1,0.5,0.5,
64.
0.5,0.5,0.5,0.5,1,1,
65.
66.
1,1,1+1,
67.
0.5,1,1+0.5,1,
68.
1,1,0.5,0.5,1,
69.
0.5,1,1+0.5,1,
70.
0.5,0.5,0.5,0.5,1+1,
71.
0.5,1,1+0.5,1,
72.
1+1,0.5,0.5,1,
73.
1+1+1+1,
74.
0.5,0.5,0.5+0.25,0.25,0.5+0.25,0.25,0.5+0.25,0.25,
75.
0.5,1,0.5,1,1,
76.
0.5,0.5,0.5+0.25,0.25,0.5+0.25,0.25,0.5+0.25,0.25,
77.
0.5,1,0.5,1,1,
78.
1+1,0.5,0.5,1,
79.
1+1+1+1,
80.
0.5,1,0.5,1+1,
81.
0.5,1,0.5,1+1,
82.
1+1,0.5,0.5,1,
83.
1+1+1+1
84.};//這部分是整首曲子的接拍部分,也定義個序列duration,浮點(數(shù)組的個數(shù)和前面音符的個數(shù)是一樣的,一一對應(yīng)么)
85.intlength;//這里定義一個變量,后面用來表示共有多少個音符
86.inttonePin=5;//蜂鳴器的pin
87.
88.voidsetup()
89.{
90.
pinMode(tonePin,OUTPUT);//設(shè)置蜂鳴器的pin為輸出模式
91.
length=sizeof(tune)/sizeof(tune[0]);//這里用了一個sizeof函數(shù),可以查出tone序列里有多少個音符
92.}
93.
94.voidloop()
95.{
96.
for(intx=0;x<length;x++)//循環(huán)音符的次數(shù)
97.
{
98.
tone(tonePin,tune[x]);//此函數(shù)依次播放
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 政府采購合同監(jiān)管政策3篇
- 換熱站施工承包合同3篇
- 旅游公司導(dǎo)游工作合同3篇
- 工業(yè)自動化配電柜購買合同3篇
- 數(shù)控加工刀具招標文件技術(shù)參數(shù)3篇
- 工業(yè)用地及廠房購買3篇
- 掌握采購合同的類型及選擇要點3篇
- 工人勞務(wù)合同模板3篇
- 旅游創(chuàng)新公司聯(lián)合辦公租賃合同3篇
- 工業(yè)設(shè)備拆除施工范本3篇
- 四川省簡陽市禾豐鎮(zhèn)初級中學-2025年蛇年寒假特色作業(yè)【課件】
- 《外盤期貨介紹》課件
- 滬教版(上海)七年級上學期全部章節(jié)知識點總結(jié)
- GB/T 45004-2024鋼鐵行業(yè)低碳企業(yè)評價指南
- 2024年全國統(tǒng)一電力市場建設(shè)情況及展望報告-中國電力企業(yè)聯(lián)合會(潘躍龍)
- 2024年招商部門工作計劃(3篇)
- DB21T 2748-2017 拉氏鱥池塘養(yǎng)殖技術(shù)規(guī)范
- 運河鎮(zhèn)江段航道疏浚工程環(huán)評資料環(huán)境影響
- 第一單元知識提綱(填空版) -2024-2025學年統(tǒng)編版道德與法治七年級 上冊
- 2024學年第一學期杭州市高三年級教學質(zhì)量檢測試題(杭州一模)含答案
- 生理學課件全套課件
評論
0/150
提交評論