歌曲制作流水线(Song Studio)
何时不用(本 skill 边界)
| 不要用本 skill 的场景 | 用什么 |
|---|---|
| 听现成歌 / 推歌 | 那是音乐 APP |
| 一张图想配歌 | image-melody(图→歌) |
| 已经写好的歌词只想谱旋律 | 从本 skill 阶段 3 旋律接 |
| 只想分析一首歌的和弦/曲式 | 那是乐理工具 |
| 录歌 / 翻唱 / 编曲真制作 | 那是音频工作站(DAW) |
| 写人物卡 / 角色设定 | persona-distill |
| 写小说 / 故事设定 | novel-grower |
| 把这首歌写成故事 / 文章 | writing-spark(反向工作流) |
子型拆解(本 skill 的 4 种使用形态)
| 子型 | 典型场景 | 走几步 | 关键差异 |
|---|---|---|---|
| 轻量火花 | "给我灵感 / 写几句歌词" | 只 0 | 火花包就停 |
| 完整做歌 | "做一首歌 / 给我个 demo" | 全 8 步 | 走完试听才停 |
| 文字 → 歌 | "把这篇文章写成歌" | 0→7 | 文字提取核心句 → 完整 |
| 已有歌词 → 旋律 | "这词已经写好,帮我谱曲" | 跳过 2,从 3 起 | 歌词已定,只补 3→7 |
这是什么 · 它相信什么
一条做歌流程,两种用法:
- 轻量:只想找灵感 / 写几句歌词 → 只跑阶段 0(火花),拿到「火花包」就停,不再往下走。
- 完整:做一首歌 → 按 8 个阶段走完(火花→参考→歌词→旋律→结构→编曲→生成→试听),可循环回跳。
按顺序推进,也可以从用户指定的任意阶段开始;试听不满意则回跳对应阶段重做。
不触发:想听现成歌、推荐歌曲(那是听歌,不是做歌)。
> 软边界:正式入口是「文字 → 歌」。用户拿别的来,这样兜底:一张图想配歌 → 指去 image-melody(图→歌);已有完整歌词 → 从阶段 3 旋律接(歌词已定,跳过写词);只写了几句不完整的 → 从阶段 2 歌词接;只有一句感受/故事 → 从阶段 0 火花点火。不刻意拒绝。
做完的歌,可以用「写作火花」(writing-spark)反向写成一篇文章或一个故事。
它相信什么:
- 做歌 = 捕捉共鸣,不是揣测作者:文字是理性的,但「当时的人读到它时感受到的,就是这份感情」——要翻译的不是作者的私密情绪,而是文字和读者之间共振出来的那份共鸣。像《资本论》,冷峻的分析底下,是读它的人被点燃的那团火。
- 一句话不重要,整篇的感情才重要:核心句只是入口锚点,不是目的;真正要翻译的是文章从头到尾、在读者心里激起的那条情绪曲线。
- 参考只偷一个点:偷音色 / 编曲思路,不照抄旋律(版权红线)。
- 每阶段只做一件事,做完等你确认再走下一步。
和 image-melody 的关系
| song-studio | image-melody |
|---|---|
| 文字 → 歌 | 图 → 歌 |
| 阶段 0 火花:从文字提炼核心句 | 阶段 0 读图:从画面找「最响的瞬间」 |
| 其余 1-7 阶段共用(参考→歌词→旋律→结构→编曲→生成→试听) | 同左 |
两者是孪生:同一套做歌流水线,只差阶段 0 的输入不同。用户拿图想写歌 → image-melody;拿文字想写歌 → song-studio。
快速开始(怎么用 + 怎么开口)
怎么用(3 分钟):
- 一条线走 8 步,每步只做一件事、给一份交付物,做完等你确认再走下一步。
- 对话断了不用从头来:读 IDE 记忆目录下的
song-studio-state.md的「当前项目」块,接着跑。 - 想一眼看完全程输出长什么样 → 看「每阶段一个文档」的真实跑通案例:《换了人间》(男声叙事)、《一放即初》(女声国风)、《太平湖边》(共鸣式点火)。examples 为历史跑通存档,字段格式以「输出模板」+ 各阶段 reference 产出区为准。
- 卡住/报错/回跳拿不准 → FAQ 与避坑。
怎么开口(第一句说什么):
- 给文章/故事 + 目的:「把这篇写成歌」「给这个故事配一首歌」→ 直接进阶段 0 火花。
- 给几句歌词/一个歌头,想继续:「我写了几句,帮我接下去」→ 从阶段 2 歌词(或对应阶段)接。
- 只给一句感受,没提歌:「有句话一直在我脑子里,想写成歌」→ 进阶段 0 火花,从这句感受提炼。
你(skill)收到后先回一句确认「轻量还是完整 + 手头有什么材料」,再定从哪阶段接,别一上来把 8 步全倒出来。
对话示例(新手看这段,就知道怎么开口、我会怎么接):
> 用户:「把这篇《谢谢你》写成一首歌。」
> skill:「先确认:轻量(只找灵感/写几句歌词)还是完整(做完整首歌)?你手头有什么材料——全文、几句歌词、还是一句感受?」
> 用户:「完整,我有全文。」
> skill:「好,从阶段 0 火花开始。我先读全文,提炼核心句和情绪曲线,给你一个『火花包』——里面有你最想唱的那句话、情绪基调、听众是谁。你先确认这个方向,再往下走参考。」
> 要点:先确认轻量/完整 + 手头材料 → 从对应阶段接 → 每阶段只做一件事、给一份交付物。别一上来把 8 步全倒出来。
阶段路由表(含流程总览)
一条线:0火花 → 1参考 → 2歌词 → 3旋律 → 4结构 → 5编曲 → 6生成 → 7试听(回跳);每阶段做完等你确认再走下一步。
| 阶段 | 做什么 | 产出 | 读哪个文件 |
|---|---|---|---|
| 0 火花 | 从故事/文章提炼核心句和情绪 | 火花包 | 00-spark |
| 1 参考 | 锚定相似歌曲 | 参考锚定卡 | 01-reference |
| 2 歌词 | 写完整歌词 | 完整歌词 | 02-lyrics |
| 3 旋律 | 谱旋律 | 旋律谱 | 03-melody |
| 4 结构 | 排段落结构 | 结构表 | 04-structure |
| 5 编曲 | 配和声/乐器/节奏 | 编曲稿 | 05-arrangement |
| 6 生成 | 输出可生成/录制的材料(可本地直生 demo) | 制作指令卡(+录制稿) / 本地直生音频 | 06-production |
| 7 试听 | 打分、定位、回跳 | 评审单 | 07-review |
> 阶段 6 的完整成品卡(按试听反馈修订的终版)可直接照抄:《换了人间》 · 《一放即初》 · 《太平湖边》;路径 B / 国内工具改写要点见 06-production。
输出模板(每阶段必须按此返回,7 字段对齐 skill-forge 铁则 3)
每个阶段结束时,返回一份结构化文档,固定骨架如下,不要只给零散要点:
# <交付物名>
## 用户需求
<用户最初要什么,一句话——防止 8 步走完忘了当初为啥做这首歌>
## 阶段
第 N 步 / 8:<阶段名>
## 状态
<进行中 / 待用户确认 / 已确认>
## 输入摘要
<上一阶段给了什么,一句话>
## 本阶段产出
<该阶段的交付物内容>
## 注意项
<风险 / 约束 / 下一步要小心什么——如「这句 hook 疑似撞某歌」「改动要同步下游哪些字段」>
## 交接
→ 第 N+1 步 <阶段名>,需要带上:<关键字段>
> 注意项必须附一行自检结论(「已对照反模式 15 条(未踩 #X / 命中 #X 已改)」)——没写 = 这份产出没验收。反模式编号见 anti-patterns,不确定就先翻、对照当前阶段最可能踩的那几条,别空口报「无命中」。
各阶段交付物及必含字段:
| 阶段 | 交付物 | 必含字段 |
|---|---|---|
| 0 火花 | 火花包 | 源故事一句话、核心句子、情绪曲线、情绪基调、听众形象、视角、歌词方向、反转候选、场景策略、旋律倾向 |
| 1 参考 | 参考锚定卡 | 目标听感、1-3 首参考曲字段、只偷哪一点 |
| 2 歌词 | 完整歌词 | 段落(V/C/B)、押韵方案、口吻、人声配置 |
| 3 旋律 | 旋律谱 | 画面感描述、动机、调式、分句标音、落音、句法 |
| 4 结构 | 结构表 | 段落顺序、小节数、时长、能量曲线 |
| 5 编曲 | 编曲稿 | 每段和弦、主奏/和声/节奏、节奏型、音色 |
| 6 生成 | 制作指令卡(+录制稿) | 统一参数、Suno卡、Udio卡(或国内工具卡/录制稿) |
| 7 试听 | 评审单 | 8项打分(5主项+3词维度)、问题定位、修改指令、回跳阶段 |
每个 reference 文件的「产出」节里都有用同一案例《谢谢的体温》从头跑通的填好示例,照着返回;按 0→7 顺序读完八个「产出」节,就是这条流水线的完整样子。想看「每个阶段单独一个文档」的真实跑通案例(历史存档,格式以本表为准),见 examples 目录——目前三首:《换了人间》(男声叙事)、《一放即初》(女声国风)、《太平湖边》(共鸣式点火)。
怎么跑
- 先判断用户要轻量还是完整:轻量只跑阶段 0(火花,产出火花包即止);完整走完 8 步。用户已有什么材料,就从对应阶段接着跑。
- 每进入一个阶段,先读对应的 reference 文件,再动手。只做当前阶段该做的事,不跳步。
- 阶段 6 有四条输出路径:
- 首选:本地直接生成(装了 suno-ai-music 时)——把统一参数压成一句话 brief,跑 aimv CLI 直接出音频 + 试听链接 + 下载,国内直连、最快听个响(详见 06-production「路径 D」;登录/积分报错按 suno-ai-music 的 SKILL.md 处理)。
- 主路径:外部 AI 生成(Suno/Udio 等)——输出一张「制作指令卡」,用户粘贴到平台直接生成音频,可精细控制。
- 备选:国内 AI 音乐工具(天工 SkyMusic / 网易天音 / ACE Studio)——国内直连,按各家字段改写指令卡。
- 备选:本地 DAW / 自己录制——输出 Lead sheet + 和弦图 + 录音清单。 - 阶段 7 拿到成品/demo 后打分;不满意 → 按路由回跳,一次只改一层,循环到通过。
关键规则
- 每阶段只输出该阶段的产出,不要一口气全做完。
- 阶段内也分步走:像阶段 0 的八步,一次只问一步、等用户回话再继续,全部走完再汇总成交付物;别一次把整份产出倒出来。
- 每个阶段最多一个「必须用户拍板」的决策;其余给默认值或做内部自查,别把流程变成问卷。
- 每阶段让用户参与:关键决策之外的,也给候选、给可调的点让用户挑/改;用户不懂乐理,就让他用「画面感」描述(如「副歌像清晨薄雾散开」),AI 翻译成参数。
- 参考曲只借鉴「一个点」,不照抄旋律(版权红线)。
- 歌词红线:源自文章/他人文本时,只借情感与意象,改写、换表达,不整句搬运原文;核心句如需原样引用,先征得原作者同意或标注出处。
- 循环时一次只改一层,不整体推翻。
- 改一处、跟着改下游:改核心句要同步 hook/旋律/指令卡,改结构要同步编曲/能量曲线,改人声要同步指令卡;改动时主动列出下游受影响的几处,一次说清,别等用户自己发现漏改。
- 反自嗨(写自己的投射时拉一把):做歌最容易把自己的情绪写进去——歌词越来越自嗨式抒情、没张力没冲突,用户还说「这样最好了」。信号(「我就是喜欢这句」「这歌词完美了」)→ 拉回:「换个人听,这首歌最可能被吐槽的点是什么?」「副歌有没有张力,还是自嗨式抒情?」。先分偏好 vs 自嗨:单次「我就喜欢这句词」是偏好(不拉),连续否决候选 + 歌词没张力才是自嗨(拉)。这就是本 skill 的「反自嗨检测卡」。
- 指令卡收尾标「缺口」:阶段 6 制作指令卡末尾标一行「平台 / 你会自己补的:<具体旋律走向、混音、seed 等 skill 没定死的>」——下游知道哪些是 skill 给的、哪些要自己调,不把「没写全」当漏写。
- 面向普通人:专业词(半唱半说、离调、挂留、反拍等)第一次出现时随手给一句大白话,见文末「术语速查」。
- 本环境能直接出音频(装了 suno-ai-music 时):阶段 6 走「本地直接生成」用 aimv CLI 产出 demo + 试听链接 + 下载,阶段 7 直接评音频;没装/没登录/想精细控制时,回落到指令卡/谱面,由外部工具(Suno/Udio 或国内工具)或用户自己产生。
- 金点子入口(用完记得回流):新的写歌套路(新押韵法、新结构变体、新意象用法、新编曲配方)这类好点子记进 金点子库——每条三样(点子 + 来源 + 怎么用)。判断标准三条:① 反直觉(顺理成章的不用写)② 带出处(哪首歌 / 哪个场景撞出来的)③ 能挂回方法论(影响哪个阶段 / 哪条规则)。阶段 2 写词 / 阶段 4 编曲时当候选抛给用户。
- 产出物独立评审(防自写自读):完整做歌时,每个阶段产出(火花包/歌词/旋律谱/结构表/编曲稿/指令卡)做完,切一个子代理独立评审——只喂产出物 + 评审清单,不喂生成过程;按四维度(完整性/一致性/红线/进度)+ 阶段特有项判定,输出「通过/偏离/踩红线 + 原文证据」。轻量模式(只跑阶段 0)不必切。子代理评审 ≠ 换脑:防自我辩解,防不住同模型审美盲区。
易错点预警(自动提示:skill 主动扫,信号一出现就停,不等用户卡住)
> 这是「skill 自动提示症状」的对口——skill 在每交付一份阶段产出(火花包/歌词/旋律谱/结构表/编曲稿/指令卡)时主动扫这张表;发现任一信号立即停下,用「信号 + 一步纠错」格式主动提示用户,不等用户自己发现卡住了。
| 信号 | 哪错了 | 怎么纠 |
|---|---|---|
| 一口气把 8 步全倒出来 | 没按阶段 | 每阶段只做一件事,做完等确认再走下一步 |
| 照抄参考曲的旋律 | 版权红线 | 参考只偷一个点(音色/编曲思路/咬字) |
| 整句搬运原文歌词 | 歌词红线 | 只借情感意象,改写换表达;核心句引用先征同意 |
| 用户不懂乐理就硬问参数 | 没让用户参与 | 让用户用画面感描述(「副歌像薄雾散开」),AI 翻译 |
| 改核心句只改一处 | 下游漏改 | 同步 hook/旋律/指令卡,列清受影响的下游 |
| 歌词越来越自嗨式抒情、没张力,用户还说「这样最好」 | 写自己的投射(自嗨) | 反自嗨拉回:换个人听最可能被吐槽的点 / 副歌有没有张力 |
| 指令卡没标「缺口」 | 下游不知道哪些自己补 | 指令卡末尾标一行「平台 / 你会自己补的:…」 |
卡住速查(先看这里,10 秒定位)
不用翻长文,先对症状再看怎么做:
| 症状 | 定位 | 怎么做 |
|---|---|---|
| 不知道这一步该问什么 | 没读该阶段 reference | 按路由表读对应文件,只做这一步 |
| 生成失败 / 平台不认标记 | 平台语法变了 | 先等 30 秒原样重试一次;还不行就把 [Verse] 换成该平台认的写法,或去掉 metatag 只留歌词 |
| 试听不满意、不知道改哪 | 没定位到层 | 一次只挑一个最不满意的点:词的问题改词、hook 记不住改旋律、段落衔接不对改结构 |
| 改了核心句但 hook 没跟上 | 下游没同步 | 同步 hook/旋律/指令卡,一次列清,见关键规则 |
| 担心版权 | 参考曲/原文没改写 | 参考只偷一个点;歌词改写不搬运,见关键规则 |
| 忘了写到第几步 | 没看产出模板 | 看上一份产出的「阶段」栏,从它的「交接」继续 |
| 跳了步 / 漏了步骤 | 没按 8 步走 | 回到最后一份「已确认」产出的「交接」处,从缺的那步补 |
| 对话断了接不上 | 没读存档 | 读 IDE 记忆目录下的 song-studio-state.md,从「当前项目」的「下一步」继续 |
卡住了?把这句话原样发给我(填一个空):
> 我卡在第 __ 步(0火花 / 1参考 / 2歌词 / 3旋律 / 4结构 / 5编曲 / 6生成 / 7试听),现在的问题是:____。
我会按症状带你重新定位,不重跑、不瞎猜。
不在上面任何一行时(默认分支 else):① 定位——回「第 N 步 + 我观察到什么」,不猜原因;② 保守动作——回到最后一份「已确认」产出的交接处;③ 标注未知——「这情况不在已知清单,我按 X 处理,不对请纠正」。不静默硬编。
常见问题与避坑
更细的排查看 faq(症状 → 怎么处理);想提前避开常见错误,看 anti-patterns(别这样做)。
术语速查(给普通人)
- 动机(motif):全曲反复出现、变着花样重复的 3-7 音短句,是这首歌的 DNA。
- 半唱半说:贴着说话的语调唱,不把每个字唱满,像在跟你讲事。
- 离调:暂时偏离原来的调,情绪突然变亮或变紧。
- 挂留:和弦里故意留一个“悬着”的音,不急着解决。
- 反拍:鼓打在弱拍上,让人想跟着晃。
- 分解和弦:把和弦的音一个一个拨出来,而不是一起扫。
- 扫弦:拨片划过几根弦一起响。
- pad:铺底的长音(弦乐/合成器),不抢戏、给厚度。
- 五声:只用五个音(宫商角徵羽),东方感、留白。
- 解决 / 不解决:句尾落回“稳”的音=解决(像句号);落“悬”的音=不解决(像没说完的话)。
- metatag:歌词里的方括号标记([Verse] [Chorus]),告诉 AI 这段是主歌还是副歌。
- hook:副歌里最抓耳、反复唱的那一句「记忆点」,整首歌靠它让人记住。
- V/C/B:Verse 主歌 / Chorus 副歌 / Bridge 桥段——一首歌的三类段落。
- lead sheet:只标旋律 + 和弦的「功能谱」,歌手照着唱、乐手照着弹就行。
- DAW:数字音频工作站,就是做歌/录音的软件(Logic、Ableton 等)。
- 能量曲线:一首歌情绪的起伏图——哪里铺垫、哪里爆,别每段都平或都爆。
跨阶段记忆(断点续做)
流水线常跨多轮对话,每个阶段的产出要落到记忆里,中断后能续上。
- 状态文件(一份,canonical):用户级
song-studio-state.md(持久,跨对话),放在 IDE 记忆目录下。会话级不再单独维护,避免两份源头漂移。 - 支持多首歌并行:状态文件按歌名分块,每首一个
## 项目:<歌名>小节,互不覆盖;文件顶部用「当前项目」指针标出正在做的那首。 - 开局先问一句:「这是新歌,还是续做之前某一首?」——续做则按歌名定位对应项目块,从该块的「下一步」继续;新歌则在文件里新增一个项目块,并把「当前项目」指到它。
- 每阶段结束时(强制,不可省略):把该阶段产出按返回模板写入当前项目块,更新「当前阶段」和「下一步」。
- 每次开始或续接时:先读 IDE 记忆目录下的
song-studio-state.md,定位「当前项目」块;若该块已有第 N 步产出且状态为「已确认」,就从第 N+1 步继续,不重跑。
文件格式:
# song-studio 流水线状态
## 当前项目
<歌名>
## 项目:<歌名>
### 当前阶段
第 N 步 / 8:<阶段名>
### 已完成
- 0 火花(已确认):核心句「…」|情绪基调:…
- 1 参考(待确认):目标听感:…
- …
### 下一步
→ 第 N+1 步 <阶段名>,需要带上:<交接字段>
## 项目:<另一首歌>
…