Cagire:用 Forth 脚本实时编码音乐

Cagire: Live Coding in Forth

Cagire:用 Forth 脚本实时编码音乐

Cagire 是一款基于 Forth 的实时编码音序器,彻底颠覆了传统音乐制作方式。在这里,每个步骤不再是固定的音符数据,而是一段可执行的 Forth 脚本。内置的 Doux 音频引擎提供了振荡器、滤波器、混响等丰富效果,无需任何外部软件即可创作。你可以自由定义脚本行为,从生成声音到触发采样,甚至构建复杂的 DSP 逻辑。Cagire 不仅是一个工具,更是一种将编程与艺术融合的创作体验,让代码在实时演奏中焕发诗意与乐趣。

实时编码是一种在观众面前实时编写代码的技术,它既是实验,也是表达,没有错误,只有乐趣。
  1. DonHopkins

    Toffoli 和 Margolis 为 IBM-PC 设计的 CAM-6 元胞自动机(cellular automata)机器板是用 FORTH 编程的。我写了一个模拟器,这段视频展示了我保存的一些原始 FORTH 代码,以及我自己编写的兼容 FORTH 元胞自动机规则计算机,它让我能运行书中的规则,生成硬件所需的查找表,而我的模拟器也兼容这些表。后来我把它用 JavaScript 重写了。虽然这不是实时编码(live coding),但它有一个实时表演的用户界面(相当怪异且难以摸索,尤其是如果你没读过那本书的话,不过我在视频里做了演示)。

    CAM6 演示

    https://www.youtube.com/watch?v=LyLMHxRNuck

    驱动实际 CAM-6 板的原始 FORTH 代码:

    tomt-cam-forth-scr.txt: https://donhopkins.com/home/code/tomt-cam-forth-scr.txt

    tomt-users-forth-scr.txt: https://donhopkins.com/home/code/tomt-users-forth-scr.txt

    我用 C 编写的兼容元胞自动机编译器以及连接模拟器的胶水代码:

    cam.f.txt: https://donhopkins.com/home/code/cam.f.txt

    compile.f.txt: https://donhopkins.com/home/code/compile.f.txt

    我在用 JavaScript 重写之前,用 C 编写的旧版模拟器:

    https://github.com/SimHacker/micropolis/tree/master/Micropol...

    JavaScript 版的 CAM6 模拟器:

    CAM6.js: https://github.com/SimHacker/CAM6/blob/master/javascript/CAM...

  2. eggy

    太酷了,而且我很喜欢这个复古字体。我早年(80 年代初)有一台 Vic-20,还有一台 Commodore PET 2001(1977 年)。我正在学习 Odin,原本打算尝试构建一个实时编码环境,用 Forth 做脚本,用 Odin 做 GUI 和其余部分,专门用于音频和图形。很久以前,Paul Batchelor 的 Sporth 和 Tidal(现在叫 tidal cycles 了吗?)就给了我灵感。Forth 是一门很棒的编程语言。你几天内就能写出一个编译器/解释器。John Earnest 的 ok.js 也很酷。我喜欢栈语言和数组语言,所以当我不是在玩 J 语言时,我就用 Uiua。Uiua 具备处理音频和图形/动画的能力,正好满足了我对数组/栈语言的瘾。

  3. quaverquaver

    如果你想要一个类 FORTH 的合成环境,一定要看看 SAPF!(由 SuperCollider 的作者 James McCartney 开发)https://github.com/lfnoise/sapf

同日更多故事

2026-07-19