AI_MIDI v3.0.0 — 原生桌面编曲工作台(Go 重写)
🎹 AI_MIDI v3.0.0 — 从网页应用到原生桌面编曲工作台
v2.0.1(Python 版)证明了"一个 API Key 就能让 AI 辅助音乐创作"。v3.0.0 用 Go + Wails v2 从零重写,把这套理念推到了原生桌面级:新增 FL Studio 风格编曲窗、钢琴卷帘、输出机架、JUCE 原生音频引擎(ASIO 低延迟 + 离线导出 WAV),并补齐项目全局 BPM、快速任务、使用声明引导等一整套体验。AI 辅助创作的核心流程(多轮对话 / 快速任务 / 乐理知识库 / 工作区绑定 / 撤销恢复)全部保留并增强。
发布日期:2026-08-28 · 规模:53 个提交 · 约 3.1 万行代码(Go 15.6k + 前端 JS 15.2k)· 220 个跟踪文件
⚡ 一次看懂:v2.0.1 → v3.0.0
| v2.0.1(Python) | v3.0.0(Go 原生) | |
|---|---|---|
| 运行形态 | FastAPI 本地服务 + pywebview 窗口,需 Python 3.10+ 环境 | 单文件桌面应用,双击即用,无需任何运行时 |
| 启动速度 | 数秒(Python 解释器 + 依赖加载) | < 1 秒(原生窗口 + 透明启动图) |
| 音频输出 | 依赖浏览器 Web Audio | JUCE 原生引擎:ASIO / WASAPI / DirectSound 低延迟;无引擎自动降级 Web Audio |
| 编曲能力 | —(无) | FL Studio 风格编曲窗 + 钢琴卷帘 + 输出机架 |
| 安装 | PyInstaller 打包 / 源码运行 | Inno Setup 安装包(per-user 免管理员)+ Linux 压缩包 |
| 分发体积 | 数百 MB(带 Python 运行时) | 11 MB 安装包(含原生音频引擎) |
🆕 全新功能(v3.0.0 新增)
🎚 编曲窗(早期测试版)
- FL Studio Playlist 风格时间线:多轨道、Clip 拖拽/切分/吸附/循环区间/撤销重做,三域焦点仲裁的完整快捷键体系
- 钢琴卷帘:双击 MIDI Clip 直接编辑音符,力度/属性面板、拖拽克隆等 FL 惯例全集
- 输出机架:浮动机架更换音色、导入 SF2 音色库(IndexedDB 本地持久化)、通道条拖拽分配/替换音源、试听
- 素材库树:素材目录注册 + 树状浏览,拖拽入轨
- 编排数据自动保存;窗口内状态(BPM/缩放/循环)随工程持久化
🌡 项目全局 BPM
- 改一处处处生效:走带、节拍器、循环、采样调度、离线导出全部跟随
- AI 生成新 MIDI 自动跟随全局 BPM(用户当次明确指定的速度永远优先);已有 MIDI 文件保持自身速度不变
🔊 JUCE 原生音频引擎(Windows)
- ASIO 低延迟监听、WASAPI / DirectSound 支持、实时电平表、走带时间码跟随
- 离线渲染导出 WAV:按全局采样率渲染,尾音到静默不截断
- 引擎崩溃自动重启(Job Object 内核兜底 + 父进程看门狗,三重防孤儿)
- 无引擎环境自动降级 Web Audio,功能完整
🛡 稳定性与安全加固
- 会话并发安全:流式回复期间的轮询与状态读写全面加锁(竞态检测器验证)
- 本地 API 来源校验:仅接受本机/Wails 来源请求,阻断 DNS rebinding 与跨站驱动
- SMF 解析加固:畸形 MIDI 文件不再可能触发内存耗尽;路径穿越全链路防护
- ASIO 切换自愈:驱动打开卡死时 15 秒内提示「<设备名> 未响应」并自动回退上一个可用设备,应用永不假死
✨ 保留并增强(相对 v2.0.1)
- 多轮对话:MCP 工具调用全保留;流式输出重构为增量推送(长回复不再越到后面越卡)
- 快速任务:配和弦 / 翻译歌词 / 设计转音 / 自定义,整合进对话页弹窗
- 乐理知识库:20 份知识库原样迁移,AI 按需查阅
- 工作区绑定:留空点「绑定」直接弹系统目录选择器(桌面与浏览器模式均支持)
- 消息编辑 / 撤回 / 撤销:含 AI 文件变更的回滚(回收站机制)
- 多任务管理:任务面板、任务切换、后台续跑
- 思考过程可视化、草稿自动保存、暖纸/暗蓝双主题
- 首次启动使用声明、各入口引导提示
🚀 下载与安装
| 文件 | 说明 |
|---|---|
| AI_MIDI_Setup_3.0.0_windows_amd64.exe | 推荐 — Windows 10+ x64 安装包(含 JUCE 音频引擎),per-user 免管理员,中文向导,卸载保留用户数据 |
| AI_MIDI_v3.0.0_linux_amd64.tar.gz | Linux x64(浏览器音频合成;桌面模式需 webkit2gtk) |
| Source code (zip / tar.gz) | 源码构建:Go ≥ 1.27 + Wails v2,wails build |
📌 升级与兼容性说明
- 全新安装即可:v3 与 v2 的安装位置、数据目录互不影响;安装包沿用 v2 的应用标识,覆盖安装会原位升级
- settings.json 基本兼容:api_key / base_url / model 等字段可直接沿用;新增 audio 全局段(驱动/设备/采样率)
⚠️ v2 的 projects/ 工程数据与 v3 不通用(数据结构重设计):请把 v2 工程里的 MIDI 文件导出后,在 v3 中重新导入使用- 密钥仍然只存本机
settings.json,绝不入库、不上传
📖 文档
- README_zh.md — 功能总览与快速开始(中文)
- README.md — English overview
- docs/ — 架构决策、引擎 IPC 协议、编曲窗设计基准等开发者文档
AI_MIDI — All you need is one API. 🎵