弦振动方程
从最简单的形式出发:
$$ \frac{\partial^2 u}{\partial t^2}= \frac{T}{\rho} \frac{\partial^2 u}{\partial x^2} $$设弦长为$L$,则固定边界条件下的特解为
$$ u(x,t) = \sum_{n=1}^{\infty} A_n \sin\left(\frac{n\pi x}{L}\right) \cos(\omega_n t + \phi_n) $$其中
$$ \begin{aligned} \omega_n = \frac{n\pi c}{L} \\ c = \sqrt{\frac{T}{\rho}} \end{aligned} $$$A_n$和弦的初始状态有关,他的推导有点复杂,但是它的大小随着$n$的增大迅速衰减,大致如下
$$ A_n \propto \frac{1}{n^2} $$弦一维的位移会影响琴码,继而在共鸣箱中发出声音,在空气中按照三维的波方程传播,最后在耳膜处接收到(这里也有一个阻尼振动方程)。物理过程比较繁琐,但是实际接收到的频率和弦振动的频率是差不多的,于是我直接通过一维的弦震动方程来研究听到的声音。
五度相生
从弦震动方程很容易看出,一根弦在振动的时候发出的声音的频率和弦的长度成反比关系,而且频率并不单一,频率由一个基频和他的整数倍组成,这称之为泛音列。而由基频$f_0$发出的音,称之为C。
显然,如果把一根弦的长度减半,则基频翻倍,而它发出的泛音列和减半前依旧十分相似。翻倍后的音还是C,有一堆相似的音是不够的,需要其他音。
于是把弦一份为三,$L/3$发出基频为$3f_0$的声音,和原本的相比,重叠的部分虽然少了一些,但还是很多,听起来还是很和谐,我们称之为G。但是音有点高了,于是在$L/3$的基础上把弦长翻倍,等同于把弦长取$2L/3$,得到了一个低了一些但是十分相似的G。
于是我们有了两种得到音的手段:一个是把弦长减半,一个是把弦长取$2/3$,两种手段结合,就能得到各种各样和谐的音。具体来说,我们不断的把一根弦取$2/3$,(相当于基频乘$3/2$),如果得到的弦不足原本的一半,则把弦长翻倍(相当于基频除2,这么做保证了得到的音依旧在$(f_0,2f_0)$的区间。
不断反复,得到了这个:
| 五度次数 | 音名 | 频率比计算 | 结果频率比 |
|---|---|---|---|
| 0 | C | 1 | 1/1 |
| 1 | G | $(3/2)$ | 3/2 |
| 2 | D | $((3/2)^2=9/4) → ÷2$ | 9/8 |
| 3 | A | $((3/2)^3=27/8) → ÷2$ | 27/16 |
| 4 | E | $((3/2)^4=81/16) → ÷4$ | 81/64 |
| 5 | B | $((3/2)^5=243/32) → ÷4$ | 243/128 |
| 6 | F♯ | $((3/2)^6=729/64) → ÷8$ | 729/512 |
| 7 | C♯ | $((3/2)^7=2187/128) → ÷8$ | 2187/1024 |
| 8 | G♯ | $((3/2)^8=6561/256) → ÷16$ | 6561/4096 |
| 9 | D♯ | $((3/2)^9=19683/512) → ÷32$ | 19683/16384 |
| 10 | A♯ | $((3/2)^{10}=59049/1024) → ÷32$ | 59049/32768 |
| 11 | F | $((3/2)^{11}=177147/2048) → ÷64$ | 177147/131072 |
我们当然希望,不断的进行这个操作,可以回到基频。但是这是不可能的,这相当于让
$$ 3^m=2^{n+m} $$因为质因数的分解唯一,所以这个等式永远不可能成立(除非m,n=0)。推到第十二个的时候,得到:
$$ \frac{(3/2)^{12}}{2^7} = \frac{531441}{524288} \approx 1.01364 $$已经非常接近基频了,而下一个这么接近会在第51次的时候出现,其误差如下:
$$ \frac{(3/2)^{53}}{2^{31}} = \frac{19383245667680019896796723}{19342813113834066795298816} \approx 1.002090314041 $$如果不想音名和化学周期表一样多的话,那还是用十二音阶吧。我让gpt写一个程序可以来模拟五度 计算:
| |
三分损益
五度相生律是毕达哥拉斯学派研究出来的,而在中国古代,也有着一样的东西,这便是三分损益法。三分损益法直接研究弦长,三分,便是把弦分为三份;损,把弦长缩短一份,相当于弦长乘2/3,频率乘3/2;益把弦长增长一份,相当于弦长乘4/3,频率乘3/4。不断的使用损和益,也能得到十二个音。
| 黄钟律名 | 毕达哥拉斯音名 | 操作 | 频率比 |
|---|---|---|---|
| 黄钟 | C | 起点 | 1 |
| 林钟 | G | 损 | 3/2 |
| 太簇 | D | 益 | 9/8 |
| 南吕 | A | 损 | 27/16 |
| 姑洗 | E | 益 | 81/64 |
| 应钟 | B | 损 | 243/128 |
| 蕤宾 | F♯ / G♭ | 益 | 729/512 |
| 大吕 | C♯ / D♭ | 益 | 2187/2048 |
| 夷则 | G♯ / A♭ | 损 | 6561/4096 |
| 夹钟 | D♯ / E♭ | 益 | 19683/16384 |
| 无射 | A♯ / B♭ | 损 | 59049/32768 |
| 仲吕 | F | 益 | 177147/131072 |
| 清黄钟 | C(?) | 损 | 531441/524288 |
古人辛辛苦苦算了十二次,算到最后发现黄钟不能还原,于是给了个名字叫清黄钟。西汉有个叫京房的人不信邪,继续算,整了个六十律,运行我上面的程序会发现在65次的时候会有一个近似,但实际上还是回归不了。到了南朝宋有个叫钱乐之的,整出来了三百六十律,相当于黄钟推到359次的一个近似。
律名有了,音名也得有,于是就有了五音:
| 音阶顺序 | 五声 | 律名 | 西方近似 | 频率关系 |
|---|---|---|---|---|
| 1 | 宫 | 黄钟 | C | 1 |
| 2 | 商 | 太簇 | D | (9/8) |
| 3 | 角 | 姑洗 | E | (81/64) |
| 4 | 徵 | 林钟 | G | (3/2) |
| 5 | 羽 | 南吕 | A | (27/16) |
五音的音高是相对的而不是固定的,律名的音高则是固定的,所以不只有黄钟宫,还有太簇宫、姑洗宫,类似转调的操作。
三分损益法由管仲发明,管仲不仅搞经济有一手,玩音乐也厉害。相传管仲被押上囚车,靠着唱歌给押囚车的人打气,让车速加快,让鲁国的国君来不及反悔,才得以顺利活着回到齐国。这个故事来自《东周列国志》,可能有些虚构的成分,但多少也能看出来管仲在音乐上的造诣。
