写给程序员的音乐理论地址:runjs.app/blog/music-theory-for-programmers一篇交互式的教程~“我不会演奏任何乐器。我尝试过不止一次,但每一次都只学到勉强发出正确声音的程度,却始终不明白为什么那些声音是正确的。
问题从来不在练习本身,而在于我见过的音乐理论讲解似乎总会跳过一个根本问题:音乐中的事物为什么会是现在这个样子。这里是五线谱,这些是上面的音符;这是大调音阶,把这个排列背下来。为什么偏偏是这些音?为什么采用这种排列?因为约定就是如此。
对一个本质上源自物理和算术的体系来说,这是一种很奇怪的教学方式。十二个音的存在有其原因,大调音阶之所以具有这样的结构也有原因;听起来悦耳的和弦之所以悦耳,同样有原因,而且这些原因可以计算出来。
因此,我想从头开始,按照第一性原理学习音乐,而这段旅程是从编写代码开始的。
这篇文章就是最终的成果。它从一个随时间变化的数字开始。如果一路跟下来,你将推导出十二个音,用数组构造音阶和和弦,并写出一段听起来确实像音乐的和弦进行。你不需要任何乐器,也不需要未经验证地接受任何结论。传统乐谱会在文章最后出现,但那时我们已经先弄清楚了它究竟在记录什么。”


