第6章 自然和弦与和弦进程
第6章 自然和弦与和弦进程
现在我们已经对和弦有了一些熟悉,问题是如何使用它们。我们如何将数百个和弦和数千个和弦组合减少到一组可管理的选项?我们如何在不感到不知所措的情况下探索的和弦提供的创意音乐空间?
这些问题的答案是使用调来选择我们知道会听起来很好的和弦子集。从那里,我们可以按照将和弦排列成称为进程的序列模式的指南,这些模式将支持一首音乐中聚集在一起的各种和声元素。
本章介绍了用于指代适合特定调的和弦的传统罗马数字系统,以及选择和弦进程的方法。在此过程中,我们将使用Python字典的概念为在任何调中创建和弦进程编写函数。
6.1 自然和弦
自然和弦是可以使用当前调的仅七个音符演奏的任何和弦。例如,如果你在C大调中工作,自然和弦包括你可以仅用钢琴键盘上的白键演奏的所有和弦:
C D E F G A B
以下是我们可以用这七个音符制作的主要自然和弦(图6.1):

在此处听这些和弦:https://tunepad.com/examples/diatonic-chords
如果你有钢琴键盘方便,尝试演奏这七个和弦以感受它们的声音。当和弦响起时,你感受到什么情绪?什么和弦模式听起来很好 together?无论我们在什么调中,总是有七个自然和弦,音阶中的每个音符一个。要构建自然和弦,只需从音阶中选择任何音符作为和弦的根音。然后向上两个音符作为和弦的”三度”,再向上两个音符作为和弦的”五度”。你可以继续向上移动音阶的两个音符以获得”七度”和”九度”,依此类推。
我们可以通过它们的音阶度数(第一、第二、第三、第四、第五、第六和第七)来指代这些和弦。基于音阶第五个音符构建的和弦将是该调的”五”和弦。如果我们在任何大调中,第一、第四和第五自然和弦将具有大调性质(无论调的起始音符是什么)。此外,第二、第三和第六和弦将始终具有小调性质,第七和弦是减和弦。例如,在C大调中,我们将有以下自然和弦:
C大调、D小调、E小调、F大调、G大调、A小调、B减
这种和弦性质的模式对于任何大调都是相同的,因为所有大调都有相同的音符音程模式。同样的想法适用于小调。因为所有小调都有相同的音程模式,和弦的性质保持一致。第一、第四和第五自然和弦是小调性质。第三、第六和第七和弦是大调性质。第二和弦是减和弦。例如,在C小调中,我们将有以下自然和弦:
C小调、D减、E♭大调、F小调、G小调、A♭大调、B♭大调
在流行音乐中,和弦进程几乎完全由自然和弦组成。回想上一章,歌曲的旋律也建立在这个和声脚手架之上。旋律通常主要使用底层和弦进程的音符,因为这些音符更和谐和令人愉快。和声之外的音符通常用作经过音作为装饰或作为邻音。
6.2 罗马数字
12个大调和12个小调每个都有7个自然和弦,给我们总共168个自然和弦。为了减少这种复杂性,音乐家、制作人和作曲家使用罗马数字系统,根据其音阶度数而不是特定名称来指代不同的自然和弦。如果和弦具有大调性质,它会得到大写罗马数字。如果它具有小调性质,它会得到小写罗马数字。每个调还有一个减和弦,它既是小写又有一个附带的°符号。
注意:罗马数字是一种起源于古罗马的编号系统。在这个系统中,数字由字母组合组成。在音乐中,只使用对应于数字一到七的数字:I、II、III、IV、V、VI和VII。
这给了我们任何调的所有自然和弦的以下罗马数字:
| 音阶度数 | 第一 | 第二 | 第三 | 第四 | 第五 | 第六 | 第七 |
|---|---|---|---|---|---|---|---|
| 大调 | I | ii | iii | IV | V | vi | viio |
| 小调 | i | iio | III | iv | v | VI | VII |
有了这个系统,只有这七个符号需要关注,而不是168个。罗马数字需要一些时间来习惯,但它们给了我们一种思考方式,关于和弦进程而不必参考每个特定和弦的名称。在编码或数学中,这种概括被称为抽象。抽象意味着移除个别情况的特定细节,而是专注于更大的图片模式。在编码中,我们使用语言结构,如变量、函数和参数,来创建抽象,减少代码的复杂性和我们要解决的问题。
6.3 倾向音与和声功能
现在我们知道如何根据名称指代自然和弦,我们如何将它们排序成悦耳的和弦进程?进程中和弦的排序不是随机的。构成和弦的音符相对于彼此有不同的倾向——意味着听众听到它们想要以预期的方式解决,当与和弦进程中的其他音符一起演奏时。这些倾向中最强的是音阶的第七个音符拉回到音阶的根音(主音)。在大多数情况下,我们听到这个音符想要向上半音解决回到主音。如果这个音符没有解决,我们经常听到进程是不完整的。音阶的第二和第五个音符也有很强的拉回到主音。
个别音符的倾向给每个和弦一个特征或功能。你可以将和弦的功能视为它的欲望——它如何与前面的和弦相关,以及它想要如何推动音乐前进。和弦被描述为具有三个主要功能:主功能、属准备功能和属功能。大多数和弦进程通常从主功能到属准备功能到属功能再回到主功能。
| 主功能和弦 | 属准备功能和弦 | 属功能和弦 |
|---|---|---|
| I, iii, vi | ii, IV | V, viio |
| 第1、3、6 | 第2、4 | 第5、7 |
具有相同功能的和弦也共享许多相同的音符。例如,iii(3)和弦和vi(6)和弦与主功能和弦(I)共享两个相同的音符,所以它们被分组在一起。属准备的ii和IV和弦也共享两个共同的音符,就像属功能V和viio和弦一样(图6.2)。

和弦功能最好被描述为粗略的指南,帮助告知我们关于创作的决定。基本和弦也有许多变体。和弦可以转位(意味着根音不再是最低的音符),用额外的音符扩展以增加色彩,或与包括来自主调之外的音符的”变化”和弦结合。副属和弦是从其他关系调借来的属和弦。知道在任何给定语境中使用哪个和弦取决于音乐经验、品味和不同流派的惯例。
6.4 和弦进程
许多常见的和弦进程遵循主功能→属准备功能→属功能的方案。主功能带来稳定性和接地。属准备功能是从这种稳定性的偏离,建立张力。属准备功能拉向属功能,最终解决回到主功能。在和弦进程完成后,它重新开始。不同类型的音乐有不同的和声规则和标准和弦进程,但这里有流程图,帮助可视化常见的和弦进程模式(图6.3)。

这是一个如何使用这些图表的示例。如果我们从顶部的主功能I和弦开始,我们可能会向下移动到属功能V和弦,然后滑向主功能延长vi和弦——一种微妙的挑逗与解决。然后我们可以在进入进程解决回到主功能I和弦并重复之前去属准备功能IV和弦。这个进程将是I → V → vi → IV(1、5、6、4),这是流行音乐中极其常见的模式(图6.4)。

当代流行音乐使用许多与早期摇滚和蓝调音乐相同的进程——许多早期摇滚音乐来自蓝调。因此,许多早期摇滚歌曲建立在蓝调进程之上,最著名的是I-IV-V。最无处不在的进程之一——特别是在早期摇滚中——是”doo wop”进程I-vi-IV-V。相同的和弦可以重新排序以形成我们的I-V-vi-IV示例。
常见大调进程 - I - V - vi - IV - I - IV - V - I - V - vi - iii - IV - I - vi - ii - V - I - vi - IV - V - I - iii - IV - V
常见小调进程 - i - VI - VII - i - III - iv - v - i - VI - III - VII - i - v - VI - i - IV - v - VI - iv - v - i
嘻哈歌曲更多地围绕节奏和人声中心,往往使用较短的进程,通常在小调中只有一个或两个和弦,如i-V、i-VI和i-ii°。嘻哈与录音技术的进步一起发展,使早期艺术家能够从其他歌曲重新混音采样,因此,这种流派也从流行和摇滚音乐借用进程。
在创作和弦进程时,一种策略是从现有歌曲借用,以帮助你发展自己的耳朵,并开始批判性地思考和声。你也可以自己实验。使用和声惯例来缩小一些选项,但也尝试打破规则,随着你变得更自信。
6.5 和弦转位
转位和弦就像普通和弦,除了根音不再是最低的音高。以C大调为例。当根音C也是和弦的最低音符时,我们说和弦在根位(图6.5)。

当和弦的三度是最低音符时,和弦在其第一转位。在C大调的情况下,这意味着E现在是最低的音符。当和弦的五度最低时,它是第二转位,依此类推。每个转位与根和弦具有完全相同的音符,但音符按音高的排序不同。
6.6 声部进行
声部进行处理进程中连续和弦之间音符的关系。声部进行背后的原则是 treat每个和弦的音符作为个人旋律声部。想象三个一个人声歌手每个人演唱和弦的一个个人音符。因为我们独立考虑每个声部,想法是最小化一个人的声音必须在和弦之间做出的跳跃,以便进程更平滑,更容易演唱。通过考虑每个和弦的不同可能转位,我们可以创建更多的tailoring效果,连续和弦之间有微妙的偏移。这不仅会改善你的进程的sound,而且还会改善吉它、钢琴或人声和声等乐器上音乐的潜在可演奏性。下面的两个图显示了具有相同进程的和没有声部进行(图6.6)。

在此处听这些示例:https://tunepad.com/examples/voice-leading
6.7 Python字典
在Python中,字典或映射是由键引用的无序数据集合。这些键与音乐调不同。它们更像是打解锁门的钥匙。每个不同的键打开自己的门。
字典在编程中极其有用,因为它们提供了一种通过名称存储多个数据元素的简单方法。例如,如果我们想为音乐流服务存储信息,你可能需要保存歌曲名称、艺术家、发行日期、流派、唱片公司、歌曲长度和专辑艺术品。字典为你提供了一种在单个数据对象中存储所有这些元素的简单方法。
track_info = {
"artist" : "Herbie Hancock",
"album" : "Head Hunters",
"label" : "Columbia Records",
"genre" : "Jazz-Funk",
"year" : 1973,
"track" : "Chameleon",
"length" : 15.75
}字典使用大括号定义,键和值由冒号分隔。不同的条目由逗号分隔。定义字典后,我们可以使用关联的键更改现有值或添加新值。类似于我们使用索引访问列表中的值的方式,我们使用方括号和键来访问字典中的元素。
track_info["artwork"] = "https://images.ssl-images-amz.com/images/81KRhL.jpg"在这一行中,因为键”artwork”尚未在字典中使用,它创建一个新的键值对。如果”artwork”已经被添加,它将更改现有值。需要注意的一件事是字典中的值可以是任何数据类型,包括字符串、数字、列表甚至其他字典。字典键也可以是字符串或数字值,但它们对于每个存储的值必须是唯一的。
6.8 使用自然和弦编程
使用Python代码,有许多不同的方法来确定给定调的自然和弦。以下是第4章中的majorChord、minorChord和diminishedChord函数。
def majorChord(root):
return [root, root + 4, root + 7]
def minorChord(root):
return [root, root + 3, root + 7]
def dimChord(root):
return [root, root + 3, root + 6]我们可以使用这些函数为C大调中的每个自然和弦定义变量:
I = majorChord(48)
ii = minorChord(50)
iii = minorChord(52)
IV = majorChord(53)
V = majorChord(55)
vi = minorChord(57)
vii0 = diminishedChord(59)这段代码清晰可读,但它不像可能的那样可重用。如果我们想在不同的调中演奏怎么办?或者在不同的八度?我们将不得不更改每一行代码。作为替代,我们可以写一个函数,它接受主音作为输入,并返回一个将罗马数字映射到个人自然和弦的字典。
def buildChords(tonic):
numerals_lookup = {
"I" : majorChord(tonic),
"ii" : minorChord(tonic+2),
"iii" : minorChord(tonic+4),
"IV" : majorChord(tonic+5),
"V" : majorChord(tonic+7),
"vi" : minorChord(tonic+9),
"vii0" : diminishedChord(tonic+11)
}
return numerals_lookup上面的方法适用于大调,但如果我们希望它也适用于小调怎么办?我们可以添加另一个参数和if-else语句来处理这个问题。
def buildChords(tonic, mode):
if mode == "major":
numerals_lookup = {
"I" : majorChord(tonic),
"ii" : minorChord(tonic+2),
"iii" : minorChord(tonic+4),
"IV" : majorChord(tonic+5),
"V" : majorChord(tonic+7),
"vi" : minorChord(tonic+9),
"vii0" : diminishedChord(tonic+11)
}
else:
numerals_lookup = {
"i" : minorChord(tonic),
"ii0" : diminishedChord(tonic+2),
"III" : majorChord(tonic+3),
"iv" : minorChord(tonic+5),
"v" : minorChord(tonic+7),
"VI" : majorChord(tonic+8),
"VII" : majorChord(tonic+10)
}
return numerals_lookup这些远不是为不同调创建自然和弦的唯一解决方案。通常,在编程中解决复杂问题的方法几乎是无穷无尽的。弄清楚哪种方法最适合给定情况需要练习和经验,但你的目标通常是编写尽可能简单和易于理解的代码。
在此处尝试此代码:https://tunepad.com/examples/chord-dictionary