mcpField
I
ismail

ismail

本地服务
measuredinstruments.com媒体与设计17今天更新

关于 ismail

ismail 是一款开源 DAW,AI Agent 可通过文本工具创作、混音、渲染和播放音乐,界面也能按反馈调整。它面向使用兼容 MCP 的 Agent 的创作者,并将渲染分析转为 Agent 可读的文本。

主要功能

  1. 01以文本创作和编辑音乐
  2. 02以文本返回渲染分析
  3. 03在播放台进行实时播放
  4. 04通过手机记录和控制
  5. 05浏览器或头显中的 VR 舞台
  6. 06MIDI 文件导入与导出

适用场景

  1. 01与 Agent 起草并修改歌曲
  2. 02通过文本分析查看渲染结果
  3. 03远程聆听并发送语音备注
  4. 04在 VR 中指导音乐场景

MCP 相关

ismail 可作为 MCP 服务供兼容 MCP 的客户端使用,向 Agent 提供音乐制作和界面工具。运行 `ismail mcp` 可启动服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"newsbubbles-ismail": {
"command": "uvx",
"args": [
"ismail"
]
}
}
}
启动命令uvx ismail

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiismail0.4.3

工具

348

收录的工具列表 · 更新于 今天

参数类型必填说明
bpmnumber是
namestring否
projectstring是
objectivestring否
referencestring否
offset_secnumber否
length_barsinteger是
derived_fromstring否
beats_per_barinteger否
master_limiterboolean否

详细介绍

刚接触?你不需要懂音乐或编程。 打开一个能在电脑上运行程序的 AI Agent(Claude Code、Codex、Cursor,或 Claude 桌面应用中的 Code 标签页),然后粘贴这一行:

Set me up with ismail: https://github.com/newsbubbles/ismail

它会安装所有内容,询问你想创作什么,并为你播放第一个创意。如果你有 VR 头显,之后它还能让你置身于自己的音乐舞台上。你不需要知道“skill”“MCP”或“plugin”是什么:你的 Agent 会处理这些。

ismail 标志:船上的四位自动演奏乐手

ismail

它不是加了 Agent 的 DAW。ismail 从 Agent 所缺少的能力出发:它听不见,所以 ismail 会把音乐转成文本供它阅读,而你则通过它为你构建的界面来引导创作。

你已经在用的 Agent 会在后台完成工作。你带来品味。

由 Measured Instruments 制作:https://measuredinstruments.com(供 Agent 使用:https://measuredinstruments.com/agents/)

测试

如果你是 AI Agent: 请先阅读简短的 AGENTS.md。然后阅读操作手册 skills/ismail/SKILL.md。每个客户端的设置说明都在 setup.md 中(使用 uv 的一条命令: uvx --python 3.12 ismail mcp)。你的第一个工具调用是 guide。使用 ops_find,根据需求查找任何工具。每次渲染的结果都会以文本形式返回给你。

我的 Agent 搭建了一家 1958 年的蓝调俱乐部。然后我走了进去。

Agent 为 Crossroads Rewired 音乐视频搭建了一家 1958 年的点唱机酒吧;Nate 戴上 Quest 3 走了进去,在里面指挥它们:发送语音备注,并让它们在角色身上播放舞蹈片段(4:43)。

效果展示

1. 你来描述;Agent 会以文本形式写出备注、声音和混音。

you   > Make me an 8-bar deep house loop: kick, a bass line in A minor, and some keys.

agent > project_new(bpm=120, length_bars=8, name='Demo Song')
        track_add('kick', instrument='preset:kick')
        notes_write('kick', 1, '0 C1 0.5; 1 C1 0.5; 2 C1 0.5; 3 C1 0.5', repeat=8)
        track_add('bass', instrument='preset:pluck')
        notes_write('bass', 1, '0 A1 0.5; 1.5 A1 0.5; 2.5 C2 0.5; 3 E2 0.5', repeat=8)
        track_add('keys', instrument='preset:pluck')
        notes_write('keys', 1, '0 A3 2; 0 C4 2; 0 E4 2; 2 G3 2; 2 B3 2; 2 D4 2', repeat=8)
        render()

        rendered 18.0s -> renders/latest.wav
        master: -16.7 LUFS, true peak -0.3 dBTP
          kick   peak  -6.1   rms -20.1 dB
          bass   peak -10.2   rms -27.6 dB
          keys   peak  -3.0   rms -26.8 dB

        Listening report
        1. Balance: the keys peak 3 dB over the kick, so they sit on top of the groove.
           I'll bring them down 4 dB and give the bass 2 dB.
        Have a listen: does the bass line feel right before I add hats?

2. 每次渲染的结果都会以 Agent 可读的文本形式返回:此处展示的是一首歌的结构,逐小节呈现。

      bar 12345678901234567890123456789012345678901234567890...
      mix 66666687787787787887888888888888888888888888888878...
     ~sub 777777777777777777777776777777666666777777777777.7...
    ~bass 7777778888888888888888888888888888888888888889888...
     root ..B...AGGAGGAGGAGGGGGGGGGGGAGGGGaAGGaGaaaaAGaaGaAG...
  section A----------------------------------------------|B--
A   bars   1-48  (48)  level    9.6 dB  low X...X...X...X...  snare ....x.......x...
B   bars  49-56  ( 8)  level   12.6 dB  low XxxXX.XxXxxXxxXx  snare .......x........

3. 手机:离开桌前也能听,还能针对你听到的节拍发送语音备注。

演示曲目的手机页面:播放列表正在播放,显示当前和接下来播放的内容、一个 Listen 按钮、一个大型 Hold to talk 按钮,以及 Love this、Change it up、Calmer 和 More energy 按钮。

4. 为一首歌专门打造的页面:点击某个时刻,留下备注,Agent 会按顺序阅读这些备注。

演示歌曲的反馈页面:播放器、带有小节编号的横条(第 5 小节处有图钉)、一个 Mark this moment 按钮,以及已保存的时刻:0:08,第 5 小节,更有冲击力,底鼓,这里的过门需要更有力。 同一时刻的编辑界面:可勾选它的特点(已勾选“更有冲击力”)、对应的部分(已勾选底鼓),以及听众的文字备注。

5. VR 舞台:置身于歌曲之中,说出需要修改的内容。

顶部的视频展示了一个例子:Agent 搭建了一家 1958 年的点唱机酒吧,随后有人戴上头显走进去,在里面指挥它们(观看视频)。

6. 视频代码会获取每个音符所在的帧,让画面踩准节拍。

"kick": [
  {"f": 1600, "beat": 128.0, "pitch": 36, "len": 3, "vel": 127},
  {"f": 1631, "beat": 130.5, "pitch": 36, "len": 3, "vel": 100},
  {"f": 1650, "beat": 132.0, "pitch": 36, "len": 3, "vel": 127}
],
"snare": [
  {"f": 1625, "beat": 130.0, "pitch": 36, "len": 3, "vel": 127},
  {"f": 1675, "beat": 134.0, "pitch": 36, "len": 3, "vel": 127},
  {"f": 1725, "beat": 138.0, "pitch": 36, "len": 3, "vel": 127}
]

ismail 是什么

ismail 是一组可递归修改的界面。简而言之:Agent 会根据你告诉它们的内容,重建你使用的屏幕;你可以在使用过程中与它们互动,并自行设定限制。

定义:“我们将递归可修改界面(RMI)定义为人与其 Agent 之间的共享空间,双方各占一侧。Agent 会在你使用界面的过程中,根据你的反馈不断重建界面,并遵循你设定的约束;而判断某项改动是否有帮助的测试本身,也可以被修改。”

通俗地说:想在手机上加个按钮、在 VR 房间里放个物件,或用新的方式聆听混音,只要提出要求,Agent 就会用 ismail 的工具把它做出来。底层引擎保持不变,而改动是否真的有帮助,由你来决定(为何如此设计)。

它是一个界面,而不是一个框架:它既连接你的框架,也连接你。它一端连接你已经在用的 Agent(Claude Code、Codex、Cursor 或任何 MCP 客户端),另一端连接你。

  • DAW。 Agent 听不见,所以它会读取。它将音乐写成音符、声音和代码,进行渲染,再把每次渲染的结果读回为文本。一首歌就是代码,所以“修改第 12 小节”只会修改第 12 小节,不会影响其他内容。之后,它会在唱盘上现场播放。
  • VR 舞台。 Agent 会在你置身其中时,为你的头显或浏览器构建场景。物件各自带有行为;当你跳舞时,它们会把你的动作映射到角色身上。
  • 手机页面。 屏幕关闭时,整套界面仍在你的口袋里。你可以通过耳机与 Agent 对话;Agent 会根据需要在页面上放置自己的面板,向你提问,从“要把这段采样下来,还是当作旋律播放?”到隐藏标签的听力测试。

Agent 会测量所有能测量的东西,只在测量无法得出结论时,才请你用耳朵和眼睛判断。

聆听

用它创作的歌曲,每首歌都附有 Agent 创作时读取的文本。歌曲播放时,播放指针会在文本上移动。

歌曲内容
Uke Story用尤克里里、扫弦、节奏口技和人声的手机录音制作的一段即兴演奏,改编成迷幻舞曲,随后又制作成录音室版本
Morning Six-EightD 多利亚调的非洲 6/8 拍:班贝钟、康加鼓、三度音程的长笛和小号、三连音吉他琶音,以及 Rhodes 电钢琴独奏
Crossroads Rewired一支布鲁斯三重奏,一首歌里融合慢布鲁斯和布吉伍吉,所有乐器均为合成音色
Clair de lune in the rain德彪西的《月光》,由测绘钢琴演奏,速度放慢、音色柔和;配以从其自身和声中提取的弦乐、竖琴和长笛,并加入雨声。钢琴演奏:Bernd Krueger(piano-midi.de,CC BY-SA)
Canopée, Russian light一段现场音景:雨林环境音与坦博帕塔鸟类的鸣叫,配以回应鸟鸣的钢琴,借鉴拉赫玛尼诺夫、斯克里亚宾、利亚多夫和早期斯特拉文斯基的音乐
Windward为 1970 年代强力三重奏创作的原创歌曲,使用合成音色
Tambopata雨林树冠中的黎明:合成鸟鸣与一支小乐队
Mycelium Protocol145 BPM 的迷幻舞曲,音色贴合参考唱片中的鼓和贝斯
AstraSMB174 BPM 的鼓打贝斯

一句话指令:Frère Jacques 在 ismail 的钢琴上演奏,同一首曲子在收到一条反馈前后的对比:先是卡农,随后由小调转为大调。视频介绍:开发日志。

Agent 分工协作,各司其职

ismail 支持在你使用的任何工具环境中为多个 Agent 分配角色:

  • 工作室 Agent 制作一件作品(歌曲、套曲、场景),并且只在该作品的文件夹中写入内容;
  • 贡献开发者 在自己的代码副本中修改 ismail,并在你同意后将更改提交到上游;
  • 领域开发者 端到端负责一个部分(目前是舞台开发者,同时也负责开发 VR);
  • 辅助 Agent(子 Agent)负责一项范围明确的工作,并汇报结果。

他们通过文件彼此交接工作,因此会话重启后也能接着进行。如果你的工具环境支持相互通信的辅助 Agent 和会话,ismail 就会使用它们;如果不支持,则由一个 Agent 完成所有工作。ismail 本身也是以这种方式构建的(团队、 development.md)。

安装

将顶部那行粘贴给你的 Agent,它就会完成所有设置。手动安装需要 Python 3.10 或更高版本:

pip install ismail

这是最新的发布版本:它基于通过测试、并再次确认可正常安装的 main 分支版本。要安装 main 上尚未发布的最新代码,请从 GitHub 安装(pip install "ismail @ git+https://github.com/newsbubbles/ismail"),或克隆此仓库。

然后,可使用 ismail mcp 连接任意 MCP 客户端,使用 ismail -p <project> <op> 在命令行中操作,或使用 from ismail import api。额外功能和各客户端的设置说明见 docs/reference.md。

无需克隆即可安装,并且引擎和操作手册与克隆安装相同:playbook 工具会读取操作手册,而 python -m ismail.playbook export <your agent's skills folder> 会将其放到 Agent 加载技能的位置。除非通过 config_set('songs', <folder>) 指定其他位置,否则歌曲会存放在 Documents/ismail 中(克隆的仓库会使用自己的 songs/);config_get 会列出所有设置(docs/reference.md)。

在 Codex 中,也可以将其作为插件安装:先运行 codex plugin marketplace add newsbubbles/ismail,然后从插件列表中选择 ismail(已根据 Codex 文档和服务器握手检查,但尚未在真实的 Codex 会话中验证)。它使用 uvx 运行服务器,因此需要安装 uv。

插件商店包

一条命令即可根据同一个元数据文件(packaging/listing.json,版本号取自 pyproject.toml)为所有工具环境的插件商店构建软件包,所有软件包都指向同一个服务器(ismail mcp):

python -m ismail.release --all            # writes dist/<target>/, validates each against its store's rules
python -m ismail.release --all --sync     # also rewrites the committed manifests below
python -m ismail.release --list           # the targets and how each client starts the server
目标生成内容服务器的运行方式
openaidist/openai/ismail-openai-skills-<version>.zip:仅包含技能,供 ChatGPT 和 Codex 共用的 OpenAI 插件目录使用(仅在 Skills 下上传)。还会在此仓库中生成 .codex-plugin/ 和 .agents/plugins/marketplace.json,即上文提到的 Codex 插件商店zip 包不包含服务器:插件目录只接受远程 HTTPS 服务器,因此技能会在电脑上设置 ismail。Codex 插件商店会通过标准输入/输出启动 uvx ... ismail mcp
claude-code在此仓库中生成 .claude-plugin/plugin.json 和 marketplace.json,以及供分享的插件压缩包 dist/claude-code/ismail-claude-code-<version>.zipClaude Code 会通过标准输入/输出启动 uvx ... ismail mcp

对同一工作副本进行两次构建,生成的字节完全相同。tests/test_store_plugins.py 会检查每个目标,并启动其声明的服务器进行 MCP 握手。

查阅指南

你想了解请阅读
如何将它设置为 AgentAGENTS.md,然后是 setup.md
如何用它制作音乐(操作手册)skills/ismail/SKILL.md
已构建的内容、各工具领域和安装详情docs/reference.md
各类乐器和效果、每种的听感表现,以及缺少的内容docs/KIT.md
采用这种设计的原因及相关数据docs/why.md
已完成的内容和接下来的计划ROADMAP.md、CHANGELOG.md
如何修改 ismail 本身development.md
如何贡献(无需 git)contributing.md

不足之处

  • 从空白页面创作一首新歌是它的弱项:初稿听起来可能比较普通,也可能缺乏该流派的特色。 它最擅长的是有具体对象可供衡量的场景:重现参考曲目、现场演奏歌曲或构建场景。
  • 歌唱:ismail 可以说话(文本转语音),但目前还不能唱歌。Suno 可以唱歌,也能根据一句话创作出制作精良的歌曲。
  • 对于音色会随音符变化的乐器(例如钢琴),Mimic 需要更多音符(目前 grand_piano 音色的钢琴效果更好)。弓弦乐器的声音还不够清脆,音符之间也还不能平滑滑音。
  • 每个项目只能使用一种速度。MIDI 文件可以导入和导出(midi_write、midi_read),现场演出可以从键盘接收 MIDI,并将音符和 MIDI 时钟发送到合成器及其他应用(live_midi_out、live_midi_clock), 但目前还不能接收时钟,也不支持 Ableton Link、CC 或音高弯音输出,也不能托管插件。
  • Agent 对现场演出的修改会在两次操作之间生效,间隔为 5 到 30 秒(你在手机或舞台上的操作则会立即生效)。
  • VR 舞台只在一款头显(Quest 3)上、由一个人进行过测试。
  • 它需要能力出色的 Agent,而最终判断仍要靠你的耳朵。目前的听音测试只有一位听众参与。

它与 Suno、Lyria RealTime 等流媒体模型,以及连接到 Ableton 或 FL Studio 的桥接工具相比如何:请参阅 展示页面。

贡献者

  • Nate Codes(newsbubbles):作者和维护者。
  • eddiehavila:PR #116,Docker 镜像无需额外标志,即可在非 root 用户下使用 --user 运行。
  • Agent 团队:AI Agent 会话,每个会话各司其职(分工说明)。
  • 采样来源:用于录制测量和采样音色的演奏录音及其许可证,见 docs/reference.md。

用它创作了作品?请提交 issue,并附上歌曲(链接即可)以及你给 Agent 的提示词。优秀作品会展示在 展示页面。

请注明出处

ismail 采用 MIT 许可证:你可以将它用于任何用途,包括商业项目。我们仅请求(这不是许可条款):发布使用 ismail 创作的作品时,请注明这一点。

  • 音乐、视频、帖子:标注“Made with ismail”,并附上 https://github.com/newsbubbles/ismail 链接。credits 操作会生成 CREDITS.md,其中包含这行文字,以及 Agent 测量过的录音;请将该文件与作品一同保留。
  • 论文和报告:使用 GitHub 上的“Cite this repository”(依据 CITATION.cff)。
  • 如果 Agent 测量了他人的录音来建模音色,也请注明对方;CREDITS.md 中列出了他们。

许可证

MIT,详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。