是否承認「和弦功能」的實質在於是否承認音樂有平移不變性

我在之前寫的文章里提過,西方音樂思維的閃光點是其高度的抽象概括能力:

作曲技術理論發展到極致,將會變成一種怎樣的形態??

www.zhihu.com圖標

「和弦功能」是音樂抽象思維的經典案例。如果沒有功能的概念,你在C大調看到的C和弦,在D大調看到的D和弦,在F大調看到的F和弦等等,它們都是不一樣的和弦。引入功能的概念後,所有這些和弦在它們各自的調里都有了同樣的功能:主功能(在斯波索賓體系下標記為T)。

換言之,有了功能的概念後,我們能用一套音樂思維邏輯應對全部24個大小調。套用機器學習的術語,這叫「歸一化」。如果人類的音樂思維是一個認知模型,歸一化的方法大大提高了模型的推廣能力,讓你只需學會一個調的和弦編配方法,就等於掌握了所有調的和弦編配方法。這就是「和弦功能」的牛逼之處。

所以,問題的關鍵不在「共同音轉調」——功能和聲與非功能和聲都會藉助共同音轉調,問題的關鍵在平移不變性假設是否work。C大調里C和弦的用法和G大調里G和弦的用法是一致的嗎?認為一致就是承認平移不變性假設,反之,就是不承認。

驗證音樂的平移不變性假設在過去基本是不可能的。因為科學研究里最重要的方法是控制變數法,對照組之間應該只有一個要素是不同的,這樣你才能確切地知道這個要素起到了什麼作用。我們不可能找到一個人,讓他先用功能思維配和弦,然後清空他大腦里所有關於和聲功能的知識,再讓他重新配一版,看看結果有什麼不同。對照實驗做不了,我們就沒辦法知道「和弦功能」在配和弦過程中究竟起到了什麼作用。

幸運的是,我們生在了人工智慧時代,我們可以為過去的大師建模,讓大師親自為我們演示使用和弦功能和不使用和弦功能之間的差異!

為了回答這道題,我也是拼了,決定為大師建模:

圖1 Johann Sebastian Bach

之所以為巴赫建模,是因為巴赫留下來一套眾讚歌曲集,至今都被認為是和聲寫作的範例:

圖2 bwv 66.6(局部)

接下來,我將為大家演示如何用機器學習大師的作品,給旋律配和弦。為了照顧音樂專業背景的同學,我不會羅列數學公式,並盡量用輕鬆簡明的方式講解。同時附上源代碼,方便會編程的同學復現。對原理不感興趣的同學也不要棄文,我製作了用機器學習給旋律配和弦的小demo,可以翻到後面看一看,還是挺有趣的。在很多人眼裡,用人工智慧做音樂或許是個挺神秘的事,今天就用這個小例子帶大家一窺究竟,讓我們現在開始吧~

1. 數據準備

圖2里的譜子是沒辦法直接拿來給機器學習的,必須首先從中提取有用的信息,這一步在機器學習中被稱為「特徵提取」(Feature extraction):

圖3 從和弦化後的bwv 66.6中提取特徵音

安裝Python包music21後,我把它自帶的巴赫數據集全部433首作品都做了和弦化,從中提取旋律音、根音和三音作為模型的訓練數據備用:

from music21 import *
import numpy as np

sequences = []

for path in corpus.getComposer(bach):
s = corpus.parse(path)
bChords = s.chordify()
seq = []
for c in bChords.recurse().getElementsByClass(Chord):
chord_class = c.root().pitchClass + 12 if c.isMinorTriad() else c.root().pitchClass
seq.append((chord_class, c.pitches[-1].pitchClass))

sequences.append(seq)

2. 模型設計

圖4 模型的結構設計

懂演算法的同學一眼就能看出這是個隱馬爾科夫模型(Hidden Markov Model,HMM),但學音樂的同學不需要知道這些。你只需要知道我們同時建模了和弦進行以及和弦同旋律音之間的關係(即「協和性」),配和弦的時候,既要考慮旋律音是什麼,也要考慮前面一個和弦是什麼(代碼來自GitHub[1]):

class HMM:
#constructor
#transition_probs[i, j] is the probability of transitioning to state i from state j
#emission_probs[i, j] is the probability of emitting emission j while in state i
def __init__(self, transition_probs, emission_probs):
self._transition_probs = transition_probs
self._emission_probs = emission_probs

#accessors
def emission_dist(self, emission):
return self._emission_probs[:, emission]

@property
def num_states(self):
return self._transition_probs.shape[0]

@property
def transition_probs(self):
return self._transition_probs

#the Viterbi algorithm
def viterbi(hmm, initial_dist, emissions):
probs = hmm.emission_dist(emissions[0]) * initial_dist
stack = []

for emission in emissions[1:]:
trans_probs = hmm.transition_probs * np.row_stack(probs)
max_col_ixs = np.argmax(trans_probs, axis=0)
probs = hmm.emission_dist(emission) * trans_probs[max_col_ixs, np.arange(hmm.num_states)]

stack.append(max_col_ixs)

state_seq = [np.argmax(probs)]

while stack:
max_col_ixs = stack.pop()
state_seq.append(max_col_ixs[state_seq[-1]])

state_seq.reverse()

return state_seq

3. 學習策略

這一步是關鍵。為了驗證「和弦功能」的存在性,我們用兩種方式訓練模型:一種根據「平移不變性」假說做數據增強,一種不做數據增強。

先說不做數據增強的情況。就是簡單地統計一下和弦轉移矩陣以及和弦發射矩陣:

transition_matrix = np.zeros((24, 24))
emission_matrix = np.zeros((24, 12))
initial_dist = np.zeros(24)

for s in sequences:
for a,b in zip(s[:-1], s[1:]):
transition_matrix[a[0], b[0]] += 1

for p in s:
emission_matrix[p[0], p[1]] += 1
initial_dist[p[0]] += 1

initial_dist /= initial_dist.sum()
row_sums = transition_matrix.sum(axis=1) + 1e-6
transition_probs = transition_matrix / row_sums[:, np.newaxis]
row_sums = emission_matrix.sum(axis=1) + 1e-6
emission_probs = emission_matrix / row_sums[:, np.newaxis]

我們把學習到的和弦轉移矩陣以及和弦發射矩陣可視化出來看:

圖5 和弦轉移矩陣

和弦轉移矩陣刻畫的是模型中和弦進行的部分。縱坐標是前一個和弦,橫坐標是後一個和弦,圖中每一個格子代表從前一個和弦進行到後一個和弦的概率,顏色越深代表概率越大。因為我們只建模了和弦的根音和三音,所以可用的和弦有24種(12個大三和弦,12個小三和弦)。

從圖5中能夠明顯看出,巴赫偏愛使用大三和弦,無論前一個和弦是大三和弦還是小三和弦,下一個和弦跳轉到小三和弦的概率都很低。所以可以預期,這個模型也會偏愛使用大三和弦給旋律配和聲。

圖6 和弦發射矩陣

和弦發射矩陣刻畫的是模型中協和性的部分。縱坐標代表每一個可能出現的和弦,橫坐標表示12個可能出現的音級,每個格子顯示旋律音在背景和弦下的出現概率,顏色越深表明概率越大。圖6清晰地顯示,當旋律音是和弦組成音的時候,出現概率較高,這符合我們日常的音樂經驗。

再來看應用「平移不變性」假設增強訓練數據的情況。我們通過移調讓每個作品都出現在所有12個調上:

transition_matrix = np.zeros((24, 24))
emission_matrix = np.zeros((24, 12))
initial_dist = np.zeros(24)

for s in sequences:
for i in range(12): # 移調12次
for a,b in zip(s[:-1], s[1:]):
pre = (a[0] + i) % 12 if a[0] &< 12 else (a[0] + i) % 12 + 12 post = (b[0] + i) % 12 if b[0] &< 12 else (b[0] + i) % 12 + 12 transition_matrix[pre, post] += 1 for p in s: pre = (p[0] + i) % 12 if p[0] &< 12 else (p[0] + i) % 12 + 12 post = (p[1] + i) % 12 emission_matrix[pre, post] += 1 initial_dist[pre] += 1 initial_dist /= initial_dist.sum() row_sums = transition_matrix.sum(axis=1) + 1e-6 transition_probs = transition_matrix / row_sums[:, np.newaxis] row_sums = emission_matrix.sum(axis=1) + 1e-6 emission_probs = emission_matrix / row_sums[:, np.newaxis]

這時候調性之間的差異就被消除了,和弦轉移矩陣以及和弦發射矩陣都變得均勻了:

圖7 數據增強後的和弦轉移矩陣
圖8 數據增強後的和弦發射矩陣

4. 和弦預測

接下來就可以給旋律配和聲了。之前我已經實現了一個旋律自動生成器,加上現在的自動配和聲程序,我們已經有了一個初步的演算法作曲模型了:

有哪些與中國有關的音樂風格??

www.zhihu.com圖標

大概沒有人想過巴赫為中國民歌配和聲這樣無厘頭的事,但藉助演算法作曲模型,這樣荒誕的場景居然成為現實了!讓我們趕緊體驗一下效果:

mf = midi.MidiFile()
mf.open(markov-chain.mid)
mf.read()
mf.close()
m = midi.translate.midiFileToStream(mf)
emissions = [n.pitch.pitchClass for n in m.flat.notes]
hmm = HMM(transition_probs, emission_probs)
cs = viterbi(hmm, initial_dist, emissions)

for i, n in enumerate(m.flat.notes):
cn = note.Note(cs[i]-12).name+m if cs[i] &>= 12 else note.Note(cs[i]).name
n.addLyric(cn)

m.write(xml,markov-chain.xml)

使用MuseScore插件[2],可以把和弦標籤自動轉為四部和聲:

和聲版本1和聲版本2

版本2的調性感明顯要比版本1強得多,甚至可以說,版本2對於調性中心的堅持已經達到了一種偏執的程度,不僅首末和弦都落在了主和弦上,連第二小節第三拍這種明顯不和諧的情況都強行用了一個主和弦。反觀版本1對於調性的堅持就弱得多,整首曲子明顯感覺調中心在移動,最後的終止式也沒收住,讓人感覺曲子沒完。

但若論藝術效果,版本1則要強於版本2,因為我們的旋律是由為漢族民歌建模的馬爾科夫鏈生成的,沒有明確的調性中心。這符合民歌沒有主音的特點,它們的調性中心游移不定,學界管這種現象叫「調式交替」。版本1的和聲有一種腳踩西瓜皮,溜到哪裡算哪裡的感覺,與民歌的調式感相合,所以綜合來看,版本1勝出。

5. 結論

「功能和聲」與其說是一種作曲技術,不如說是一種作曲風格。藉助「和弦功能」作曲,天然會加強調性中心的地位,形成一種鮮明的調性風格。這點在我們「控制變數法」的和聲編配實驗中得到證實。

實驗中,我們用移調的方法增強訓練數據,使得訓練樣本之間的調性差異消失。結果訓練得到的模型能夠配出非常典型的「I IV V I」和聲進行,印證了和聲教科書中關於功能進行的理論。

所以,作曲的時候應該聯繫作曲的意圖使用功能和聲理論。你是想寫成強中心的還是弱中心的?是調性的還是調式的?如果你天然厭惡調性音樂,聽到古典音樂就想吐,你當然不需要堅持和弦功能,功能和聲於你而言就是音樂的毒藥。關於調性思維調式思維的分野,樊祖蔭教授在其《中國五聲性調式和聲寫作教程》中有精彩論述,大家有興趣可以去看。因為我的級別不夠,沒法帶貨,就不放購買鏈接了,網上應該一搜就能找到。

我是一個致力用人工智慧做音樂的博士生,歡迎大家點贊關注~


有熱心觀眾 @Raymond 表示不服,要給模型「極限施壓」,用最極端的旋律「刁難」模型。我想這是一個測試模型推廣能力的好例子,下面是用未做數據增強版本的模型的測試結果,大家覺得模型幹得怎麼樣?歡迎在評論區留下你的意見。

測試旋律1的結果國得傑的視頻 · 161 播放測試旋律2的結果國得傑的視頻 · 270 播放

參考

  1. ^Hidden Markov Models in various languages https://github.com/AustinRochford/hmm
  2. ^MuseScore 3 plugin that expands chord symbols into notes. https://github.com/markshepherd/ExpandChordSymbols


老師的問題永遠富有創意和深度!我想從老師提問的本身回答一下這個問題:似乎轉調已經開始拋棄和聲功能了,引導音和線條在轉調中的角色已取代和聲功能成為重中之重 …… 那麼事實是否這樣呢?」對這一個問題,首先我的結論是:事實不盡然是這樣的。

我想從線性進行在調性轉移中的運用及線性進行與和聲功能的關係這個方面進行討論:

——————————————

對於這個問題而言,老師認為「線條」「引導音」的概念與「功能」的概念是對立統一關係,那麼事實上真的是這樣的嗎?下面舉三個共性寫作時期轉調形態的例子:(所謂「線條」即「線性進行」,一般指二度關係的連續進行)

可以很明顯看出,從形態上講以上三個例子均是在「引導音」進行下的調中心轉移,均可見明顯的線性進行(第一例左手B-A-#G,第二例左手D-C-B-#A,第三例左手E/G-D/F-C/E及左手A-bB-C),同時從手法上講三例均是同和弦轉調(自然-自然),能明顯的看到前後調性的功能性進行。在這裡線性進行跟功能的關係似乎並不是對立關係!要討論兩者之間的關係,我們需要回到共性寫作時期之前,分析共性寫作時期之前的調性轉移形態,並對此進行分析。

傑蘇阿爾多《牧歌》

上例選擇文藝復興時期傑蘇阿爾多《牧歌》片段,可以看到在d多利亞調式過渡到#f愛奧里亞調式的過程中,採用的是半音化線性進行,同樣在#f愛奧里亞調式過渡到a愛奧里亞調式的過程中,低音採用了半音化線性進行。由於時代特點,半音化形式主要表現在局部聲部的半音化線條,這點區別於現代和聲進行的觀點,但是可以看出在那個時期作者已經有意識的在調性轉移的過程中採用線性進行。

巴赫《聖詠》

而到了巴洛克早期,巴赫聖詠中調性轉移則更富於線性進行。上例中由e弗里吉亞調式轉換至a愛奧里亞調式過程中,同樣採用了線性進行。在女高(D-C),男高(C-B),男低(#f-#G)聲部分別形成了三個線性進行的線條。從以上兩個例子中不難發現,在功能和聲理論誕生之前,調性轉移的過程中作曲家就已經有意識的採用了線性進行!這點可以得出第一個結論:

線性進行並非隨著功能和聲體系的發展而發展而是一種誕生於功能和聲體系以前的聲部思維。

談到調性轉移,首先確定的是我們討論的是調性音樂的範疇。這裡想必很多答主都模糊了兩個概念,也就是功能與調性的概念。認為調性音樂存在功能也就存在,這是一種比較狹隘的觀點。關於功能與調性的具體含義及區別,我在很多回答中均有分析,不做贅述。既然追溯到線性進行的來源,同樣我們有必要對功能瓦解之後的調性轉移形態進行分析。

德彪西《佩利亞斯與梅麗桑德》(修正:第三個和平行進行和弦為bEm)

功能瓦解之後的調性陳述方式主要有以下兩種:1.通過持續音/固定音型和重複音來強調調中心音。2.通過帶有調中心音的音階組合(五聲/六聲/八聲/全音階及七種教會調式)確定調中心音。在上例德彪西《佩利亞斯與梅麗桑德》中,調性由持續音所陳述,調性片段的轉移由半音化線性進行銜接完成(選段之前為平行和聲進行,無明確調性)以德彪西為代表的浪漫主義晚期作品中,大量的三/七/九和弦平行進行,在模糊調性的同時實現了調性的轉移。而從形態上看,各聲部的線性進行是平行和聲最大的特點。

巴托克《小宇宙》

而在巴托克的《小宇宙》中,由於調性複合的手法,調中心的轉移是跟隨著調式音階的變化發生的。第一行右手部分出現的是全音階WT0(C-A複合調性),右手為其發生下三度平移的移位等同音階WT1(A-#D複合調性)。而到了第二行出現材料b,手法與第一行如出一轍,只是雙手的複合調性中心轉移到了bG-C與bE-A。這裡的調性轉移未出現明顯的線性進行。所以這裡我們可以得出第二個結論:

調性的轉移過程與作者思維手法的內容一致而並非與線性進行或者功能進行的形式一致。

老師作為碩士,想必對一個概念十分熟悉,就是內容與形式的辨證統一關係:內容是事物一切內在要素的總和。形式是這些內在要素的結構和組織方式。作曲家在創作中進行調性轉移,調中心的改變是內容,功能進行/線性進行或者其他都是形式。回到老師的例子中可以發現,老師所舉例子中的轉調過程具有相對清晰的功能進行。那麼為什麼相對於非功能性的調性陳述方式,功能性的調性陳述方式更容易形成局部或者所有聲部的線性進行呢?大家入門所用的和聲學教程給予了我們暗示:

《和聲學教程》譜例中的局部或多聲部線性進行

可以很明顯的發現,在《和聲學教程》的譜例中有很強的功能進行及明顯的線性進行。眾所周知,調性的建立,功能體系的完善是一個非常漫長但連續的過程,這裡面涉及到長久以來人們的聽覺習慣及作曲家的創作實踐。根據我們之前的分析可以發現,線性進行形成於功能體系之前。而功能體系的完善是否跟線性進行的創作習慣具有相關性呢?這也許是一個值得深入研究的課題,我也會在進後在這方面做進一步的研究。現在我們進行一個全面的總結:

————————————

1.「當代音樂的轉調中重視「共同音和線條」,「和弦功能」被忽視」。老師給出的這個命題的正確性(或說準確性)是值得推敲的。功能性和聲進行也包含大量的線性進行。

2.在轉調過程中「線性進行」與「功能」並不是對立統一的辯證關係,而是同屬於「形式」的範疇。功能體系的擴張和瓦解,來自於和聲思維和創作手法的辯證否定及推陳出新的「內容」(甚至相反在調性音樂/功能性進行中能看到更多線性進行的例子,無調性時期韋伯恩/勛伯格等作品中則很難看到線性進行的例子)

3.而這個問題的根本原因則在於線性進行往往與功能進行中的聲部進行契合。無調性音樂因為避免調性的暗示在聲部進行方面往往不會長時間二度進行從而產生線條。

4.線性進行思維不是打破功能的必然因素。是否是推動功能體系形成與完善的因素則有待進一步研究。


先從瓦格納這首序曲開始說起吧。

這首序曲的明顯特徵之一即為屬和弦的「無家可歸」,即各調並非由主和弦呈示,而是由屬和弦暗示

全曲的調式布局由此句概括,a為全曲主音,其餘各調的主音建立在以a為根音的三和弦上,輔以同主音調同中音調之對比。

題例中的轉調應該發生在這裡:

大致轉調流程:

  • 從宏觀上看,這個轉調是以三度關係為核心的調式布局的一部分;
  • 和聲語言上,仍是傳統的手法,但作者藉助半音素材,得以引導大量的意外進行、不解決的延留音與七音——這是全曲的聲部特徵;
  • 從轉調細節上的審視,可再對比參考上文兩處:

瓦格納這部作品,從作曲家自己的創作歷程上看,是寫在「漂泊的荷蘭人」、「唐豪舍」和「羅恩格林」這三部歌劇之後;從浪漫派和聲素材的發展來看,之前每一位作曲家的積極探索都為此作的誕生提供了土壤。例如肖邦的半音化:

肖邦瑪祖卡 Op.30 No.4

例如舒伯特在同主音調式交替上的探索:

舒伯特即興曲 Op.90 No.4

同樣,「特里斯坦與伊索爾德」為之後作曲家的創作更是帶來了無盡啟示,圍繞此作,彼時作曲家們的探索,即為對「調性」的拓展與顛覆。功能和聲作為一種「等級制度」的體現,是維護調性權威的有力武器,體現了調性的發展歷程。

「功能」和「調性」是相互統一的,調性為中心,功能為手段,不管是維護中心還是分離中心,不管是強調中心還是淡化中心,不管是一個中心還是多個中心,只要「調性」這個因素還存在,「功能和聲」便有施展之地。經過幾百年間的拓展,功能和聲早已開發出了豐富的語彙,和調性形成各種方式的對立與統一。

這裡需要說明的是,「功能」是雙刃劍,它可以維護調性,自然也可分離調性,瓦格納這首序曲,便利用了功能和聲的特點使調中心一直在游移漂浮。調性的成立,是依託於音與音之間的不平等關係上的,這種不平等關係即為「功能」,就好像一個手握兵權的將軍,他可以維護舊皇帝,也可以擁立新主,功能與調性的穩固,此二者並不存在直接關係。

多說一點,音與音之間的不平等關係,可以體現在傳統的四五度上,也可以體現在三度上,某種角度上講也可以體現在二度上,這方面,幾百年間的作曲家們作了大量的拓展與探索,這裡就不展開了。寬泛地講,但凡是通過區分音的地位以和調性展開互動的,都可以算作功能和聲的範疇。

當代的流行音樂,儘管種類手法繁多,但能夠完全徹底地拋棄「調性」因素的,卻也不那麼多。在各種有調性參與的音樂中,和聲手段不管多麼五花八門,多麼標新立異,實際上大都能在百年前的功能和聲中找到根源。研究功能和聲,要研究其全貌。全面地了解功能和聲的發展,對當代音樂的解讀和創作,都有著重要意義。


謝邀。自分現在沒人在乎轉調怎麼轉了……

古典音樂最常見的純五度轉調,最功能也最有共同音。

流行音樂最常見的上下半音轉調,沒共同音。至於功能,C大調裡面B和弦、C#和弦有沒有功能?這個問題的答案決定了這種轉調有沒有功能。無論如何,它能達到立刻把情緒提上來的效果。還有一個技巧是用降六級和弦取代一級和弦,這個和弦對於下一個樂段就是五級,這樣也就有功能了。

其次常見的是上下全音轉調。可以說介於二者之間。這就是為什麼當代流行音樂裡面都快滅絕了。想要效果驚艷點的都去做半音或者大小三度轉調了。

然而大三度轉調有請貝多芬。小三度轉調,私第一個想到的是巴赫的那首小提琴組曲。

私試驗過三全音轉調。這是從三全音代理的功能角度出發的,所以算是有功能沒共同音。方法是用屬和弦接三全音距離的下一個樂段的主和弦。不過私的旋律不大適合做這個。最近發現ZUN早就做過而且做的比私強多了……

Key Changes in Touhou Music?

youtu.be

這個問題的問題在於,哪些進行屬於非功能進行?全功能/色彩和聲理論告訴我們,任何進行都可以是功能進行。題主之前回答過關於色彩和聲的問題,對這一點肯定瞭然於心了。

私還是選擇從調律的角度搞事情,通過認識到十二平均律不只是十二平均律就可以解構轉調理論。

觀察巴洛克以降的音樂史,下面的結論很明顯:當前的調性音樂雖然用十二平均律來調音,但實際上創作思維是中庸全音律的。十二平均律是中庸全音律的一個特例。我們的大小調音階就是七音中庸全音音階(meantone[7])。中庸全音律的生程(generator)是純五度決定了純五度之間是「近關係調」。那我們現在依然用這種調音,但選擇生程不是純五度的調律(這不符合傳統意義上的調性,但也決不是無調性),其「近關係調」自然也不是純五度咯。

大三度轉調,轉了增律(augmented)周期的一步。小三度轉調,同理是減律(diminished)周期的一步。就算是小二度,私說這是畢氏調律(pythagorean/aristoxenean)周期的一步。這些不也是「近關係調」么。這裡「近關係調」的定義被延拓了。現在再看轉調理論,哈哈哈。


同覺得譜子上的G7-Fm有誤

根據我的扒帶經驗,這裡是G7-Gb/Ab然後接到新的調Db(經評論區提醒F#寫成Gb更合理,下同)

這裡是一個斜杠和弦Gb/Ab,從特有的屬九掛四省去五音得來即Ab9sus4(no5)

所以是在新的調的一級前面接了一個屬九掛四,這個操作其實很有功能味道在裡面。

至於為啥是掛四?

不·知·道

我只能告訴你,這個形式的斜杠和弦是【轉·調·小·能·手】,當你想轉到任意調的時候,接一個這樣的斜杠屬和弦,基本都不會有什麼突兀感~它被大量地使用在Jpop裡面。

用【四on五(IV/V)】和弦進行轉調?

www.bilibili.com

貼個視頻,裡面的13分鐘處就是一個類似的例子,轉到A大調之前插了一個D/E ,它就是A大調的屬九掛四;甚至後面還可以再接一個不再掛四的屬和弦E,這樣的行進感會更強,和弦走向也更順暢

另外這個IV/V和弦確實也是所謂的共同音大法方式的常客。回到問題本身,我覺得當代流行音樂中還是很重視和弦功能的。從BASSLINE的半音或全音模進(走樓梯)和251進行這兩點著手去分析可以解決很多問題,至於一些實在不能解釋的,這不正是音樂創作的魅力嗎(狗頭)


推薦閱讀:
相关文章