Live Coding圈为什么开始流行用Forth写音乐

Live Coding圈为什么开始流行用Forth写音乐

七月 11, 2026 live coding forth programming music synthesis audio engineering creative coding open source music

当 Live Coding 遇上 Forth:堆栈上的音乐实验

stack 编程有种说不清的魔力。压入数值,消费它们,看操作在逻辑里层层传导。简洁、直接,一旦上手,就像在和机器直接对话。

现在想象一下,同样的体验不是往终端打印数字——而是创造音乐。

Cagire 是一个步进音序器,每个 step 运行的是 Forth 代码,而不是触发预设好的采样。当音序器走到第 14 步,它执行的是那块 Forth 脚本——可能是合成底鼓,可能把频率送进梳状滤波器,也可能什么都不做。你不会被 GUI 滑块的选项框死。规则是你自己写的。

音乐为什么要用 Forth?

Forth 的后缀表达式(3 4 + 而不是 3 + 4)逼着你用即时因果的方式思考。对于声音来说,这不是缺陷——而是特性。"频率 440Hz 的振荡器"写成 440 s fosc,反而更直觉。stack 就是你的参数传递机制,一旦熟练了,就能串起复杂的合成链,还不会被语法淹死。

这不是新玩法——Forth 在嵌入式系统和硬件控制领域低调了好几十年。但用到实时音频合成上?那是另一回事。Cagire 内置的引擎叫 Doux,包揽了重活:振荡器、滤波器、效果器、采样回放。你的 Forth 脚本通过简单的 word 定义来调用这个引擎。不用外部 DAW,不用插件链,不用那些乱七八糟的路由。

天生就是可编程的

这件事对开发者和音乐人都很有吸引力:把音乐当成可以塑形和组合的数据

传统音序器里,pattern 是一串事件。在 Cagire 里,pattern 是一个程序。你的脚本可以:

  • 查询当前 tempo 并动态调整
  • 用概率和随机生成变化
  • 根据迭代次数或节拍位置触发不同行为
  • 根据刚播放的内容动态串联 pattern

本质上你是在 Forth 之上构建一个领域特定音乐语言,然后用这套语言做实时作曲。对开发者来说,这套逻辑很熟悉;对音乐人来说,这是一种能直接映射到代码的创作思路。

为现场而生的设计

Live coding 环境经常给人"卧室专用"的感觉,上不了台面。Cagire 不走这条路。会话式的 pattern 网格让你可以在量化边界上触发 clip——点一下 launch,所有东西立刻同步。HOLD 模式可以预载一整组 pattern,然后一个键全部一起释放。

这就是为即兴演出打造的。你可以同时跑 32 组、每组 32 个 pattern,每个都在执行你现场定义的 Forth 脚本。整个 session——pattern、自定义 word、音符定义——存成一个文件就能带走。把你那套自定义声音语言从这台电脑迁移到那台电脑,随时开始。

更大的图景

Live coding 音乐一直吸引着某类开发者-音乐人:习惯用逻辑思考、受够了标准音乐软件的限制、想要直接掌控声音合成的人。过去十年工具进步很大,但大多数还是把代码当成传统音乐概念的表层包装。

Cagire 把编程直接嵌入音序器的架构里。step 不是触发器,是函数调用。pattern 不是时间线,是执行环境。这种概念转换带来的可能性,图形界面根本表达不了。

不管你是想找创作出口的 Forth 爱好者、受够了和环境抽象层较劲的 live coder,还是那种靠做能出声的东西来学习的开发者——这里确实有点意思。stack 是真实存在的。声音是可编程的。下一步写什么,由你决定。

Cagire 自带交互式文档和可运行的示例,就在软件里。为了看看 Forth 配上 tempo 是什么声音,也值得试一把。


你试过用 live coding 环境做音乐吗?什么方式对你来说真正 work 了?评论区聊聊——一直很好奇大家都在用什么工具。

Read in other languages:

RU BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA EN