MA模擬吉他彈奏南山南

一些音樂(lè)基礎(chǔ)(小白教程)

其實(shí), 我自己也是小白, 所以只能寫個(gè)小白教程。

  1. 認(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拍.

上面就是我們需要的音樂(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ū)寫). 這樣, 參數(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.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,565評(píng)論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,115評(píng)論 3 423
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 177,577評(píng)論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,514評(píng)論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,234評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,621評(píng)論 1 326
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,641評(píng)論 3 444
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,822評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,380評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,128評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,319評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,879評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,548評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,970評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,229評(píng)論 1 291
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,048評(píng)論 3 397
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,285評(píng)論 2 376

推薦閱讀更多精彩內(nèi)容