Communitygithub.com

音乐生成器

为场景、视频、游戏和定制片段生成程序化音乐。当被要求配乐、背景音乐、音效、循环、旁白下的音乐、主题、乐器克隆、混音/母带处理,或音乐听起来机械、平淡、情绪不符时使用。通过研究、方向表、定制预设、声明式乐谱创建项目,并通过有质量门的 pipeline.py 渲染,直到通过。

音乐生成器 是什么?

该技能是一个基于严格、可衡量流水线的程序化音乐生成系统。它专为AI代理设计,让代理做出所有创意决策,而脚本负责执行,避免了主观猜测。它支持为视频、游戏、广告、播客等生成原创配乐,从情绪描述创建音轨,克隆乐器,混音和母带处理,甚至为视频进行配乐。平台支持包括任何可以运行Python脚本的环境(如Claude Code、Cursor、Codex等),只要配置好虚拟环境。工作流程从创建项目、进行研究、填写方向表、创建预设、编写声明式乐谱开始,然后通过pipeline.py渲染,并通过一系列质量门(如响度、动态范围、音调平衡等)进行验证。如果门测试失败,代理会一次只修改一个参数重新渲染,最多尝试5次。交付时自动管理版本,保留所有证书通过的渲染,并生成元数据。整个系统模块化、研究驱动,强调数据而非代码,确保输出的可重复性和可验证性。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/rashee1997/music-generator/tree/HEAD

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

音乐生成器 是做什么的?

一个程序化音乐生成系统,通过严格、可衡量的流水线创作原创音乐。所有决策由代理做出;脚本负责执行。该流水线使用客观测量和质量门,而非主观猜测。

使用时机

在以下情况使用此技能:

  • 为视频、游戏、广告、播客或旁白创作原创音乐
  • 根据情绪描述生成配乐(例如,“紧张的电影铺垫”、“平静的lo-fi”)
  • 从录音中克隆乐器
  • 混音或母带处理现有分轨
  • 为带有剪辑/对话的视频配乐
  • 修复机械、平淡或不平衡的音乐
  • 处理特定文化风格(卡纳提克、阿拉伯、非洲、东亚等)

快速开始

从技能目录使用其虚拟环境运行:

  • Windows:.venv/Scripts/python.exe
  • Unix:.venv/bin/python

首次设置:参见 references/setup.md。

工作流程

按顺序执行以下步骤。切勿跳过步骤。

步骤操作输出检查
1创建项目python scripts/setup_project.py --new-project <dir> --title "<Title>"(仅在要求时添加 --ambience)包含 direction/、presets/、scores/、out/、reports/、STATUS.md 的项目结构
2研究python scripts/research_kb.py <dir> --topic "<topic>" --tags <tags>。通过 TinyFish 添加网络来源。对于氛围/音效,使用 --sounds 并记录带有许可证/测量的真实参考。reports/research_<topic>.md,包含 KB 引用和来源
3方向表将 templates/direction_sheet.json 复制到 <dir>/direction/direction_<title>.json。根据 references/music-direction.md 填写所有字段。对于视频,先运行 scripts/video_score.py。包含工作、感觉、段落、动机、重音、混音意图、空间布局的完整方向表
4创建预设python scripts/presets.py scaffold instruments/vocals/environments/sfx <name> --project <dir>。每个预设需要独特的空间位置。项目中的预设,包含特征、空间方位角/距离
5编写乐谱创建 <dir>/scores/<title>_score.json(声明式,引用预设)。使用 templates/custom_score_template.py 进行精确控制。有效的JSON,包含引用预设的音轨
6渲染与门控python scripts/pipeline.py <dir>/scores/<title>_score.json --project <dir>out/master.wav(最新版本的副本)、out/master_vNN.wav、out/versions.json、<master>.json 标签、stems/、midi/、reports/ci_report.json(0 FAIL)
7修订一次只更改一个杠杆(references/music-direction.md §6)。重新运行步骤6直到通过(最多尝试5次)。所有门测试通过
8听取与交付python scripts/listen.py out/master.wav --direction direction/<sheet>.json验证并报告结果

交付元数据与版本

认证在音乐门通过后自动写入三样内容:

  • out/master_vNN.wav — 每个认证渲染都获得自己的版本文件。早期版本会保留;重新渲染从不会覆盖。
  • out/master.wav — 最新版本的副本,供期望单一主文件的工具使用。
  • out/versions.json — 每个版本附带其时间戳、测量结果以及使其通过的更改(它清除的门失败,或“首次认证渲染”)。
  • out/master.json — 写在主文件旁边的标准标签。

标签来源:默认值来自 presets/metatdats/metadata.json(艺术家、专辑、版权、许可证、出版商、ISRC、语言),然后是根据乐谱派生的值(标题、来自 piece_type 的类型、年份、事实性的 key · BPM · piece_type 注释),然后项目的 metadata.json 覆盖。将真实值写入 <project>/metadata.json,而不是脚本中。

代理规则:

  • 切勿删除或覆盖 master_vNN.wav 或 versions.json 记录。如果交付需要干净版本,它将成为新版本。
  • 渲染后检查记录:python scripts/helpers/version_manager.py list --project <dir>。
  • MP3 压缩是手动的,绝不属于流水线:python scripts/helpers/compress_mp3.py out/master_vNN.wav -o <file>.mp3 -b 320k。它将侧车标签带入 MP3。
  • 门行 meta.tags 和 meta.version 仅跟踪此记录。它们会警告,但不会失败,并且在作品首次渲染时为 INFO。

关键原则

  • 模块化:声音/空间在 presets/ 中,音符在 scores/ 中,意图在 direction/ 中。没有单一脚本。
  • 研究驱动:每个自定义乐器/人声/文化都需要知识库研究引用。
  • 数据优先于代码:新声音使用场景数据("scene"/"scene_layers"),而非 Python 生成器。
  • 一次只改一项:修复门失败时,恰好更改一个参数并重新测量。
  • 衡量,而非猜测:使用流水线指标和诊断。品味无法衡量。
  • 每个作品都有一个混音预设:控制增益分级、动态、侧链、母带处理。

按任务分类的路线

任务关键参考
视频配乐/剪辑references/video-scoring.md、scripts/video_score.py
人声/合唱/哼唱references/vocals-and-choirs.md、references/vocal-engine.md
文化风格/融合knowledgebase/README.md、references/cultural-soul.md、references/genre-fusion.md
音效/氛围/拟音references/sound-effects.md、references/physical-scene.md、references/environments-as-presets.md
SFZ 管弦乐references/sfz-libraries.md、scripts/sfz_libs.py
乐器克隆/提取references/instrument-cloning.md、references/extraction.md
混音/母带处理references/mixing-and-mastering.md、scripts/mixer.py、scripts/mix_diagnostics.py
门失败references/quality-gate.md、scripts/gate_profiles.py

输出模板

完成:out/master.wav (Xs, -X.X LUFS, -X.X dBTP), midi/<title>_score.mid, stems/ (N), reports/ci_report.json。
内容:<感觉、调性、BPM、乐器、预设>。
门:<N 通过,0 失败,经过 K 次尝试>;听取:<读数>。
未检查:品味、真实乐器真实感、在最终视频中的匹配度。
下一步:<一个建议的更改>。

注意事项与限制

  • 默认使用 GM SoundFont;SFZ 库可选。标准合成中不会唱出词语(合唱/哼唱是纹理)。
  • listen.py 需要 earshot 模型(运行 python scripts/setup_project.py --ears 安装)。
  • 仅对具有 spatial.binaural: true 的预设进行耳机空间化。
  • 混音诊断会报告,但不会阻止门测试(阻止的门测试在质量门中)。
  • 参见 AGENTS.md 了解完整规则,references/troubleshooting-and-limits.md 了解全部限制。

相关技能