Humanizer
Azure-Samples/interview-coach-agent-framework
Remove signs of AI-generated writing from text. An agent skill from Azure-Samples/interview-coach-agent-framework.
Arrangement architecture (编曲结构学) - the shape of a track over time rather than its notes.
$ npx skills add jtydhr88/music-composition-skills --skill mc-arrangement-arch -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jtydhr88/music-composition-skills mc-arrangement-arch --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jtydhr88/music-composition-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/music-composition/skills/mc-arrangement-arch .claude/skills/mc-arrangement-arch && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "mc-arrangement-arch" agent skill from https://github.com/jtydhr88/music-composition-skills/tree/main/plugins/music-composition/skills/mc-arrangement-arch into .claude/skills/mc-arrangement-arch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mc-arrangement-arch", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jtydhr88/music-composition-skills/tree/main/plugins/music-composition/skills/mc-arrangement-archType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jtydhr88/music-composition-skills --skill mc-arrangement-arch -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jtydhr88/music-composition-skills mc-arrangement-arch --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jtydhr88/music-composition-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/music-composition/skills/mc-arrangement-arch .agents/skills/mc-arrangement-arch && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "mc-arrangement-arch" agent skill from https://github.com/jtydhr88/music-composition-skills/tree/main/plugins/music-composition/skills/mc-arrangement-arch into .agents/skills/mc-arrangement-arch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mc-arrangement-arch", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jtydhr88/music-composition-skills --skill mc-arrangement-arch -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jtydhr88/music-composition-skills mc-arrangement-arch --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jtydhr88/music-composition-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/music-composition/skills/mc-arrangement-arch .cursor/skills/mc-arrangement-arch && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "mc-arrangement-arch" agent skill from https://github.com/jtydhr88/music-composition-skills/tree/main/plugins/music-composition/skills/mc-arrangement-arch into .cursor/skills/mc-arrangement-arch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mc-arrangement-arch", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jtydhr88/music-composition-skills.git --path plugins/music-composition/skills/mc-arrangement-arch--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jtydhr88/music-composition-skills --skill mc-arrangement-arch -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jtydhr88/music-composition-skills mc-arrangement-arch --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jtydhr88/music-composition-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/music-composition/skills/mc-arrangement-arch .gemini/skills/mc-arrangement-arch && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "mc-arrangement-arch" agent skill from https://github.com/jtydhr88/music-composition-skills/tree/main/plugins/music-composition/skills/mc-arrangement-arch into .gemini/skills/mc-arrangement-arch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mc-arrangement-arch", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jtydhr88/music-composition-skills mc-arrangement-archInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jtydhr88/music-composition-skills --skill mc-arrangement-arch -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jtydhr88/music-composition-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/music-composition/skills/mc-arrangement-arch .github/skills/mc-arrangement-arch && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "mc-arrangement-arch" agent skill from https://github.com/jtydhr88/music-composition-skills/tree/main/plugins/music-composition/skills/mc-arrangement-arch into .github/skills/mc-arrangement-arch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mc-arrangement-arch", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jtydhr88/music-composition-skills --skill mc-arrangement-arch -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jtydhr88/music-composition-skills mc-arrangement-arch --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jtydhr88/music-composition-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/music-composition/skills/mc-arrangement-arch .opencode/skills/mc-arrangement-arch && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "mc-arrangement-arch" agent skill from https://github.com/jtydhr88/music-composition-skills/tree/main/plugins/music-composition/skills/mc-arrangement-arch into .opencode/skills/mc-arrangement-arch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mc-arrangement-arch", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
mc-arrangement-archArrangement architecture (编曲结构学) - the shape of a track over time rather than its notes.
Mc Arrangement Arch is an agent skill from jtydhr88/music-composition-skills. Arrangement architecture (编曲结构学) - the shape of a track over time rather than its notes. Energy curve and dramatic arc, subtractive arranging, layering as form (instrument entry/exit events), formal skeletons and section proportion, arrangement-hook placement, why the second verse must not be a copy, and how to end. Use when the user is arranging a song and asks how to structure it, when a track "goes nowhere" or "sounds flat", when every section sounds the same, when a generated track sounds like AI (monotonic…
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `reference.md`).
It sits in Writing & Content, covering Humanizing AI text. The repository describes itself as: Professional agent skills for composing and arranging popular music. The licence is MIT.
11 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7adca0c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Mc Arrangement Arch loads about 3.5k tokens when it runs. Until then it costs about 191 tokens; SKILL.md has 1,009 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jtydhr88/music-composition-skills at commit 7adca0c, republished under its MIT licence (© jtydhr88). 1,009 words, ~3,500 tokens.
.claude/skills/mc-arrangement-arch/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.这个 skill 管的是一首歌在时间上的形状,不管它的音符。
和声、旋律、配器决定"这一刻响的是什么";编曲结构决定"从第 0 秒到第 220 秒,听感怎么变化"。 一首歌可以每个和弦都对、每件乐器都好听,却依然平得让人听不下去——问题出在这一层。
这一层是「听不出是 AI」的主战场。 生成模型的默认值几乎全部集中在此:能量单调递增、编制从头到尾不变、 段落严丝合缝都是 8 的倍数、从不做减法、结尾千篇一律。 这些不是音色问题,换个更好的模型也不会消失——它们是结构决策的缺席。
| 你要干的事 | 读 |
|---|---|
| 从零规划一首歌的结构 | §1 动笔前必填 → §2 能量曲线 → §4 形式骨架 → §3 减法 |
| 歌"平"、没劲、听不下去 | §2 能量曲线、§3 减法 |
| 每段听起来都一样 | §5 编制即形式、§6 第二遍不许原样复制 |
| 生成出来像 AI | §9 诊断路径(按症状查) |
| 不知道乐器什么时候进、什么时候退 | §5 编制即形式 |
| 段落该多长 | §4 形式骨架 |
| 记不住这首歌 | §7 钩子布局 |
| 不会收尾 | §8 三种结尾 |
| 填 ARR-SPEC 的 arrangement 段 | §10 字段对应 + §11 写完后必过 |
| 不归这里 | 归哪 |
|---|---|
| 具体乐器怎么配、音域怎么排 | mc-orchestration |
| 频段怎么分、谁和谁抢频率 | mc-texture-layering |
| 鼓贝吉键怎么打得像真人 | mc-rhythm-section |
| 段落内部的和声走向 | mc-harmony |
| 曲式的历史形态(奏鸣曲式等) | mc-form |
| 人声怎么唱 | mc-vocal-direction |
| EQ、压缩、母带 | 出库 → 声音设计与混音库 |
本 skill 只管段落之间的关系与时间轴上的事件。
这四项不是形式主义。生成模型写出来的东西之所以一耳朵是 AI,不是因为它音色差, 而是因为没有人做过选择——而选择就发生在这四个问题上。
| 必填 | 问法 | 不合格的样子 |
|---|---|---|
| ① 能量目标 | 全曲最高点在哪一段?最低点在哪一段? | "副歌最高"——那最低点呢?没有最低点就没有最高点 |
| ② 减法事件 | 哪一处要撤掉东西?撤什么?为什么在那儿撤? | 一处都没有 → 见 §3,这是最强的 AI 信号之一 |
| ③ 编制进退场 | 哪件乐器中途才进?哪件提前退场? | 全部从头到尾在场 → 见 §5 |
| ④ 非人声记忆点 | 不靠人声,听众能记住什么? | 说不出来 → 见 §7 |
自检:这四个问题如果能在 30 秒内答完,说明你还没想;如果答不上来,说明还不能开始。
DeSantis 把叙事媒介的戏剧弧(dramatic arc,图形叫 Freytag's pyramid)直接搬到音乐上 (p0276):
| 弧段 | 在故事里 | 在音乐里 |
|---|---|---|
| Exposition 铺垫 | 引入角色与场景 | 引入全曲要用的音乐材料(旋律、和声进行、节奏动机)(p0277) |
| Rising action 上升 | 主角与对手的冲突 | 对铺垫材料的变奏或突变(variations or mutations)(p0277) |
| Climax 高潮 | 转折点 | 常由纹理密度的突然增加标记——EDM 里的 "the drop" (p0277) |
| Falling action 下降 | 解决未决冲突 | 常镜像 rising action 的活动 (p0277) |
| Dénouement 结局 | 角色回归常态 | 既定材料的重述(重复的 chorus)或逐渐消散 (p0278) |
尺度是可嵌套的:单个旋律可以是一条弧(上行到峰值再回落,旋律轮廓在视觉上就是 Freytag 金字塔); 一场一小时的 DJ set 也是一条弧 (p0278)。
★ 强规则。这是本 skill 里证据最硬的一条。
实测:62 首真实多轨编曲,62/62 全部有能量下降(95% 区间 94–100%)。 没有一首是单调递增的。
而单调递增恰恰是生成模型最顽固的默认值。
自检动作:把每段的能量写成 0–10 的数列。如果这个数列是非递减的,你写的不是一首歌,是一条斜坡。
失效条件:
"最高潮之前应该有一次能量回落(副歌前留白)"——这条流传很广,但我们的实测数据是矛盾的:
| 证据 | 结果 |
|---|---|
| 62 首全量实测 | 只有 22% 命中 |
| 7 首人工标注真值 | 5/7 = 71% 命中 |
差异来自段落边界检测的可靠性(全量那一版依赖自动检测,人工标注那一版是真值)。
所以本 skill 不把它写成规则。 它是一个值得试的手法,不是必须遵守的约束。 你可以用,但别因为"书上说要留白"就硬塞一个不需要的空拍。
全奏分五类(下册 p0361–0378):齐奏型、和弦动力型、复调型、主题型、多因素复合型(另有色彩性全奏)。各自的脾气:
| 类 | 脾气 |
|---|---|
| 齐奏型 | 跨广阔音域时响度很强,但缺和声支持,饱和度与充实感会不足(p0361) |
| 和弦动力型 | 结构单纯、音响"焦距"集中,排列得当时和弦音互相支持共鸣好,所有类型里最具威力(p0362) |
| 复调型 | 属异质织体,充满内在紧张与动力,多用于展开、过渡、推向高潮;纯复调型"受制于力量的分解",洪亮度上不去,要力度就得在它后面接一个主调性质的全奏才有高潮的满足(p0363–0364) |
| 主题型 | 见下面总规则的两个反例 |
| 多因素复合型 | 音域极宽、大量乐器在最具张力的高音区,紧张度与明亮度都高;和声只放铜管且集中在中音区,与低音线和最高旋律都留足空间,共鸣才不受影响(p0372) |
★ 总规则(p0365–0369):以展示乐队威力为目标的全奏,织体层次越分明、节奏越划一、和声结构越单纯,音响共鸣越佳,效果越强烈。 副歌堆满了反而不响,多半是三条都反着做了:层次糊在一起、各层节奏各走各的、和弦叠得复杂。
三条修法(p0368–0372):
音束式的复杂和声关系不但不能形成泛音互相支持,还会因泛音交叉干扰影响纯净度,洪亮度不如结构简单的和弦全奏(p0363)。 想要"大"就别同时要"复杂",两样只能选一样。
面对空白时间线的恐惧,和面对空白页是同一种 (p0281)。常规做法是从左到右逐渐填满, 像在空白画布上作画。DeSantis 主张反过来 (p0281):
第一步:快速填满
第二步:雕刻式删减
逆向变体:如果这个流派的特征是纹理密度随歌曲递增/递减, 可以从结尾往开头倒着做,越往回走移除越多 (p0284)。
失效条件:这套流程的前提是你手上已经有足够素材。 素材不够时"快速填满"会填出一堆重复,凿出来的也是重复。
「It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away.」(p0286) (完美不是在无物可加时达到,而是在无物可减时达到。)
反直觉的核心判断:音乐感觉"小"、"弱"、"缺乏力量"时, 解法往往是移除而不是添加 (p0286)。
原理:音乐空间像画布一样有边界。每添加一个部分,其他所有部分就要更费力地争夺听众注意力 (p0286)。 所以加得越多,每一件反而越弱。
★ 前提条件(DeSantis 明确写了):减法策略只在你现有的部分已经尽可能好的情况下才有效 (p0286)。 一堆平庸素材里删掉几个,剩下的还是平庸。
关于"这是不是极简主义"的澄清 (p0287):不是。
"变薄"(Thinning out)—— 整体移除之外的中间手段 (p0287):
实测:62 首中 70% 有明显减法(能量跨度 ≥30%)。倾向,不是铁律。
自检动作:指出你的减法事件在第几小节、撤掉了什么、为什么在那儿撤。三个都答得上才算数。
失效条件:那 30% 的反例主要是持续高密度的舞曲和噪音向作品。 如果你走的是那条路,说明理由,不要为了合规硬撤一段鼓。
问题:素材都有,排出来就是不满足,缺的是内部比例感 (p0290)。
DeSantis 的方法是把比例感从范例里量出来 (p0290–0292):
这个方法最值钱的地方是第 7 步:你拿走的是比例,不是内容。骨架不构成抄袭,也听不出来源。
DeSantis 自己的告诫:
「once you actually start employing this in practice, you may find that your own musical materials don't naturally fit into the arrangement skeleton perfectly.」(p0292)
如果你的 breakdown "想要"多 4 小节,绝对信任直觉 (p0292)。骨架用来起步,进入心流之后就自由挪动。
两家说法直接冲突,两边都对,必须合起来看:
| 出处 | 说法 |
|---|---|
| DeSantis (p0291) | 多数电子流派的形式划分发生在 4 或 8 小节的倍数处;听众已被"预设"(primed)期待在这些点出现划分 |
| 本库 20 条自查 #3 + 架构 §1.2 | 段落全是 8 的整数倍是生成模型最容易被听出来的默认值之一 |
调和:
实测参照:62 首真实编曲里,几乎都有非 8 倍数的段落—— 但这一项依赖自动段落检测,标
no_truth,数字不可信,只当旁证。
| 段落 | 长度 | 功能 | 要点 |
|---|---|---|---|
| Verse / A | 通常 16 或 32 小节 | 歌曲主体,有词时讲"故事" | 循环出现 |
| Chorus / B | 与 verse 相当 | verse 的对比;通常含钩子;音乐上的解决点(verse 制造紧张) | 循环的 verse 共享音乐但歌词不同;循环的 chorus 通常音乐和歌词都相同 |
| Bridge / C | — | verse 与 chorus 的对比 | 全曲通常只出现一次;常处于不同调性、用不寻常和弦进行、或纹理密度与能量截然不同;有些类型里用作器乐独奏 |
顺序惯例:第一个 chorus 出现在 verse 之后(也有歌以 chorus 开场);bridge 通常在至少一个 verse + 一个 chorus 之后 (p0294)。
§4.2 说"至少破一次 8 的倍数",这张表给出哪些位置本来就不是 8(藤谷 p0061–0062):
| 段落 | 惯例长度 |
|---|---|
| 前奏 | 4–8 小节;32 小节也可以,但没有足够说服力听到一半就腻 |
| 1A | 基本 8;也有 16,那时是 A–A'–B–副歌,后 8 与前 8 略有不同 |
| 1B | 1A 的一半,或与 1A 等长 |
| 1 副歌 | 8 或 16 |
| 间奏 | 大段落之后的间奏偏短,顶多 4 |
| 2A | ★ 1A 若 16,2A 取 8;1A 是 8 则不变 |
| 2B、2 副歌 | 与 1B、1 副歌等长 |
| D 旋律(大副歌)或间奏 | 8 左右,通常做得很饱满 |
| 末副歌 | 与前两遍等长,或两倍;两倍时前半安静、后半越接近副歌越热闹 |
三个天然的"破"点:1B 取 1A 的一半、间奏顶多 4、2A 砍半。用了其中一个,§4.2 的自查就过了,不必另造不规则段。
这是本 skill 最被低估的一节,也是实测证据最强的一节。
段落之间的分界,很多时候不是和声变了,而是编制变了——加进来一件乐器,或者撤掉一件。 乐器的进退场本身就是曲式。
实测(62 首真实多轨,逐乐器真分轨,不是估计):
规则 命中 区间 必须有乐器中途进场 59/59 94–100% 至少有一件乐器提前退场 59/59 94–100% 开场不该把乐器一次铺满(开场在场比例 ≤60%) 54/59 82–96% 三条都是强规则。59/59 意味着在这批语料里没有一首例外。
对照生成模型的默认值:编制从头到尾不变。这是架构文档里列的 AI 味第三大来源, 而实测告诉我们,真人编曲一首都不这么干。
每件乐器都要能回答三个问题:
| 占哪个频段 | 说不出来的话,它和别人抢频率你也不知道(细节归 mc-texture-layering) |
| 什么时候进 | 具体到段落 |
| 什么时候退 | ★ 说不出"什么时候退"的乐器,通常就是让编曲变平的那一件 |
自检动作:把 roster 按 entry 排序,从上往下读一遍—— 你应该能读出这首歌的编制是怎么一层层堆起来的。读不出层次,就是没有层次。
一个真实样本(Cambridge-MT 的一首 alt-rock,实测):
I1 Drums / Bass / ElecGtr1–6 / LeadVox ← 开场六把吉他
I3 +ElecGtr7,8 +BackingVox1
V1 +Organ1,2
C1 +HandClaps +Organ3 +BackingVox2 +VocalSFX1
V2 +Tambourine +BackingVox4,5
C2 +ElecGtr9 +BackingVox3 ← 到第二段副歌堆到九把吉他、五组和声注意它不是"该进的都在开场进完",而是几乎每个段落都有新东西进来。
和声有"和声节奏"(根音变换的次数与节奏性质),音色也有:因音色变化的频度形成的色彩韵律(杨立青下册 p0381)。 它和旋律、和声的节奏时分时合,通常比它们宽舒一些(p0381)。不同时代风格的差别, 很大程度就体现在音色变换频度、组合方式、对比方式这三点上(p0383)。
频度怎么定,取决于段落在全曲里的结构功能(p0397、p0400):
| 段落 | 音色节奏 |
|---|---|
| 主题呈示、总结归纳 | 舒展从容。书里的例子:一条 10 小节的旋律由 3 支长笛一气呵成,伴奏织体几乎不变 |
| 展开、连接、过渡 | 频繁、跳动大。例子:动机每分裂移位一次,音色配置就逐小节改,没有一个重复的组合 |
| 快速乐曲 | 慎变,换太勤会造成听觉甚至心理疲劳 |
| 慢速乐曲 | 适度提高变换频率,是减少单调感的有效手段 |
| 长篇 | 节约,为后面留余地 |
| 短篇 | 适当增加变化 |
也可以蓄意压低频度,把一大段按"色块"处理(《波莱罗》《大气》),那是表现意图不是疏忽(p0397)。
用法:写进退场事件表(§5.2)时,顺手数一数每段换了几次音色。呈示段和展开段的频度应该明显不同, 全曲一个频度就是 §2.2 说的"平"在色彩维度上的版本。
症状:第二段主歌和第一段一模一样,第二段副歌和第一段一模一样。 听众第二次听到时,注意力会掉下去。
DeSantis 给了三类变奏手法(Creating Variation 1/2/3): 克隆后突变、代际突变、音符变换。
最省力也最有效的做法不是改音符,是改编制——第二段主歌比第一段更空, 而不是更满。这和直觉相反:很多人第二遍会加东西,其实该减。
★ 这条有条件,两家并排:藤谷说的正相反,1A 若只有钢琴与主唱,2A 要加鼓组或贝斯、或者合音(p0059), 因为一段已经告一段落,编曲一样听众会觉得"又来了"。两边都对,差别在 1A 的起点密度: 1A 已经是全编制,2A 就减;1A 是极简开场,2A 就加。判据不是加减,是 2A 必须和 1A 不一样。 藤谷另给两个省力做法:乐团编制里只换 2A 的鼓组节奏型;2A 第一小节做一个 break,只剩人声,第二小节才进(p0059)。
见 §5.2 那个样本:A2(第二段主歌)在实测里是弦乐与半数吉他退出,比 A1 更薄。
自检动作:列出 A1 和 A2 的差异。如果一条都列不出来,回去改。
失效条件:有些形式(如 loop-based 的 house)第二遍原样重复就是风格的一部分; 但即便如此,通常也会在某一层上有变化(换一个 hat pattern、加一层 pad)。
必填项:arrangement_hook —— 不靠人声,听众能记住的东西。
可以是:一个 riff、一个标志性音色、一个反复出现的音响事件(一声采样、一个 riser)。
为什么必填:缺这一项是"听着还行但记不住"的主因。 人声 hook 靠词和旋律,但器乐段落、前奏、间奏、尾奏都没有人声——那些时间里靠什么留住人?
布局的三个决定:
| 首次出现 | 越早越好。听众的注意力在前 20 秒最集中 |
| 复现位置 | 至少 3 次,且不要均匀分布——均匀=机械 |
| 变形 | 最后一次出现时改一点(换音色、移八度、延长) |
自检动作:不看谱,你能把这个 hook 哼出来吗?哼不出来就不是 hook。
生成模型的默认值是"3:30 淡出"或者干脆戛然而止。DeSantis 给了三条路 (p0308–0309):
把开头的层层累加倒过来放。
仅底鼓 (8 bars) → +其他打击乐 (8) → +贝斯 (8) → +和声与旋律 (8)
→ −和声与旋律 (8) → −贝斯 (8) → −其他打击乐 (8) → 仅底鼓 (8)适用:以层层累加开场的曲子。对称本身就是结构。
找一个 loop 重复它,每遍加一层或减一层/变薄 (p0309)。两个方向给的是两种结尾:
| 方向 | 得到什么 |
|---|---|
| 每遍加一层 | 密度与张力一路堆上去,收在最满的地方 |
| 每遍减一层或变薄 | 让歌以微弱而不是强烈收场 |
和 ① 的区别:① 是对称的加减,先堆到顶再原路退回,对称本身就是结构。 ② 不要求对称,可以只加不减、只减不加,也可以加到一半就停。
怎么选 loop:选一个本身能无限循环而不显得断的段落。 这与 ③ 淡出的前提是同一条判断,锯齿状、不对称、粗糙的素材两种都不适合。
每遍改什么:不必每遍只动一层。变薄的手段不止整件移除, 减少某件乐器的音符数量、缩短持续音的衰减时间都算(见 §3 的减法一节)。
★ 它和作曲阶段的最大密度法是一对(见 mc-texture-layering reference §6.2):
最大密度法先纵向堆出一个最满的段落再往下减,得到的是若干密度不同的段落;
循环加减是在一个段落内部逐遍改密度。前者定段落表,后者定段落里怎么走。
自检:你的加减是每遍都动,还是隔一遍动一次?每遍都动会让人听出机械感, 隔一遍动一次留出的那一遍,正是听众确认这个 loop 的时间。
有前提,不是随便淡:
自检动作:你选的是哪一种?说不出来就是默认淡出,那就是 AI 的选法。
生成回来的东西不对,从这里入手。先看可测的,再听。
| 症状 | 最可能的原因 | 去哪节 | 可测吗 |
|---|---|---|---|
| 平、没劲、听不下去 | 能量曲线单调 | §2.2 | ✅ 分段 RMS |
| 越到后面越吵但不高潮 | 只有加没有减 | §3 | ✅ 分段 RMS |
| 每段听着都一样 | 编制从头到尾不变 | §5 | ✅ 分轨 onset 密度 |
| 第二段没意思 | 第二遍原样复制 | §6 | ✅ 段落相似度 |
| 听完记不住 | 没有 arrangement hook | §7 | ⚠ 半自动 |
| 结尾突兀或拖沓 | 没选结尾方式 | §8 | ✅ 末段能量斜率 |
| "说不上哪儿不对,就是像 AI" | 多半是上面几条同时中 | §9 全表 | — |
可测的那几项,仓库的度量工具能出数字(不随包发布), 不要靠反复听来找问题——耳朵留给最后一步。
本 skill 负责填 ARR-SPEC 的这些字段:
| 字段 | 本 skill 的哪一节 | lint |
|---|---|---|
arrangement.energy_curve | §2 | #5 必须有下降 |
arrangement.subtraction_events | §3 | #6 至少一个 |
arrangement.roster[].entry/exit | §5 | #7 必须有进有退 |
arrangement.hooks.arrangement_hook | §7 | #8 必填 |
form[].bars 的非对称设计 | §4.2 | #3 不许全是 8 的倍数 |
form[].events | §5.2 | — |
结尾处理写进 form 末段的 note | §8 | #14 时长自洽 |
不归本 skill 填的:spectrum_budget(→ mc-texture-layering)、
groove(→ mc-rhythm-section)、vocal(→ mc-vocal-direction)、
mix_intent(→ mc-mix-intent)。
过 mc-workflow §3.0 的 20 条之前,先自己过一遍:
最后一条最重要:本 skill 的每条规则都带失效条件, 不遵守是允许的,说不出理由才是不允许的。
本 skill 的规则分三档,文中已逐条标注:
| 档 | 含义 | 本 skill 里的 |
|---|---|---|
| 强规则 | 62 首真实编曲实测,命中率下界 ≥80% | 能量必须有下降、必须有乐器中途进场、至少一件提前退场、开场不该铺满 |
| 倾向 | 命中率 50–80% | 至少一处明显减法(70%) |
| 手法 | 教材主张,但实测不支持当规则 | 最高潮前的回落(§2.3) |
实测语料:Cambridge-MT 多轨 60 首(2,906 条独立乐器轨)+ 用户自己的作品。 完整数据见 仓库实验记录「规则佐证第一轮」。
这个"命中率"是本库和一般编曲教程的根本区别: 规则不是"某位老师这么说",而是"62 首真实编曲里有多少首这么做"。 命中率低的,本 skill 就不把它写成规则。
主要出处:Dennis DeSantis《Making Music: 74 Creative Strategies for Electronic Music Producers》(Ableton), 页码即该书页。其余见 reference.md。
© jtydhr88, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in plugins/music-composition/skills/mc-arrangement-arch of jtydhr88/music-composition-skills.
Open the folder on GitHubat commit 7adca0c
Mc Arrangement Arch next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Mc Arrangement Arch this skilljtydhr88/music-composition-skills | 154 | — | ~3.5k | Automated safety check: Pass | MIT | |
| HumanizerAzure-Samples/interview-coach-agent-framework | 173 | 38 repos | ~5.8k | Automated safety check: Pass | MIT | |
| Avoid AI Writingconorbronsdon/avoid-ai-writing | 4.9k | 3 repos | ~8.1k | Automated safety check: Pass | MIT | |
| User-Facing Text Cleanupguillaumemeyer/watermarks-remover | 24k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Install Anti Sloptrycompai/crm | 11k | 1 repos | ~881 | Automated safety check: Pass | MIT | |
| Stop SlopXe/site | 732 | 8 repos | ~423 | Automated safety check: Pass | MIT |
Azure-Samples/interview-coach-agent-framework
Remove signs of AI-generated writing from text. An agent skill from Azure-Samples/interview-coach-agent-framework.
conorbronsdon/avoid-ai-writing
Audit and rewrite content to remove AI writing patterns ("AI-isms").
guillaumemeyer/watermarks-remover
Audits prose for invisible Unicode characters and rewrites it while keeping facts, citations, code and required disclosures unchanged and the writer's voice intact.
trycompai/crm
Install and configure the anti-slop Oxlint plugin in a local TypeScript or JavaScript repository.
Xe/site
Remove AI writing patterns from prose. An agent skill from Xe/site.
op7418/Humanizer-zh
Edits Chinese articles, comments and documents to remove filler, repetition and template phrasing while keeping the facts, the level of certainty and the author's voice.
jtydhr88/music-composition-skills
The post-generation AI-tell audit (AI 味诊断). An agent skill from jtydhr88/music-composition-skills.
jtydhr88/music-composition-skills
The corpus layer (语料层) - how real recordings are made to testify for or against the textbook rules.
jtydhr88/music-composition-skills
Thematic development (乐思发展层) - what the theme is and what each section does with it.
jtydhr88/music-composition-skills
Song form and section design (曲式与段落) - the terminology, the standard templates, and how to build a setsu backwards from the chorus.
jtydhr88/music-composition-skills
Melody writing (旋律法) - what a melodic line expresses and how to make it singable.
jtydhr88/music-composition-skills
Chord progression lookup library (和弦进行速查库) - the eight famous named progressions with their variants and what each one actually does, a mood reverse-lookup, the eight variation techniques that turn…
Categories
Arrangement architecture (编曲结构学) - the shape of a track over time rather than its notes. Mc Arrangement Arch is an agent skill from jtydhr88/music-composition-skills. Arrangement architecture (编曲结构学) - the shape of a track over time rather than its notes.
Mc Arrangement Arch fits situations like: the user is arranging a song and asks how to structure it; A track goes nowhere; every section sounds the same; A generated track sounds like AI (monotonic energy.
Run `npx skills add jtydhr88/music-composition-skills --skill mc-arrangement-arch -a claude-code`. Or copy the skill folder (plugins/music-composition/skills/mc-arrangement-arch in jtydhr88/music-composition-skills) into .claude/skills/mc-arrangement-arch in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jtydhr88/music-composition-skills --skill mc-arrangement-arch -a codex`. Or copy the skill folder (plugins/music-composition/skills/mc-arrangement-arch in jtydhr88/music-composition-skills) into .agents/skills/mc-arrangement-arch in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jtydhr88/music-composition-skills --skill mc-arrangement-arch -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mc-arrangement-arch, .gemini/skills/mc-arrangement-arch, .github/skills/mc-arrangement-arch and .opencode/skills/mc-arrangement-arch in your project.
SKILL.md names no scripts, command-line tools or credentials: Mc Arrangement Arch is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Mc Arrangement Arch is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Mc Arrangement Arch: Humanizer (Azure-Samples/interview-coach-agent-framework, 173 stars), Avoid AI Writing (conorbronsdon/avoid-ai-writing, 4.9k stars), User-Facing Text Cleanup (guillaumemeyer/watermarks-remover, 24k stars) and Install Anti Slop (trycompai/crm, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jtydhr88 (a GitHub user) maintains it in jtydhr88/music-composition-skills, which has 154 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on September 22, 2026.
Source: jtydhr88/music-composition-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.