用途
Compose 是 ACE-Step-DAW 中一个面向整曲创作的工作流技能,核心理念是「像音乐人一样创作,而不是像模板引擎」。它通过 /compose <描述> 命令触发,例如 /compose a chill lo-fi beat inspired by Nujabes,引导 Claude 走完一套「研究优先」的作曲流程,而不是直接套用现成模板。
主要能力
该技能把作曲拆解为可执行的阶段:
-
解析用户意图:从描述中提取风格/流派(最重要的信号)、参考艺人或歌曲、情绪与能量、调性、BPM、特殊限制(如「不要鼓」「只要钢琴」「加弦乐」)以及时长(小节数或分钟数)。若描述含糊,会先向用户澄清,避免因错误假设浪费一整轮生成。
-
研究风格(强制步骤):使用 music-theory-engine 的第一阶段研究流程,检索目标风格的音乐理论分析、和弦进行、典型编曲结构、制作技巧与节奏型;若用户点名参考歌曲/艺人,则检索其和弦进行、调性、BPM 与音乐理论分析;同时查找该风格的 Strudel/TidalCycles 示例,并读取 DAW 内置预设(
src/constants/generationPresets.ts)获取风格 BPM/调性建议。 -
分析与提炼原则:从研究中提炼 2-4 条创作原则(默认 3 条),通常覆盖和声特征、节奏特征、织体特征三个维度。
-
撰写创作简报:在写任何代码前,先向用户呈现计划,包括风格、参考、调性、BPM、各条原则说明、曲式结构(如 Intro / Loop A / Loop B / Loop A / Outro 及各自小节数)和音轨清单,等待用户批准后再继续。
-
逐层作曲:遵循 strudel-maestro 的流程,按「鼓 → 贝斯 → 和弦 → 旋律」的顺序构建,每层都对照前述原则,使用最小必要的 Strudel 语法,输出为 Strudel 的
stack()结构。 -
对照原则自检:检查和弦是否符合和声特征、节奏是否符合风格、织体密度是否如预期、所有有音高部分是否调性一致、力度是否有变化、是否有足够留白、语法是否有效(升号用
s而非#,所有.s()是否指定)。 -
呈现与迭代:给出 Strudel 代码、音乐选择的简要说明以及可选的修改建议(如让贝斯更密集、加对位旋律、改成半拍感觉等)。迭代是常态,用户提出修改时只改动指定层,保持其余部分一致,并在改动后重新校验调性与和声一致性。
使用方式
通过 /compose <描述> 调用。技能会先研究、再出简报、等确认、后作曲。针对特定请求也有对应处理方式:
- 「做成像某艺人/歌曲那样」:视为最高价值输入,重点检索该歌曲的和弦进行分析与该艺人的制作风格分析,提取标志性特征并应用,但创作新作品而非翻唱。
- 「我不知道想要什么」:通过提问引导用户(情绪、流派偏好、快慢、乐器偏好),再据此启动研究流程。
- 「改调性 / BPM / 流派」:改调性则按音程移调所有音名;改 BPM 可能需要调整音符密度(更快则更简单);改流派则重新开始研究流程,因为流派决定一切。
- 「加某个乐器/声部」:先研究该乐器在流派中的典型作用,再在保持现有调性与节奏的前提下新增该层,不改动其他层。
适用场景
适合需要从零创作整首歌曲、且希望作品有明确风格依据与音乐理论支撑的场景,尤其是用户能提供参考艺人/歌曲或明确风格描述时。也适合用户对风格不确定、需要被引导澄清需求的场景。
限制
该技能有意不包含:预置风格模板(每次重新研究流派)、完整和弦进行数据库(每次检索合适的)、全部 Strudel API 文档(按需查阅)、音乐理论百科(只提炼所需的 3 条原则)。其设计取向是「过程比数据更有价值」,过程可适配任何流派、风格与参考,而模板只适用于其被写定的那一种情况。此外,技能本身不涉及收费、价格、平台或效果方面的信息,资料中暂未提供相关内容。