‹ 返回工坊合集
数学游戏工坊 · 无理数 × 音乐

无理谱 · 用无理数作曲

π 的小数位是 3.14159…,把它逐位读成音级、或按连分数切成节奏,会得到一支怎样的曲子?也可以借《斯卡布罗集市》《绿袖子》的节奏骨架,只把音高换成无理数的数字。选一个常数、一种风格、一件乐器,让无理数自己谱曲。

常数
π
风格
轻音乐
音符
—
时长
—
① 常数 旋律之源——取它的小数位或连分数
② 风格 决定和声、节奏与配器
③ 主乐器 旋律由谁来唱
④ 映射规则 数字如何变成音
⑤ 名曲框架 借当前风格名曲的节奏与句法作骨架,音高用「音级直译」或「音程漫步」填进去
⑥ 音阶 · 调性 · 速度 · 篇幅
主音 起始位0
速度80 小节
还没有曲子
选好参数后按「生成并播放」,无理数就会开始歌唱。
探索图鉴 每试过「常数 × 风格」一格即点亮 · 点格子可直接载入
已点亮 0 / 35 格
勋章

一、音程比是有理数——毕达哥拉斯的发现

把一根弦对半分,就得到高八度的音:频率比恰为 2 : 1。三分之二处按弦得五度,比是 3 : 2;四分之三处得四度,比是 4 : 3。毕达哥拉斯学派认为,整个宇宙的和谐都写在这样的小整数比里——他们称之为「数即万物」。

问题是:只用 2、3 这样的素因子堆叠,永远得不到「把八度均分成十二份」的那个数。

二、无理数的登场:十二平均律

要让十二个半音在任意调上都能自由转调,就得让相邻半音的音高比完全相等。设这个比为 r,十二步正好一个八度,于是

r¹² = 2  =>  r = 2^(1/12) ≈ 1.0594630943592953…

这个数是无理数。而纯律五度是 3/2 = 1.5,两者永远不能同时成立——这就是钢琴调律中「狼音」的数学根源。本工坊里您的旋律,正是架在这条无理数搭建的楼梯上。

三、把小数位读成音乐

本工坊提供三种「翻译」方式:

  • 音级直译:小数位上每位数字 d 直接对应音阶的第 d 级(超出音阶长度就跨到上一八度)。π 的 14159… 会读成「1 4 1 5 9…」的一串音。
  • 音程漫步:取相邻两位数字之差作为上行或下行的步数,从一个主音出发走出一条有起伏的旋律线。
  • 连分数:把常数展成连分数 x = a₀ + 1/(a₁ + 1/(a₂ + …)),每个 aᵢ 同时决定音高与时长——aᵢ 大的项自动变成悠长的音。

四、常数的「性格」

不同常数的数字分布不同,旋律也就有不同的味道:

  • √2、√3、√5 的小数位看似随机,却各自带着独特的重复气质;
  • ∛2、√p(p 为质数)——你可以现场换一个质数,听同一段规则下「新常数」唱出的新歌;
  • π 的连分数是 [3; 7, 15, 1, 292, …],那个惊人的 292 会变成一个拖得很长的音;e 的连分数是 [2; 1, 2, 1, 1, 4, 1, 1, 6, …],规律得更像一首整齐的小品。

五、频率与音分

两个音的「距离」用音分度量:cents = 1200 · log₂(f₂/f₁)。一个八度是 1200 音分,一个平均律半音正好 100 音分。当频率比是有理数时音分是无理数,反之亦然——有理与无理在这里互为表里。

六、借名曲的骨架

旋律其实由两样东西分开构成:节奏骨架(每个音多长、落在哪一拍、乐句在哪里呼吸)与音高序列(每个位置唱哪个音级)。名曲之所以一耳可辨,很大程度靠的是前者——把节奏骨架留下,音高便可随意替换。

于是有了「名曲框架」:取下《斯卡布罗集市》《欢乐颂》《土耳其进行曲》《茉莉花》等名曲的节奏与句读,只把每个位置的音高换成无理数给定的音级——可以逐位直译,也可以让相邻数字之差在骨架上漫步成旋律线。骨架不变而血肉全新——这也是「用无理数作曲」与「借名曲作骨」两条思路的合流。

而和声则交给数字自己决定:每小节里旋律实际用到的音级(强拍与长音权重更高)会去挑选最贴合的三和弦,再参考该曲原来的和声与常用进行做微调——所以换个常数,和弦也随之改写。

怎么玩

  • 在「作曲台」里依次选常数、风格、乐器、映射规则,再调音阶/主音/速度/篇幅;
  • 按「▶ 生成并播放」——旋律即刻生成并奏响,钢琴卷帘上能看到每个音的落点,上方小数位会随播放高亮;
  • 「起始位」滑块让您从常数的任意一位数字开始——同一常数,不同的耳朵听到不同的开头;
  • 「🎲 随机一支」可一键抽一组参数,常有意外的惊喜;「⬇ 导出 MIDI」把曲子存成 .mid,可在任何音乐软件里继续编配。

名曲框架:借骨填音

在「⑤ 名曲框架」里,每一种风格都备了 2–3 首名曲——轻音乐有《斯卡布罗集市》《绿袖子》《帕赫贝尔卡农》,流行有《欢乐颂》《圣者进行曲》,说唱有贝多芬《命运》《土耳其进行曲》,布鲁斯有《十二小节布鲁斯》《圣路易斯布鲁斯》,中国风有《茉莉花》《康定情歌》。选一首,工坊就借它的节奏骨架与句读当框架,把无理数从某一位起逐位直译出的音级填进这些节奏槽。

勾选「对照:先听原曲骨架」可以先把名曲的原旋律放一遍——同一个节奏骨架、两种填法,前后的差别一耳可辨。框架下拍号随名曲走(多为 3/4 或 4/4),映射默认「音级直译」,也可切「音程漫步」让相邻数字之差在名曲的节奏里走出旋律线;音阶与主音随该曲调式设定:如《斯卡布罗集市》是 E 多利亚、《绿袖子》是 A 小调(句间含升七度 G♯)、《茉莉花》与《康定情歌》是五声。

和弦跟着数字走

伴奏的和弦并非事先排定,而是逐小节依旋律实际用到的音级自动选出:工坊衡量该小节里每个音(强拍、长音加权)落在和弦三音上的多少,在调内各级三和弦中挑最贴合的一个,再兼顾名曲原和声与常用进行的倾向。于是同一副骨架、不同的常数,会配出不同的和声——数字变了,和弦也跟着变,曲子听起来才顺。

为什么叫「无理谱」

「谱」既是乐谱,也是「谱曲」的谱;而无理数正是那些写不成两个整数之比的数。它们本是数学里最「不整齐」的存在,却偏偏能谱出整齐的旋律——这正是这座工坊想让人听见的事。

关于记谱

旋律并非事先写好,而是由您的参数当场算出来的:常数 → 数字序列 → 音级/音程 → 音高与时长,再由合成器实时发声。换一个参数,曲子就完全不同——这也意味着,同一组参数永远得到同一支曲。

关于乐器

四件主乐器皆为实时合成:钢琴用叠加泛音,小提琴用双锯齿加颤音,吉他取自 Karplus–Strong 拨弦模型;口琴则按布鲁斯十孔口琴的音色塑造——三支簧片轻微失谐形成「簧片合唱」,中频共振峰带来鼻音,起音带一点上滑的弯音,长音后半段才升起颤音,正是布鲁斯吹口琴时的气口。