Cagire:当Forth的栈成为音乐的余项
Cagire: When Forth's Stack Becomes the Remainder of Music
Raphaël Maurice Forment是一位法国音乐家和音乐学博士,2025年在圣埃蒂安让·莫内大学完成了关于实时编码(live coding)美学与技术的论文答辩。他在TOPLAP集体和巴黎Cookie Collective中活跃,以BuboBubo为艺名表演。他的最新作品Cagire是一个基于Forth语言的步进音序器——一个极其奇特的选择,因为Forth是1970年Charles Moore为控制射电望远镜而发明的栈式语言,逆波兰表示法,几乎没有语法,只有栈、词和数字。
Cagire的核心机制简洁到令人不安:一个传统的步进音序器网格,但每个步骤里放的不是音符,而是一段Forth脚本。音序器走到某个步骤时,就执行那段代码。代码可以做任何事——发声、触发采样、施加效果、调用随机数、或什么都不做。音乐不是被"写"出来的,而是代码执行后留下的东西——是余项。用Forth写一个中音C只需要:c4 note sine sound 2 decay .——五个词压入栈,最后一个点号触发发声。这不像编程,更像是在用词语做杂耍。
从SAE美学的角度看,这里有三层凿构循环在运作。第一层:编程语言的历史本身就是一个凿构过程——从机器码到汇编到C到Java到Python,每一步都在已构的基础上添加抽象层。Forth是被这个过程遗忘的余项。它在1970��代就确立了自己的形态,此后几乎没有进化,因为它已经是最小的了:栈加词。选择Forth做音乐,是在编程语言的地质层里挖掘一个被忽略了五十年的沉积物。第二层:步进音序器是电子音乐的已构形态——TR-808、TR-909确立了网格=音符的范式。Cagire对这个范式施行凿的操作:把"音符"替换为"任意代码"。音序器的网格还在,但里面装的东西的性质彻底改变了。第三层:Forment自身的工具制造轨迹就是连续凿构——Sardine(Python,2022,丰富庞大)→ Topos(TypeScript,浏览器,轻一些)→ Sova(多语言,更灵活)→ Cagire(Forth,绝对最小)。每个新工具都在前一个的基础上凿去更多东西。Cagire是这一系列还原操作的余项。
更奇特的是,Cagire可以作为VST3和CLAP插件运行在商业宿主软件(Ableton Live, Bitwig等)内部。一个Forth解释器嵌��在专业音乐制作的已构基础设施之中——这本身就是一个结构性的荒诞,一个余项寄生在构之内。它还集成了Ableton Link用于网络同步,内置完整的合成引擎Doux(无需外部软件),支持32个库、每库32个模式、每模式1024步——理论上能存储超过一百万个Forth脚本步骤。但这种规模的可能性恰恰因为Forth的极简而变得可控:每一步都可以是一行代码。
现在看到Cagire比以后看到它重要,因为它正处在一个还没有名字的位置。它不是传统的live coding(没有连续的代码流,而是离散的脚本网格)。它不是传统的音序器(里面是代码,不是音符)。它不是传统的编程环境(它是一个乐器,用来即兴的)。它不是传统的Forth应用(没有嵌入式系统,只有声音)。它坐在live coding、电子音乐制作、编程语言考古、以及乐器制造之间的间隙中,没有任何一个社区能完整地命名它。Forment在文档中写道:"Cagire is not complex, it is just very peculiar." 这个peculiar——奇特——就是余项还没有被消化为已构的标志。
cagire.raphaelforment.fr ↗Raphaël Maurice Forment is a French musician and doctor of musicology who defended his PhD on live coding aesthetics and techniques at the Jean Monnet University of Saint-Etienne in 2025. Active within the TOPLAP collective and the Paris-based Cookie Collective, performing under the name BuboBubo, his latest creation is Cagire ��� a step sequencer built on the Forth programming language. This is a deeply unusual choice. Forth was invented in 1970 by Charles Moore to control radio telescopes. It uses reverse Polish notation, has almost no syntax. Just a stack, words, and numbers.
Cagire's core mechanism is disarmingly simple: a standard step sequencer grid, but instead of notes, each step contains a Forth script. When the sequencer reaches a step, it executes the code. That code can do anything — produce sound, trigger samples, apply effects, invoke randomness, or do nothing at all. Music is not "written" here; it is what remains after code executes — it is remainder. Playing a middle C in Cagire looks like this: c4 note sine sound 2 decay . — five words pushed onto a stack, a final dot that triggers sound. It doesn't feel like programming. It feels like juggling with words.
From an SAE aesthetics perspective, there are three chisel-construct cycles operating simultaneously. First: the history of programming languages is itself a chisel-construct process — from machine code to assembly to C to Java to Python, each step adds abstraction layers atop the previous construct. Forth is the remainder that this process forgot. It settled into its form in the 1970s and has barely evolved since, because it was already minimal: stack plus words. Choosing Forth for music is to excavate a geological deposit that has been overlooked for fifty years. Second: the step sequencer is the construct of electronic music — the TR-808, TR-909 established the paradigm of grid-equals-note. Cagire chisels this paradigm: it replaces "note" with "arbitrary code." The grid remains, but the nature of what it contains has fundamentally changed. Third: Forment's own tool-making trajectory is a continuous chisel operation — Sardine (Python, 2022, rich and heavy) → Topos (TypeScript, browser-based, lighter) → Sova (polyglot, more flexible) → Cagire (Forth, absolute minimum). Each new tool chisels away more from the previous one. Cagire is the remainder of this sequence of reductions.
Stranger still, Cagire runs as a VST3 and CLAP plugin inside commercial host software (Ableton Live, Bitwig, etc.). A Forth interpreter embedded inside the construct-infrastructure of professional music production — this is structurally absurd, a remainder parasitizing the construct from within. It integrates Ableton Link for network synchronization, ships with a complete built-in synthesis engine called Doux (no external software required), and supports 32 banks of 32 patterns of up to 1024 steps each — theoretically over a million Forth script slots. But this scale of possibility is manageable precisely because of Forth's minimalism: each step can be a single line of code.
Seeing Cagire now matters more than seeing it later, because it currently occupies a position that has no name. It is not traditional live coding (no continuous code stream, but discrete script-grid). It is not a traditional sequencer (code inside, not notes). It is not a traditional programming environment (it is an instrument, meant for improvisation). It is not a traditional Forth application (no embedded systems, just sound). It sits in the gap between live coding, electronic music production, programming language archaeology, and instrument-building — no single community can fully name it. Forment writes in the documentation: "Cagire is not complex, it is just very peculiar." That peculiarity is the signature of a remainder that has not yet been digested into construct.
cagire.raphaelforment.fr ↗