一些音樂(lè)基礎(chǔ)(小白教程)
其實(shí), 我自己也是小白, 所以只能寫個(gè)小白教程晰奖。
-
認(rèn)識(shí)簡(jiǎn)譜
下面是我從網(wǎng)上搜到的南山南吉他譜:
南山南
我們只需要管歌詞上面的那一行簡(jiǎn)譜谈撒。注意到:
-
節(jié)拍是4/4拍. 我直接引用Wiki的詳細(xì)解釋:
分母表示拍子的時(shí)值也就是說(shuō)用幾分音符來(lái)當(dāng)一拍,如2/4代表用四分音符代表一拍匾南,每一小節(jié)有兩拍啃匿。分子代表每一小節(jié)有多少拍子,前面說(shuō)過(guò)了2/4拍就是以四分音符為一拍,一小節(jié)有兩拍溯乒,3/4以四分音符為一拍夹厌,每小節(jié)有三拍……讀法是先讀分子寓娩,再讀分母挽拔,比如2/4叫二四拍,3/4叫三四拍霜医,6/8叫六八拍光稼。
- 數(shù)字表示音符:
在簡(jiǎn)譜中或南,記錄音的高低和長(zhǎng)短的符號(hào),叫做音符钟哥。而用來(lái)表示這些音的高低的符號(hào)迎献,是用七個(gè)阿拉伯?dāng)?shù)字作為標(biāo)記,它們的寫法是:
1 2 3 4 5 6 7
讀法為
do re mi fa so la si
多 來(lái) 米 發(fā) 梭 拉 西
音符是和音高緊密相連的,沒(méi)有一個(gè)不帶音高的音符腻贰。我們通過(guò)在音符上方或者下方加點(diǎn)來(lái)表示高/低八度的音吁恍。 - 數(shù)字下的下劃線或者后面的加點(diǎn)表示該音符的時(shí)值:
表示音樂(lè)的長(zhǎng)短需要有一個(gè)相對(duì)固定的時(shí)間概念。簡(jiǎn)譜里將音符分為全音符播演、二分音符冀瓦、四分音符、十六分音符写烤、三十二分音符等翼闽。在這幾個(gè)音符里面最重要的是四分音符,它是一個(gè)基本參照度量長(zhǎng)度洲炊,即四分音符為一拍感局。這里一拍的概念是一個(gè)相對(duì)時(shí)間度量單位。一拍的長(zhǎng)度沒(méi)有限制暂衡,可以是1秒 也可以市2秒或半秒询微。假如一拍是一秒的長(zhǎng)度,那么二拍就是兩秒狂巢;一拍定為半秒的話撑毛,兩拍就是一秒的長(zhǎng)度。一旦這個(gè)基礎(chǔ)的一拍定下來(lái)唧领,那么比一拍長(zhǎng)或短的符號(hào)就相對(duì)容易了藻雌。
用一條橫線“—”在四分音符的右面或下面來(lái)標(biāo)注,以此來(lái)定義該音符的長(zhǎng)短斩个。下面列出了常用音符和它們的長(zhǎng)度標(biāo)記:
- 演奏速度=68. 這個(gè)理解為1分鐘彈奏68拍.
-
節(jié)拍是4/4拍. 我直接引用Wiki的詳細(xì)解釋:
上面就是我們需要的音樂(lè)基本知識(shí), 其實(shí)是很簡(jiǎn)單的胯杭。
MA中音的表示
MatheMatica中有個(gè)SoundNote
函數(shù), 可以表示和指定音高相同的一個(gè)音符。例如, 南山南中第一個(gè)音符6
(下劃線打不出來(lái)), 用MA表示為
SoundNote[9,60/68/2,"Guitar"]
這里, 需要解釋的東西有點(diǎn)多了:
- 第一個(gè)參數(shù)
9
, 表示距離距中央 C 9 個(gè)半音的音, 它恰好是6
(這需要用到十二平均律, 見(jiàn)附錄) - 第二個(gè)參數(shù)表示該音符的時(shí)值(單位是秒):加了一個(gè)下劃線表示的是半拍, 而演奏速度為68拍每分鐘, 故半拍占了
60/68/2
秒 - 第三個(gè)參數(shù)表示的是演奏樂(lè)器, 我們?cè)O(shè)置為吉他受啥; 其他常見(jiàn)樂(lè)器有
"Piano", "Violin"
簡(jiǎn)譜的參數(shù)化
由上面的表示, 我們知道簡(jiǎn)譜中的一個(gè)音可以用兩個(gè)參數(shù)表示出來(lái). 由于4/4拍中有很多八分音符, 故我們將八分音符的時(shí)長(zhǎng)定義為單位1(主要是減少書寫). 這樣, 參數(shù)化后的簡(jiǎn)譜為
Melody = {6, 6, 6, {4, 1/2}, {4, 1/2}, {6, 1/2}, {10, 3/2}, {9, 2}, {10, 2}, 9, 5, {8, 2}, {\[Infinity], 2}, {\[Infinity], 2}, {4, 1/2}, {4, 1/2}, 4, {3, 1/2}, {3, 1/2}, 2, {2, 1/2}, {2, 1/2}, 2, 5, 2, {3, 3}, {\[Infinity], 3}, {5, 1/2}, {5, 1/2}};
如前所述, 我們需要將音符映射為距離中央C的半音個(gè)數(shù)歉摧。這很簡(jiǎn)單, 首先定義七音階所對(duì)應(yīng)的半音
EqualTempList = {0, 2, 4, 5, 7, 9, 11, 12, 14, 16, 17, 19, 21, 23, 24};
這里, 0
表示中央C, 也即中音1. 2
表示中音2, 12
表示高音1(簡(jiǎn)譜里頭上加點(diǎn)), 依次類推.
于是要得到中音6, 我們只需取EqualTempList
的第6個(gè)元素即可。
演奏函數(shù)的標(biāo)準(zhǔn)化
盡管MA內(nèi)置了標(biāo)準(zhǔn)的SoundNote
演奏函數(shù), 但是我們的數(shù)據(jù)并不標(biāo)準(zhǔn), 例如Melody
中有些是一個(gè)數(shù)字(八分音符), 有些是數(shù)列(其他時(shí)值)。我們用下面的函數(shù)來(lái)標(biāo)準(zhǔn)化
StandardT=60/68/2叁温;
MelodyToSound[lis_] := Module[{m, mt},
If[
ListQ[lis],
m = lis[[1]]; mt = lis[[2]],
m = lis; mt = 1];
If[m == \[Infinity],
SoundNote[None, mt*StandardT],
SoundNote[EqualTempList[[m]], mt*StandardT, "Guitar"]]
]
第一個(gè)If
判斷是否傳入的參數(shù)為數(shù)列, 如果是, 則將第一個(gè)參數(shù)映射為音符, 第二個(gè)參數(shù)映射為對(duì)應(yīng)的時(shí)值再悼。 否則, 設(shè)置時(shí)值為1.
第二個(gè)If
判斷音符是否為\[Infinity]
, 如果是, 則該音表示空音(不發(fā)聲), 這時(shí)用SoundNote[None, mt*StandardT]
來(lái)表示時(shí)長(zhǎng)為mt
的空音。
完整的MA代碼
Melody = {6, 6,
6, {4, 1/2}, {4, 1/2}, {6, 1/2}, {10, 3/2}, {9, 2}, {10, 2}, 9,
5, {8, 2}, {\[Infinity], 2}, {\[Infinity], 2}, {4, 1/2}, {4, 1/2},
4, {3, 1/2}, {3, 1/2}, 2, {2, 1/2}, {2, 1/2}, 2, 5,
2, {3, 3}, {\[Infinity], 3}, {5, 1/2}, {5, 1/2}};
StandardT = 60/68/2;
MelodyToSound[lis_] := Module[{m, mt},
If[ListQ[lis], m = lis[[1]]; mt = lis[[2]], m = lis; mt = 1;];
If[m == \[Infinity],
SoundNote[None, mt*StandardT],
SoundNote[EqualTempList[[m]], mt*StandardT, "Guitar"]]
]
Sound[MelodyToSound[#] & /@ Melody]// EmitSound
完整的演示音頻可以在SoundCloud試聽(tīng)膝但。
附錄:十二平均律
還記得在前面我說(shuō)過(guò)數(shù)字上方或者下方加點(diǎn)來(lái)表示高八度/低八度的音嗎冲九?那么具體是怎么回事呢?
首先, 我們所說(shuō)的音的高低其實(shí)是其頻率決定的, 例如中音C的頻率國(guó)際標(biāo)準(zhǔn)定義為440Hz, 即1秒鐘震蕩440次跟束。我們用正弦波可以非常方便的表示出來(lái):
Sound[Play[Sin[440*2Pi t],{t,0,1}]]
上面的代碼表示播放440赫茲的正弦波1秒莺奸。
所謂的一個(gè)高八度的音就是頻率是原來(lái)音2倍的那個(gè)音, 例如高八度的C, 簡(jiǎn)譜記為1頭上加點(diǎn), 的頻率就是880Hz.
而所謂的十二平均律就是說(shuō)把一個(gè)八度平均分成12分(等比地), 每一份就是一個(gè)半音。 于是我們很容易得到一個(gè)八度中, 12個(gè)半音的頻率冀宴。 例如中音C與高音C這個(gè)八度, 其頻率表為
八度頻率
根據(jù)7音節(jié)的半音/全音(即兩個(gè)半音)關(guān)系, 我們就得到, C調(diào)7音節(jié)對(duì)應(yīng)的半音如下:
音符 | 半音階個(gè)數(shù) | 頻率 |
---|---|---|
1 | 0 | 440 |
2 | 2 | 494 |
3 | 4 | 554 |
4 | 5 | 587 |
5 | 7 | 659 |
6 | 9 | 740 |
7 | 11 | 831 |
由此, 不難推出EqualTempList
.