threepointone/pizzo

GitHub: threepointone/pizzo

Pizzo 是一个基于 Cloudflare Workers 和 React 19 的 AI 辅助 Web 音乐工作站,通过自然语言驱动确定性的乐理与编曲操作。

Stars: 3 | Forks: 0

# Pizzo image **一个 AI 辅助的、基于 Web 的音乐工作室。** Pizzo 不是一个音频 _生成器_ — 它是一个 MIDI/编曲工作站,其中的 AI 是你的 **乐理大脑, 编曲者和乐队伙伴**。你可以用自然语言表达意图(“让它 更梦幻”,“给我一个 walking bassline”,“更亮的 filter,缓慢的 wobble”),然后 应用程序会使用真实、确定性的库为你执行正确的乐理操作。 你也可以手动完成所有操作。 它作为 [Think](https://www.npmjs.com/package/@cloudflare/think) agent 运行在 Cloudflare Workers 上,前端使用 React 19。 ## 核心亮点 - **对话驱动或手动操作。** 每一个操作既可以作为聊天命令使用 (agent 调用工具),也可以作为直接的 UI 控件使用。它们编辑的是同一个共享且 持久化的歌曲状态。 - **确定性乐理。** LLM 仅将意图转化为结构化的工具 调用;和弦、调性、声部进行和移调由 [`@tonaljs/tonal`](https://github.com/tonaljs/tonal) 计算,因此它快速、低成本且 在音乐上永远不会“出错”。 - **本地优先的 I/O。** Web MIDI 和麦克风输入保留在浏览器中。 - **三个界面**共享同一首歌曲: - **Chord Lab** — 和弦进行 + 一个“乐队”(Bass + 鼓)和一种声音。 - **Beats** — 一个 16 步的鼓机网格。 - **Modular** — 一个自由形式的、可连线(patchable)的合成器声部(ZOIA / Max 风格)。 ## 三个界面 ### Chord Lab 通过和弦垫(根音 × 和弦性质)或输入 `Am F C G` 来构建和弦进行。 Pizzo 会推测调性,显示罗马数字分析,并使用 General-MIDI 乐器(通过 [`smplr`](https://github.com/danigb/smplr) 采样, 从 `public/soundfonts/` 本地提供)**或者**通过你的 Modular patch 进行回放。 然后 **组建一个乐队**: - **Bass** 跟随和弦根音:根音 / 八度 / 根音+5度 / 弱拍 / walking(带有半音导音)。 - **鼓**(Drums)包含五种风格(four-on-floor, rock, funk, lo-fi, half-time),并通过 `busy` 控制幽灵音符的能量。 两者都是由合成器引擎实时渲染的确定性生成器,带有可视化结果的 音轨。 ### Beats 一个 5 声部 × 16 步的网格(kick / snare / clap / hi-hat / open hat),带有实时 播放头。自定义节拍会 **覆盖** Chord Lab 的风格律动,并驱动 每个界面上的鼓。“从