有一天看到一个东西叫 Musikalisches Würfelspiel,中文叫"音乐骰子游戏",据说和莫扎特有关。
我当时的第一反应不是"这是什么",而是"这东西有可能是怎样的?"
猜它大概是这样运作的:有一堆预先写好的乐句,掷骰子,根据点数选乐句,把选出来的拼在一起,就是一首曲子。听起来很简单,所以我想看看实际是不是这样。
结果基本猜对了,但有一个细节让我卡住了。
这个游戏的玩法是:一首小步舞曲分成 16 小节。每个位置有多个备选乐句,掷骰子决定用哪一个。每个位置的备选乐句都事先写好、编了号,配了一张对照表——掷出 7 点,查表,第 3 小节用第 42 号乐句;掷出 11 点,第 3 小节用第 67 号乐句。16 个位置都这样选一遍,拼起来,曲子就出来了。
理论组合数:11 的 16 次方,大约 4500 亿。
这个数字本身不是重点。重点是这 4500 亿首曲子据说每一首都听起来是完整的、和谐的。
我在看那张对照表的时候,发现最后几个位置有两个相同的骰子点数——比如第 13、14 小节都掷出了 9 点。我的第一反应是:那这两小节不应该是一样的吗?
但仔细看才发现:第 13 小节和第 14 小节用的是两张不同的对照表。同样是掷出 9 点,第 13 小节查第 13 列,第 14 小节查第 14 列,选出来的乐句编号根本不是同一个。
“对应关系不是全局的,是按位置绑定的。”
这句话我想了一会儿。
然后是更大的问题:为什么分两段?
16 小节分成两段,每段 8 小节,结构上是 A-A-B-B。这是小步舞曲的标准形式。两段之间要有对比,但又要在同一个调性体系里,而且结尾要有明确的终止感。
设计者要保证的是:随便怎么掷骰子,A 段自己能成立,B 段自己能成立,A 和 B 拼在一起也能成立。
要满足这些,每一个备选乐句都必须在结构上是可替换的——开头兼容上一句的结尾,结尾兼容下一句的开头。176 个乐句,每一个都要满足这些约束。
所以这不是"写了一堆乐句然后随机拼",而是先想清楚约束,再在约束内写乐句,让每一个零件都天然可组合。
在没有计算机的 1787 年,有人设计了一个能生成几百亿种输出、但每种都符合质量标准的系统。
他不是在"生成音乐",他是在定义一个空间——在这个空间里,所有可能的组合都是合法的。他花时间的地方不是写曲子,是设计约束。
最后补一句:这个游戏是不是真的莫扎特写的,学界有争议。但这件事不影响这个系统本身有多聪明。
互联网上有很多可以在线体验的版本。每次刷新都是一首新曲子,听起来都挺像那么回事。
这是 1787 年的随机种子。