Communitygithub.com

Scorewright

撰写并生成为视频量身定制的原创配乐:观看并标记视频,选择音乐身份(风格、调式、BPM、乐器、动机),编写 score.json,渲染真实乐器(FluidSynth + GeneralUser GS 采样、音码合成、音效设计),在解说下混合(闪避 + 语音凹陷,语音下方 X LU 背景音),并交付分轨、MIDI、预览及质量审查。

Scorewright 是什么?

Scorewright 是一个 AI 驱动的配乐创作工具,旨在为视频生成原创、情感贴合的音乐。其核心工作流程始于对视频内容的深度分析:AI 首先使用 Python 脚本提取视频时长、剪辑点及语音区域等事实数据,然后通过“观看”接触表(contact.jpg)和台词来理解叙事弧线。在此基础上,AI 自主做出所有创造性决策——从选择调式、BPM 到设计主导动机,并将这些决策写入结构化的 score.json 文件。该工具支持 FluidSynth(GM 音色)和音频即代码(AAC)两种渲染引擎,分别用于逼真的声学乐器与合成音色。Scorewright 强调克制:它区分“背景垫乐”(Bed,适用于解说密集的无旋律配乐)与“完整配乐”(Score,适用于有静默间隙的电影式片段),并严格避免在语音下方使用旋律线。最终输出包括混音后的音轨(自动执行语音闪避并遵循目标响度)、分轨、MIDI 文件、预览及质量检查报告,形成一个完整的、可迭代的创作工作流。它主要作为 Claude Code 或类似编程化 AI 工具的技能运行,依赖 Python 环境及 FluidSynth。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jayaprakash-pixel/scorewright/tree/HEAD

在你喜欢的 AI 中提问

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

文档

Scorewright - Claude 创作,工具渲染

第零规则: Claude 在 score.json 中做出每一个创意决定,并写明理由(direction 和提示的 why)。脚本没有默认风格、BPM、调性或和弦进行。切勿将上次的配乐作为模板重复使用;始终从视频本身出发。

PY = 一个安装了 requirements.txt 的 Python 3.10+ 环境。SW = <此文件夹>/scripts/scorewright.py。 在机器上首次渲染前,运行 PY SW doctor。如果显示 MISSING,请按照 README.md > 安装 操作,然后停止并告知用户。

操作手册(快速入门)

#步骤命令 / 操作完成标志
0检查PY SW doctor打印 ready
1事实PY SW analyze <video> <work> --words <words.json>(或 --voice)facts.json(时长、剪辑点、语音区域、时间戳文字)+ contact.jpg
2观看阅读 contact.jpg(瓦片 i = t i*步长)和时间戳文字;阅读脚本/故事板(如有)你能陈述信息、观众感受和情感弧线
3标记编写标记表:提示出入点、关键击点(文字时间点、揭示点、转折点)、哪里更适合静默、每个段落的情绪(主情绪+次情绪+强度)每个提示的开始/关键击点都是测量过的时间点
4方向选择音乐身份并说明理由:风格混合、调式、每个提示的 BPM、音色面板、主导动机(及其如何变化)、动态弧线。参考 references/craft.md写入 direction
5乐谱编写 score.json(参考 references/score-format.md 和示例 examples/bed_demo.json)。让每个提示在其关键击点开始;使用 s:<秒> 将音符放置在特定文字上;仅使用 PY SW fit <times> 测试单提示内的一个速度有效的 JSON
6渲染PY SW render score.json <out>分轨、完整混音、无打击乐版、composition.mid、预览、SCORE_NOTES.md、qc.json、spectrogram.png
7质量审查阅读 qc.json + spectrogram.png;修复问题并重新渲染(每个新版本使用新的输出文件夹)所有 checks 为 true;每个关键击点的 rise_db >= 3;无意外静默
8试听用户试听 preview_with_voice.mp3。Claude 无法聆听:告知用户这一限制,报告数字指标,询问需要修改的地方用户批准
9交付将 full_soundtrack.wav(已在原始语音下方 X LU,可直接以 0 dB 导入)或分轨文件交给用户的剪辑软件-

首要决策:垫乐还是配乐

  • 解说/叙事视频(语音几乎连续)= 垫乐。 语音下方无旋律、无主导动机、无曲调。仅使用脉冲、纹理、缓慢的和声、次低音。能量在段落边界处变化;在真正的揭示点使用 2-3 次击点/淡出;身份来自音色/节奏而非曲调。仅在没有语音的地方(第一个词之前的开场,最后一个词之后的最后 1-2 秒)使用简短的旋律。
  • 具有真实无语音段的影片/纪录片 = 配乐。 主导动机和旋律存在于那些空隙中。
  • 在解说下放置旋律等于引入第二个声音:观众必须做出选择,而解说将失去焦点。

应该做的

  • 静默、克制和对比是工具。并非每个视频都需要处处有音乐。
  • 每个核心概念使用一个主导动机;在故事转折点对其进行发展(转位、增时、重新和声、改变一个音符)。
  • 在密集解说下降低音乐密度;让音乐在语音间隙和纯视觉时刻发声。
  • 每个音轨的引擎选择:gm 用于声学现实感(钢琴、弦乐、铜管、木管、合唱、打击乐器),aac 用于合成音色/音效设计的声音(速度慢:约 gm 的 10 倍;仅在少数稀疏的音轨上使用;可选),sfx 用于关键击点上的冲击/推高/次低音下沉。
  • 垫乐在语音区域测量的 bed_lu_under_voice 值为 11(充满活力)到 12.6(平静),脚本会精确设置。
  • 新版本 = 新的输出文件夹;切勿覆盖已批准的渲染结果。

禁止做的

  • 禁止使用嗖声、呼啸声、翻页声。riser/swell 是有调性的推高,谨慎使用。
  • 禁止抄袭旋律、可识别的主题或参考曲目的编配。
  • 禁止每个视频使用相同的 BPM/调性/和弦进行;禁止用响度代替情感。
  • 禁止没有视觉或故事理由的音效;禁止音效响过解说。

已知限制(已测试)

  • GM SoundFont 管弦乐 = 良好的模仿,而非 Spitfire/Kontakt 的真实感。独奏钢琴、音垫、拨奏、拨弦和合成器表现最佳。
  • 每个提示一个速度(速度变化 = 新提示)。composition.mid 使用绝对时间,并采用第一个提示的速度。
  • 音频即代码渲染速度较慢(全 AAC 76 秒配乐:在 Ryzen 5 5600H 上约需 8 分钟;混合配乐:约 50 秒)。
  • Claude 无法聆听;质量审查数据 + 频谱图 + 用户耳朵是反馈循环。

相关技能