TuttiDAW 代码编曲TuttiDAW Code 指南

给 agent 用的 TuttiCode

让 Claude Code、Copilot、Codex 或任何 MCP 客户端编写 TuttiCode,并在你自己的浏览器里渲染成音频文件:tutticode CLI、MCP server 和 skill。

AI agent 写 TuttiCode 不比你差,但它听不见。tutticode 给了它耳朵和调音台:一个命令行工具,也是一个 MCP server,可以检查程序、用和本页相同的引擎渲染成 WAV、FLAC 或 MP3,并测量结果(响度、峰值、频段平衡、律动),让 agent 能修正它听不到的问题。另有两个 skill,教 agent 这门语言,以及怎样为视频、应用和游戏做声音。

安装

需要 Node 20 或更新版本,以及 Google Chrome 或 Microsoft Edge。

npm i -g tutticode
tutticode skills install
tutticode doctor

skills install 会把两个 skill 复制到各个 agent 的 skill 目录:tutticode(语言本身)和 tutticode-sound-for-media(按指定时长和响度做配乐、循环和音效)。目录包括 Claude Code(~/.claude/skills)、Copilot CLI(~/.copilot/skills)和 Codex(~/.codex/skills):默认装到你电脑上已有的每一个;也可以用 --claude、--copilot、--codex 指定,或用 --dir <路径> 装到任意目录。

MCP 客户端需要添加这个 server,比如在 Claude Code 里:

claude mcp add tutticode -- tutticode mcp

两个后端,同一套 API

工具在哪里都同名:code_check(编译,不出声音)、code_render(渲染并测量)和 code_compare(和目标或之前的一次渲染比较)。区别只在于音频在哪里生成:

  • 你电脑上的 tutticode(默认):在你自己的浏览器里渲染,文件写到你的硬盘。免费,不需要账号,每次最多渲染 5 分钟的音频。它还提供 code_open(在本页打开程序给你听)和 code_reference(搜索语言参考)。
  • TuttiDAW 网页版 MCP(https://tuttidaw.com/api/mcp)和 HTTP API(/api/code/check、/api/code/render、/api/code/compare):给不能在你电脑上运行程序的 agent 用。在我们的服务器上渲染,需要登录,消耗 Muse 点数,最长 60 秒,返回的是一个试听链接而不是文件。

示例:给视频做一个 riser

  1. 对你的 agent 说:"给我的视频开头做一个 4 秒的 riser,按 YouTube 的响度标准,存成 riser.wav。"
  2. agent 从媒体 skill 里选出 riser 配方,写好程序,反复运行 code_check 直到没有错误:
setcpm(15) // one bar = 4 s
cymbal: note("c4").s("gm_reverse_cymbal").gain(0.9)
sweep: note("c3").s("sawtooth").penv(24).pattack(4).attack(3.5).release(0.1).lpf(2000).gain(0.4)
在 /code 中打开
  1. 它渲染出文件,先读一遍数据再交给你:
tutticode render riser.tc -o riser.wav --seconds 4 --lufs -18 --json

你会拿到 riser.wav、它的响度和 true peak,以及一个 editUrl:在本页打开这段程序,你可以自己试听、修改、再渲染。点上面的播放就能听到 agent 做的东西。

隐私

tutticode 在你的电脑上渲染:程序从 agent 直接送到你自己浏览器里的 TuttiCode 页面,不会去别的地方。bridge 不会把程序代码或音频发到我们的服务器,tutticode 也不发送任何遥测数据。日志只存在 ~/.tutticode/logs,里面不会有你的程序或音频。页面本身和普通网页一样从 tuttidaw.com 加载,包括乐器和采样。网页版 MCP 不同:那里程序会发送到 TuttiDAW 去渲染。

浏览器权限

TuttiCode 页面通过你自己的电脑(127.0.0.1)和 tutticode 通信,Chrome 和 Edge 把这算作访问本地网络:

  • 默认情况下,tutticode 会启动一个隐藏的浏览器,使用它自己的配置文件,并且只为 tuttidaw.com 允许这项访问;你什么都看不到。
  • 加上 --show(你自己在终端里输入命令时的默认方式)会使用你平时浏览器里的一个标签页。第一次使用时,页面会询问是否允许这个 agent 用 TuttiCode 渲染声音,浏览器会询问是否允许 tuttidaw.com 访问本地网络上的设备:两个都选允许。
  • tutticode setup(可选)会先解释、征得你同意,然后为你的用户设置一条浏览器策略,让第二个问题不再出现:只允许 https://tuttidaw.com 访问本地网络。tutticode setup --undo 会准确地删掉这一条。

常见问题

先运行 tutticode doctor:它会检查 Node、浏览器、页面、连接和引擎版本,并告诉你该修什么。

  • 找不到浏览器:安装 Chrome 或 Edge,或者用 --browser <路径> 或环境变量 TUTTICODE_BROWSER 指定一个。
  • 页面一直连不上(退出码 2):在浏览器里允许本地网络访问(或运行 tutticode setup),并确认没有扩展或公司策略拦截 tuttidaw.com。
  • 代码有错(退出码 1):报告会列出每个错误的行、列和修改建议;agent 应当反复运行 code_check 直到没有错误。
  • clip:要求的响度会把峰值推过 -1 dBTP。请降低 --lufs,或者调小最响的那个声部。
  • 渲染时间太长:用 --timeout 给它更多时间,或者少渲染几个循环。