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

我不会演奏乐器,每次尝试都只停留在制造噪音的阶段,因为传统教学只让我死记硬背乐理规则,却从未解释背后的物理和算术原理。于是,我决定从第一性原理出发,用代码重新学习音乐。这篇文章展示了如何从一个随时间变化的数字开始,推导出十二平均律,用数组构建音阶与和弦,并创作出真实的音乐。无需任何乐器,也不必盲目相信权威,一切结论都源于对频率、谐波和简单数学比率的计算。
这是一个奇怪的教授系统的方式,而这个系统本质上源于物理学和算术。
HN 评论区
242- seanhunter
这(大部分)根本不算音乐理论,而其中涉及音乐理论的部分,要么大错特错,要么残缺到具有极大的误导性。来源:我拥有音乐学士和硕士学位,曾是职业音乐人,直到重复性劳损(RSI)终结了我的职业生涯;我妻子也是职业音乐人,在两座音乐学院任教至研究生级别;我们大多数朋友都是职业音乐人;家里堆满了乐谱和音乐书籍。
如果你真的想为了演奏而学习音乐理论,我强烈建议你直接跟随针对你所在乐器和风格的教程学习。如果你学到一定程度,觉得想更深入地、严肃地研究音乐理论本身,那就去买 Mark Levine 的《The Jazz Theory Book》[1]。尽管书名这么说,其实根本没有什么“爵士乐理论”这回事——它只是音乐理论,而这本书呈现得非常出色,例子丰富。如果你喜欢爵士乐(或西方流行音乐传统,包括摇滚、流行、放克等),读完这本书你对这些音乐运作方式的理解将超过大多数人。如果你正在攻读音乐学位,你的课程会推荐一些书籍,但说实话,如果你不是走纯古典路线,Levine 的书基本能涵盖你需要的大部分知识;如果是纯古典路线,你需要补充更传统的资料,以便理解他们在写作仿古复调音乐(pastiche counterpoint)等时要求你遵守的“规则”。
如果你想深入作曲,或者想理解晚期浪漫派及 20 世纪……
- ergonaught
我想读这篇文章,因为它很有趣。然而。
https://bcantrill.dtrace.org/2026/09/05/the-revolt-of-the-re...
- altmanaltman
我 12 岁左右自学了吉他。其实你甚至不需要懂音乐理论就能弹吉他,只要理解指型(shapes)等基本概念就行。
久而久之,我发展出了一套理解理论的速记法,比如看一眼指板就能立刻知道是哪个音。
但让我感到困惑的是,你似乎暗示你学不会乐器的原因是因为不懂“为什么”。这对我来说毫无道理。我认识几位职业音乐人,他们甚至不知道什么是调式(mode),也不懂正式乐谱。其中一位拥有绝对音感,他能听到任何声音并直接在吉他上移调演奏。他完全不懂音符是如何运作的,只会写六线谱(tabs)。
所以,虽然这篇文章从程序员的角度看非常精彩,对事物进行了客观的解释,但重点在于:学完所有这些并不会让你成为更好的音乐人。
练习至上。不要试图把所有理论都套用到练习中,而是要理解你正在练习的内容,特别是结合理论去理解。否则,你最终只会满脑子理论,却没有任何运用这些理论和发挥创造力的实践经验。
作为一个喜欢代码的人,这很有趣。但作为一个懂音乐理论的音乐人,这篇文章的呈现方式让我感到有些疏离。如果有人读完这篇文章就以为自己懂了音乐理论,那在实际音乐人面前会显得非常令人难以忍受。
- polotics
我们来做个实验吧:听任何你喜欢的音乐,然后试着将文章提供的信息与你所听到的音乐的复杂性进行匹配。
你看到从 A(rticle,文章)到 S(ound,你耳中的声音)之间有多少条路径?
这篇文章将音乐简化为几个不那么重要的事实,并误以为一些数学知识就能帮助“程序员”(?)理解音乐。
也许你应该先重看一遍《This is Spinal Tap》,然后考虑一下 https://www.reddit.com/r/musictheory/comments/59n3pg/remembe...
- maybewhenthesun
> 用这种方式来教授一个本质上源于物理和算术的系统很奇怪。十二个音符的存在是有原因的。
当然,这其中涉及很多物理原理。但同样重要的是惯例(convention)。所以在我看来,这是一种非常片面的看法。
这 12 个音符之所以是这 12 个,确实有物理原因(尽管具体分配的频率也受文化影响),但许多不同的文化使用的音符更少,或者更多,或者在中间加入额外的音符。
所以在我看来,“因为这是惯例”这一解释,至少和“物理原因”的解释一样好。
- rynn
HN 评论中最令人惊叹的事情莫过于看着工程师们要求别人认真对待他们的专业知识,却完全无视其他领域专家的专业知识,理由仅仅是<编造一个借口>。
- Kuyawa
音乐人会尴尬得脚趾扣地,程序员会欢呼雀跃,随他们去吧。
如果标题改成“程序员音频入门”,就能把他们挡在外面,让我们能在评论区开派对,告诉作者这个教程多么有趣。永远别再提“音乐”这个词,你就安全了。
致敬,每一件创作作品本身就是一种乐趣,我点击每一个按钮时都为之着迷。
- IvanK_net
我是 https://www.photopea.com(一款流行的图片编辑器)的创作者。
最近,我写了 https://www.jampea.com/learn,这是专为“技术人员”设计的音乐理论。我相信这是理解音乐背后理论最快的方法(总共需要 2 到 5 小时,其中 10% 的时间在阅读,90% 的时间在思考你刚刚读到的内容)。