版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第頁(yè)首先講下簡(jiǎn)單的樂(lè)理知識(shí),知道音樂(lè)是怎么演奏出來(lái)的自然就可以通過(guò)代碼來(lái)進(jìn)行編排了。
1.演奏單音符
一首樂(lè)曲有若干音符組成,一個(gè)音符對(duì)應(yīng)一個(gè)頻率。我們知道到相對(duì)應(yīng)的頻率讓arduino輸出到蜂鳴器蜂鳴器就會(huì)放出相應(yīng)的聲音,這里有個(gè)表供大家參考:
2.音符的演奏時(shí)間
我們知道了音符是如何演奏出來(lái)的,下一步就是控制音符的演奏時(shí)間。每個(gè)音符都會(huì)播放一定的時(shí)間,這樣才能構(gòu)成一首優(yōu)美的曲子,而不是生硬的一個(gè)調(diào)的把所有的音符一股腦的都播放出來(lái)。如何確定每個(gè)音符演奏的單位時(shí)間呢?
我們知道,音符節(jié)奏分為一拍、半拍、1/4拍、1/8拍,我們規(guī)定一拍音符的時(shí)間為1;半拍為0.5;1/4拍為0.25;1/8拍為0.125……,所以我們可以為每個(gè)音符賦予這樣的拍子播放出來(lái),音樂(lè)就成了。
好了我們看看如何將簡(jiǎn)譜翻譯成對(duì)應(yīng)頻率和拍子。
以葫蘆娃為例:
先看下左上角1=D這里,用的是D調(diào),好那我們就看《音符頻率表》中的D行(紅色部分)
,
第一個(gè)音符是1但上面有個(gè)點(diǎn),所以對(duì)應(yīng)的就是589,時(shí)間是一拍=1,
第二個(gè)音符6(沒(méi)有點(diǎn))就是495,時(shí)間也是一拍=1,
第三個(gè)音符5即441,因?yàn)橛邢聞澗€所以是半拍=0.5,
……以此類推
第四0這里要注意下,這里是沒(méi)有聲音,但是要是用頻率0表示還是會(huì)有聲音(這個(gè)不懂),所以我們用一個(gè)很高頻率的聲音,這樣人耳聽(tīng)不到就達(dá)到了沒(méi)有聲音的效果,所以頻率為-1。拍子=1拍
第五,再接著看到第一句歌詞葫蘆娃這個(gè)娃的音是3—,這表示是兩拍,后面每加一個(gè)“-”,表示拍子+1(1+1),本例中最多是加到4.
第六,第二句歌詞葫蘆娃這個(gè)娃,3?帶個(gè)點(diǎn),點(diǎn)的意思是去3的拍子的一半,即3?的拍子是1+0.5
第七,大家可能會(huì)問(wèn)那弧線怎么表示,這在音樂(lè)中屬于連音,我們要表示的話,可以稍微改下連音后面那個(gè)音的頻率,比如減少或增加一些數(shù)值(需自己調(diào)試),這樣表現(xiàn)會(huì)更流暢,但操作上更復(fù)雜了,本例沒(méi)有做連音的處理,大家有興趣可以自己調(diào)整下。
所以說(shuō)了一大堆,規(guī)律就是時(shí)間上單個(gè)音符沒(méi)有下劃線,就是一拍(1),有下劃線是半拍(0.5),兩個(gè)下劃線是四分之一拍(0.25),有“—”=前面音符的拍子+1;頻率上就是按照音符是否帶點(diǎn),點(diǎn)在上還是在下到表中查找就可以了。
至此原理清楚,隨便拿個(gè)簡(jiǎn)譜來(lái)我們都可以翻譯成代碼了。
好,下面進(jìn)入代碼部分,來(lái)看下這首《葫蘆娃》的代碼:
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.//以上部分是定義是把每個(gè)音符和頻率值對(duì)應(yīng)起來(lái),其實(shí)不用打這么多,但是都打上了,后面可以隨意編寫D調(diào)的各種歌,我這里用NOTE_D+數(shù)字表示音符,NOTE_DH+數(shù)字表示上面有點(diǎn)的那種音符,NOTE_DL+數(shù)字表示下面有點(diǎn)的那種音符。這樣后面寫起來(lái)比較好識(shí)別。
26.#defineWHOLE1
27.#defineHALF0.5
28.#defineQUARTER0.25
29.#defineEIGHTH0.25
30.#defineSIXTEENTH0.625
31.//這部分是用英文對(duì)應(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.};//這部分就是整首曲子的音符部分,用了一個(gè)序列定義為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.};//這部分是整首曲子的接拍部分,也定義個(gè)序列duration,浮點(diǎn)(數(shù)組的個(gè)數(shù)和前面音符的個(gè)數(shù)是一樣的,一一對(duì)應(yīng)么)
85.intlength;//這里定義一個(gè)變量,后面用來(lái)表示共有多少個(gè)音符
86.inttonePin=5;//蜂鳴器的pin
87.
88.voidsetup()
89.{
90.
pinMode(tonePin,OUTPUT);//設(shè)置蜂鳴器的pin為輸出模式
91.
length=sizeof(tune)/sizeof(tune[0]);//這里用了一個(gè)sizeof函數(shù),可以查出tone序列里有多少個(gè)音符
92.}
93.
94.voidloop()
95.{
96.
for(intx=0;x<length;x++)//循環(huán)音符的次數(shù)
97.
{
98.
tone(tonePin,tune[x]);//此函數(shù)依次播放
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年中國(guó)康膚靈行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024至2030年中國(guó)刨花板復(fù)合托盤行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024年中國(guó)閃光雨線市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)玻璃鋼工作椅市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)印鍋市場(chǎng)調(diào)查研究報(bào)告
- 2024年昆明客運(yùn)證模擬考試題答案
- 2024年湖北申請(qǐng)客運(yùn)從業(yè)資格證考試題和答案
- 2024年南京客運(yùn)從業(yè)資格證考試技巧
- 社區(qū)義診活動(dòng)總結(jié)
- 科學(xué)五年級(jí)下冊(cè)教學(xué)計(jì)劃(34篇)
- 大學(xué)生安全教育(在校篇)學(xué)習(xí)通課后章節(jié)答案期末考試題庫(kù)2023年
- 如何“泡”開(kāi)詩(shī)歌公開(kāi)課一等獎(jiǎng)市賽課獲獎(jiǎng)?wù)n件
- RTL8365MB-CG-DataSheet-1.2英文完整版本
- 《岳陽(yáng)樓記》《蝜蝂傳》2014年黑龍江大慶中考文言文閱讀真題(含答案與翻譯)
- 氣象學(xué)與氣候?qū)W電子教材
- 中班科學(xué)《森林運(yùn)動(dòng)會(huì)》 課件
- 中南空管局2023屆高校畢業(yè)生春季招考聘用筆試參考題庫(kù)含答案解析
- 幼兒園每月食品安全調(diào)度會(huì)議紀(jì)要模板5
- 升降機(jī)安全管理培訓(xùn)
- 醫(yī)學(xué)影像設(shè)備學(xué)考試題庫(kù)及答案
- 血管瘤及脈管畸形
評(píng)論
0/150
提交評(píng)論