AI 驱动的互动 Live Coding 音乐演出系统
GeekPie × Pi Day 2026 · ShanghaiTech University
Vibe Cod'in Pie 是一个让观众通过自然语言直接干预音乐进行的实时电子乐系统。观众只需扫码提出需求(如“让节奏快一点”、“加一点赛博朋克感的贝斯”),AI 就会在几秒钟内将需求转化为 Strudel 代码,并实时注入大屏运行引擎。
- 🤖 DeepSeek 驱动:使用 DeepSeek-V3/Chat 模型,针对 Strudel (TidalCycles JS) 语法深度优化 Prompt 工程。
- 🔄 强一致性同步 (Pull Sync):服务器采用“按需拉取”模型。在每次 AI 生成前,实时向浏览器索要最新的代码状态,彻底杜绝“AI 基于旧代码修改”的问题。
- 📱 Material 3 移动端:基于 Google Material Design v3 标准设计的观众端界面,支持动态状态通知(排队中、处理中、已应用)。
- 🛡️ 生产级稳定性:
- AST 验证:生成的代码经过 Acorn 解析校验,确保语法合法且不包含非法系统调用。
- 自动重试:AI 生成失败时自动原地重试。
- 内容审核:内置关键词过滤,预防不当内容提交。
- 🎹 预设切换:支持即时切换多种音乐风格(Ambient, Techno, Glitch-Hop 等)。
观众手机 (Mobile) ──WebSocket──→ Node.js 后端 ──WebSocket──→ 大屏浏览器 (Screen)
(Material 3 UI) │ (Sync & AI Pipeline) (Strudel Engine)
├─> 1. 加入任务队列
├─> 2. 向 Screen 拉取当前代码
├─> 3. 调用 DeepSeek API
├─> 4. AST 语法校验
└─> 5. 推送新代码并执行
npm install创建 .env 文件并配置你的 DeepSeek API Key:
PORT=3000
HOST=0.0.0.0
DEEPSEEK_API_KEY=your_sk_key_here
AI_MODEL=deepseek-chat# 开发环境(带热更新)
npm run dev
# 生产环境
npm start- 大屏显示端:
http://[IP]:3000/(展示代码、频谱及 QR 码) - 观众互动端:
http://[IP]:3000/submit(扫码即跳转 — 服务器将观众端静态资源挂载在/submit路径)
- 同一局域网:确保后端服务器、大屏浏览器和观众手机在同一子网下。
- 推荐拓扑:服务器连接有线网以保证 DeepSeek API 访问速度;手机端通过高性能 WiFi 热点连接。
- 打开大屏页面后需要点击一次页面(或点击 "PLAY" 按钮)以激活浏览器的 Web Audio 上下文。
server/: 核心逻辑index.js: WebSocket 管理、代码同步协议、任务调度。ai.js: DeepSeek API 接口及重试逻辑。prompts.js: 针对音乐生成的系统提示词。validator.js: 基于 AST 的 Strudel 安全验证器。queue.js: 异步高效任务队列。
client/: 前端资源screen.html: 大屏视觉中心(Strudel 引擎 + 频谱可视化)。mobile/index.html: Material 3 规范 a 观众端。
MIT License. Designed with ❤️ for GeekPie.