纯律音程的平均律近似
怎样找到一个平均律音程来作为一个纯律音程的良好近似?
一个纯律音程可以直接理解成频率比例 p/q, 这里 p 和 q 为正整数。
一个平均律音程则可以理解成 n 音平均律下的第 m 个音。n 为正整数,m 为非负整数。这里为了方便我们让 m 从 0 开始,也就是说根音实际上是“第 0 个”音。如果这里的平均律遵守八度等同的话,那这个音程可以表示为频率比例 2^(m/n)。
现在问题就变成了:已知 p 和 q,要找到怎样的 n 和 m,使得 2^(m/n) ~= p/q?
我们重写一下这个式子:
2^(m/n) ~= p/q
m/n ~= log2(p/q)
p 和 q 都是已知的,那么可以求出实数 log2(p/q)。所以我们需要找到一个有理数 m/n 来良好近似这个实数。这实际上是数论中的一个主题:丢番图逼近。
看起来我们只要取很大的 n 就行了(如果 n 是 10 的幂,这可以理解成小数点后留很多位),但这其实是可以找出某种意义上的“最佳近似”的。
直接拿数论里的结论来说,要得到一个实数的一个“最佳”有理数近似,我们可以算出这个实数的连分数表示,截断到这个连分数的一项,然后化简得到一个有理数。截断到不同的项能得到的所有有理数就是这个实数的所有“最佳”近似。
例如,π 的连分数表示是 [3; 7, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1, 14, 2, 1, 1, 2, 2, 2, 2, 1, 84, 2, 1, 1, 15, 3, 13, ...],那么我们分别选第 1 项,第 2 项,第 3 项... 来截断可以得到以下结果:
1 -> [3;] = 3 = 3
2 -> [3; 7] = 3 + 1 / 7 = 22 / 7 ~= 3.142857
3 -> [3; 7, 15] = 3 + 1 / (7 + (1 / 15)) = 333 / 106 ~= 3.141509
4 -> [3; 7, 15, 1] = ... = 355 / 113 ~= 3.141593
...
22 / 7 和 355 / 113 正是两个著名的 π 的近似。
回到主题,我们可以试着求出西方音乐里最重要的音程之一,纯五度(3/2)的平均律近似:
log2(3/2) = [0; 1, 1, 2, 2, 3, 1, 5, 2, 23, 2, 2, 1, 1, 55, 1, 4, 3, 1, 1, 15, 1, 9, 2, 5, 7, 1, 1, 4, 8, ...]
1 -> [0;] = 0
2 -> [0; 1] = 1
3 -> [0; 1, 1] = 1 / 2
4 -> [0; 1, 1, 2] = 3 / 5
5 -> [0; 1, 1, 2, 2] = 7 / 12
6 -> ... = 24 / 41
7 -> ... = 31 / 53
8 -> ... = 179 / 306
...
7 / 12 这个有理数指的正是12 音平均律里的第 7 个半音!这是现代西方音乐里最常用的律制,而这个平均律音程和纯五度只差了约 2 音分。有一些音乐会使用后面得到的41 音平均律和53 音平均律。
这个过程显然可以应用到其他音程上。例如,纯律大三度的一种选择,频率比例 5/4,可以用 28 音平均律的第 9 个音来近似。我们甚至还可以把这个推广到非八度等同的平均律上:2^(m/n) 现在变成了 (k-1)^(m/n),即平均分 k 个八度。按这个方法可以找到很多有趣且有用的平均律。