基于 Prolog 的 SATB 四部和声生成器
最近在研究 SATB 四部和声,然后感觉如果完全按照和声学教材里的内容,尤其是 18 世纪的和声学概念,几乎就是给了一大堆规则,然后写的是有把人当成一个栈机 (stack machine) 不停搜索不要违背这些规则。既然如此,为什么我们不能设计一个搜索程序,直接将四部和声的配法规约出来呢?
最近在研究 SATB 四部和声,然后感觉如果完全按照和声学教材里的内容,尤其是 18 世纪的和声学概念,几乎就是给了一大堆规则,然后写的是有把人当成一个栈机 (stack machine) 不停搜索不要违背这些规则。既然如此,为什么我们不能设计一个搜索程序,直接将四部和声的配法规约出来呢?
刻板印象的蓝调
起因
在上一篇文章里,我们认识了音高。这相当于学会了怎么数数。学完数数的小朋友就要学习加减法了,而音高之间的加减法就叫音程。说到「音程」,最类似的日常词语是「路程」。路程是两点间的距离,音程也是两个音高之间的距离。描述音程有两种方法,一种简单的,一种常用的。
音乐很有趣,理解音乐很难。但音乐背后的物理、数学原理并没有那么复杂,此所谓乐理。Ruby 是一门编程语言。编程编的是程序,所谓程序,是计算机执行的指令,是阐明计算过程的方式。我们在此使用 Ruby 语言描述乐理,以简单的例子提高自己对乐理的理解,也可以精进自己的 Ruby 编程技能。
Stanley Parable 中通过对 Stanley 工作的描写,讽刺了一些电子游戏的本质。「屏幕上让 Stanley 按一个键,Stanley 就按下那个键」许多电子游戏事实上就是如此,本质上就是一些充满了 QTE 的播片。如果延伸到音乐游戏上,事实上就延展出了对于音乐游戏「音乐性 (musicality)...