程序员如何用代码从零推导音乐理论

Music Theory for Programmers

程序员如何用代码从零推导音乐理论

我不会演奏乐器,每次尝试都只停留在制造噪音的阶段,因为传统教学只让我死记硬背乐理规则,却从未解释背后的物理和算术原理。于是,我决定从第一性原理出发,用代码重新学习音乐。这篇文章展示了如何从一个随时间变化的数字开始,推导出十二平均律,用数组构建音阶与和弦,并创作出真实的音乐。无需任何乐器,也不必盲目相信权威,一切结论都源于对频率、谐波和简单数学比率的计算。

这是一个奇怪的教授系统的方式,而这个系统本质上源于物理学和算术。
  1. seanhunter

    这(大部分)根本不算音乐理论,而其中涉及到的音乐理论部分大多错误百出,甚至错得离谱、极具误导性。信息来源:我拥有音乐学位和研究生学历,直到因重复性劳损(RSI)被迫结束职业生涯前,我一直是一名职业音乐人;我的妻子也是职业音乐人,在两座音乐学院教授研究生课程;我们的大部分朋友都是职业音乐人;家里堆满了乐谱和音乐书籍。

    如果你真的想为了演奏而学习音乐理论,我强烈建议你直接跟随针对你的乐器和风格的教程。如果你学到一定程度,觉得想更深入地钻研,并把它当作一门独立的学科来认真对待,那就去买 Mark Levine 写的《The Jazz Theory Book》[1]。尽管书名这么说,其实根本没有什么所谓的“爵士理论”——它只是音乐理论而已,而这本书讲解得非常好,例子也很丰富。如果你喜欢爵士乐(或者西方流行音乐传统,包括摇滚、流行、放克等),读完这本书后,你对这些音乐运作方式的理解将超过大多数人。如果你正在攻读音乐学位,你的音乐项目会推荐一些书籍,但老实说,如果你不是走纯古典路线,Levine 的书基本能涵盖你需要的大部分知识;如果是纯古典路线,你可能需要补充一些更传统的资料,以便理解他们在创作拼贴式对位法等作品时要求你遵循的“规则”。

    如果你想深入作曲,或者想理解晚期浪漫派和 20 世纪……

  2. vaastav

    “你可能在结尾听到了一声轻微的咔哒声。那不是浏览器的 bug,而是物理定律在无情地发挥作用。”

    啥玩意儿?

  3. polotics

    咱们做个实验怎么样:听任何你喜欢的音乐,然后试着把文章里提供的信息和你所听到的音乐的复杂度对应起来。

    你觉得从 A(文章)到 S(你耳朵听到的声音)之间有多少关联路径?

    这篇文章把音乐简化为几个不那么重要的事实,还误以为一些数学知识就能帮助 `程序员`(?)理解音乐。

    或许你应该先重看一遍《This is Spinal Tap》,然后考虑一下这个:https://www.reddit.com/r/musictheory/comments/59n3pg/remembe...

  4. ergonaught

    我想读这篇文章,因为它很有趣。然而……

    https://bcantrill.dtrace.org/2026/09/05/the-revolt-of-the-re...

  5. maybewhenthesun

    > 用这种方式来教授一个本质上源于物理学和算术的体系,确实很奇怪。十二个音符的存在是有原因的。

    当然,这里面涉及很多物理学原理。但同样重要的是约定俗成的规则。所以在我看来,这种看法非常片面。

    十二个音符之所以是这十二个,确实有物理原因(尽管具体的频率分配也受文化影响),但许多不同的文化使用的音符更少、更多,或者在中间加入了额外的音符。

    所以在我看来,“因为这是约定俗成的”这一解释,至少和“物理原因”这一解释一样站得住脚。

同日更多故事

2026-09-06