mcpField
U
u-he Preset Randomizer

u-he Preset Randomizer

本地服务
github.com/Fannon媒体与设计326 周前更新

关于 u-he Preset Randomizer

u-he Preset Randomizer 是一个用于生成 u-he 合成器预设的命令行工具,同时提供 MCP 服务。它通过分析用户自己的预设库,基于统计分布随机生成、修改或合并预设。适合希望从现有音色库中获得新音色的音乐制作人。

主要功能

  1. 01基于预设库统计分布的完全随机生成
  2. 02按可调随机比例修改已有预设
  3. 03合并多个预设并随机分配权重
  4. 04支持按文件夹、标签、作者或收藏筛选
  5. 05提供 MCP 服务用于对话式浏览与生成

适用场景

  1. 01从现有 Diva 预设库生成新音色
  2. 02对某个预设按 20% 随机度生成变体
  3. 03合并多个 pad 预设得到混合音色

MCP 相关

该项目提供 MCP 服务端,允许 Claude 等 AI 助手搜索预设、解释预设特征,并通过自然语言指令生成与合并预设。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"fannon-u-he-preset-randomizer": {
"command": "npx",
"args": [
"-y",
"u-he-preset-randomizer"
],
"env": {
"UHE_CUSTOM_FOLDER": "<UHE_CUSTOM_FOLDER>",
"DEBUG": "<DEBUG>"
}
}
}
}
启动命令npx -y u-he-preset-randomizer
需要配置的环境变量
UHE_CUSTOM_FOLDEROptional override for preset root discovery when synths are stored outside default locations.
DEBUGEnable verbose logging for troubleshooting.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmu-he-preset-randomizer1.2.0

工具

14

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

u-he-preset-randomizer

通过随机化和合并现有预设(类似遗传机制)来生成 u-he 合成器预设。

此工具提供三种不同模式来生成随机预设:

  • 根据预设库中真实的数值及其分布,生成完全随机的预设
  • 随机化现有预设,并可自定义随机程度
  • 合并多个预设,通过调整它们之间的不同比例引入随机性。

随机化/合并方法非常通用,因为它会分析你实际的预设库,并根据分析得出的统计分布生成随机值。

还有一些可选标志/模式会影响随机化:

  • 缩小作为随机生成依据的分析预设范围。
    • 例如,只使用某个子文件夹、特定标签类别、作者或收藏文件导出内容。
    • 这会影响/限制生成预设中的数值范围。
  • 使用 stable 模式,获得更可靠但随机性略低的结果
  • 使用 binary 模式,参见 --binary CLI 参数文档。

它应该适用于所有平台上的所有 u-he 合成器。 某些合成器可能效果更好,因为它们的架构较为简单(例如 u-he Diva、Repro)。 Bazille 或 Zebra 等模块化程度更高的合成器也能使用,但生成的结果会更多样,也可能产生损坏的预设。

使用方法

这是一个 CLI 应用,需要在终端/命令行中运行。

首先需要安装 Node.js 运行时。 然后打开终端/控制台/命令提示符,输入命令即可启动,也可以选择附加一些参数。 这些命令以 npx u-he-preset-randomizer@latest 开头,它会下载并运行此工具的最新版本:

npx u-he-preset-randomizer@latest

这会以交互模式启动工具,并引导你完成必要的选择。 或者,如果你已经知道要选择什么(非交互模式),也可以传入一些参数。

生成的补丁将存放在你选择的合成器预设目录中,位于用户预设下的 /RANDOM 文件夹内。

GIF 录制

如果你想下载此工具以供离线使用,并手动更新:

# install it as a global CLI tool
npm i -g u-he-preset-randomizer

# Now you can run it without npx:
u-he-preset-randomizer

MCP 服务接口

除了 CLI,此工具还提供 Model Context Protocol (MCP) 服务,让 Claude 等 AI 助手能够通过自然对话与你的 u-he 预设进行交互。

功能:

  • 🔍 通过对话搜索和浏览你的预设库
  • 📝 详细说明预设的独特之处
  • 🎲 根据自然语言指令生成随机预设
  • 🔄 通过 AI 辅助工作流创建变体并合并预设
  • 💾 有状态会话——选择一次合成器后,即可自由探索

Claude Desktop 快速设置:

将以下内容添加到 Claude Desktop 配置中(macOS 上的 ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "u-he-preset-randomizer": {
      "command": "u-he-mcp-server"
    }
  }
}

然后你可以向 Claude 提出类似这样的问题:

  • “我安装了哪些合成器?”
  • “显示 Diva 中的贝斯预设”
  • “为‘303 Bass’预设创建 5 个变体,随机程度为 30%”
  • “合并我收藏的铺底预设,创建混合音色”

📚 阅读完整的 MCP 服务文档 →

CLI 使用示例

生成完全随机的预设

此命令将运行随机化工具,生成 3 个完全随机的 Diva 预设。 随机值将基于你实际预设中的真实数值(及其分布)。

npx u-he-preset-randomizer@latest --synth Diva --amount 3
随机化特定预设

此命令将选取名为“HS Greek Horn”的特定预设,并以 20% 的随机化比例创建 5 个随机变体。

npx u-he-preset-randomizer@latest --synth Diva --amount 5 --preset "HS Greek Horn" --randomness 20
合并多个预设

此命令会合并多个预设,并随机决定每个预设在“继承”中的权重比例。
以下示例会选取三个 Diva 预设(每个都通过 --merge 指定),并从中创建 5 个合并变体。

npx u-he-preset-randomizer@latest --synth Diva --amount 5 --merge "HS Greek Horn" --merge "HS Strumpet" --merge "HS Baroqualog"

提示与技巧

  • u-he 预设浏览器在按类别、标签等筛选和组合预设方面具有最大的灵活性。你可以用它将预设复制到新文件夹,或创建 .uhe-fav 文件导出,并在 CLI 中用它缩小选择范围
  • 合并预设时,可以多次选择同一个预设。通过这种方式,可以为预设分配“权重”,以控制其对结果的影响程度。
CLI 参数 / 配置

如果不确定应该使用哪些值,请以交互模式运行工具。 此处的大多数配置选项都支持自动补全或建议。

  • --synth:选择 u-he 合成器。并非所有合成器都经过测试,但随机化器会尽量采用通用方式。名称必须符合 u-he 的文件夹命名规范。例如:Diva、Hive、ZebraHZ。
  • --amount:要生成的预设数量。必须为正整数。
  • --randomness:随机化现有预设或合并后的预设时应用的随机程度(百分比)。取值必须介于 0 和 100 之间。
  • --preset:如果提供此参数,将使用现有预设作为基础,并按 --randomness 比例进行随机化。
    • 使用 “?” 随机选择预设
    • 使用 ?search string? 随机选择路径和文件名中包含 “search string” 的预设。
  • --merge:对于要参与合并的每个预设,都可以重复提供此参数。合并预设之间的比例是随机的,不受 --randomness 参数影响。
    • 使用 ? 随机选择预设
    • 使用 ?search string? 随机选择路径和文件名中包含 “search string” 的预设。
    • 使用 * 选择所有预设(请谨慎!最好先通过 --pattern 缩小范围。)
    • 使用 *search string* 选择路径和文件名中包含 “search string” 的所有预设。
  • --pattern:定义一个 glob 模式,用于指定要加载的预设。
    • 默认值为 **/*,会加载所有子文件夹中的全部预设。
    • 要选择子文件夹,例如使用 My Folder/**/*
    • 要选择以某内容开头的预设,例如使用 **/PD *
  • --folder:按文件夹筛选预设。使用 /Local/ 或 /User/ 作为起始路径。
  • --category:按预设类别(元数据)筛选预设
  • --author:按预设作者(元数据)筛选预设
  • --favorites:通过 .uhe-fav 文件中的选择来筛选预设。文件必须位于预设库中的某个位置。
  • --stable:采用更稳定的随机化方式
    • 对于完全随机生成的预设,不会逐个参数随机化,而是按区块随机化(例如,整体随机化 OSC1)
    • 只有数值型、非二进制赋值的参数会进一步随机化。其他参数会与选定的基础预设或随机起始预设保持一致。
  • --binary:保留 u-he 预设中的二进制部分。此部分不会被更改,但随机生成的预设现在会包含随机预设或被随机化的基础预设中的二进制区块。
    • 其中包含 MSEG 曲线等高级设置,但此工具无法真正解析或修改这些内容。并非所有二进制区块都与其他参数调整兼容,因此可能导致预设无效。
    • ⚠ 使用二进制模式可能导致预设损坏,加载时甚至可能使合成器插件崩溃。请谨慎使用。此模式在某些合成器(Repro、Diva、Zebralette 3)上效果较好,而在某些合成器上则经常导致预设无效。
  • --binary-template:使用经过整理的二进制区块模板,而非随机的库预设。Zebralette 3 默认启用此功能。
    • 模板存储在 src/templates/{synthName}/ 中,并以权重作为前缀(例如,15-Basic Shapes.h2p 的权重为 15,因此其被选中的可能性是带有 01- 前缀的模板的 15 倍)。
    • 与 --binary 相比,这种方式更安全,因为这些模板都经过测试,能够与随机化后的参数良好配合。
  • --dictionary:从预设库中使用的名称字典生成随机名称
  • --custom-folder:如果安装文件夹是自定义的,可在此处指定
    • 例如:--custom-folder "C:/Audio/Plugin Installationen/u-he/"
  • --debug:启用一些可选的调试日志记录和文件导出

音色集

封面链接描述
Diva Generated Vol. 1Diva Generated Vol. 1(ZIP)、音频演示(YouTube)为 u-he Diva 随机生成的 50 个预设,由 Simon Heimler 于 2024 年精选、修改并添加标签。
Repro-5 GeneratedRepro-5 Generated (ZIP)、音频演示(YouTube)为 u-he Repro 随机生成的 42 个预设,由 Simon Heimler 于 2024 年精选、修改并添加标签。
Repro-1 Generated Vol. 1Repro-1 Generated Vol. 1(ZIP)、为 u-he Repro 随机生成的 28 个预设,由 Simon Heimler 于 2024 年精选、修改并添加标签。

开发者指南

要在开发者模式下于本地运行此工具,需要安装 Node.js 和 Bun。克隆仓库,然后:

npm i
npm run build

# Run the CLI in development mode (using Bun):
bun run dev --synth Diva --amount 3

# Run tests:
bun test

# Maintenance scripts
npm run clean      # remove dist output and incremental build cache
npm run build:dist # emit declarations + source maps for npm publish (runs automatically via prepublishOnly)

AGENTS.md 从开发角度介绍了更多项目运作方式的背景信息。

我还在 NPM 模块中公开了 u-he 预设解析器/序列化器函数,供其他项目以编程方式使用。不过,如果你只对解析器感兴趣,可能会继承不必要的依赖。请参阅 ./src/parser.ts。

帮助/反馈

请使用相关的 KVR 讨论帖,或创建一个 GitHub issue。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。