DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Redstone Music — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
R

dsh-redstone-music

Redstone Music

Minecraft redstone-music 工具包:使用起始点对齐渲染 SoundFont 采样,并将歌曲和音轨表编译为定时执行的 mcfunction 数据包(可选通过 RCON 部署)。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:19north/dsh-redstone-music#7ab206d8b7befe321603cd8b046bdae5be5f66ef
README兼容性版本

兼容性与来源证明

Redstone Music 以 dsh-redstone-music 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/10/2

版本

0.1.0stable
2026/10/2

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
Apache-2.0
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/2
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Experimental Inspector@deepseek-ai/dsh-experimental-inspector用于 Host 调试和 Client Runtime 检查的实验性跨 realm CDP hub

README

dsh-redstone-music

A DeepSeek Harness (DSH) plugin scaffolded by dsh-plugin-dev new, then filled in with a working Minecraft redstone-music pipeline.

Compatibility

SurfaceStatus
HarnessDeepSeek Harness 0.1.7-rc.2
Node`^22.19.0
PlatformsAll (plain ESM; optional js-synthesizer only for SoundFont rendering)

What it does

Turns "make a Minecraft redstone music strip" into four tools, so any session can run the whole pipeline instead of re-learning it:

ToolPurpose
redstone_music_pitfallsQuery the 12 hard-won pitfalls (symptom → cause → fix → how to detect)
redstone_music_pipelinePrint the fixed 9-step pipeline
rm_renderRender instrument samples from a SoundFont, align every onset with one rule (5 ms sliding-RMS 50 % cut + 2 ms fade), then re-measure and assert ≤ maxOnsetMs
rm_buildCompile song + lane table into a datapack (mcfunction shards of ≤8000 commands with schedule chaining + Glissando instrument definitions), optionally deploy it over RCON and start the build

Three rules from real incidents are enforced in code rather than documented and forgotten:

  • Glissando instrument definitions are rejected unless sound_event is a vanilla event — a custom namespace only exists in the client resource pack, so the server fails to load the whole instrument table and every note block falls back to harp ("everything is a wrong note").
  • Carrier blocks that are non-conductive, or that sit inside Glissando's built-in minecraft:note_block_instruments/* tags (612 blocks), are rejected — those get their timbre stolen and turn a piano score into drums.
  • Per-track bus delay is compensated (xStart = originX + 2·delay, content at x = originX + 2u + 1), so every track plays the same unit at the same tick.

Install

pnpm pack
dsh plugin --profile <name> add ./dsh-redstone-music-0.1.0.tgz
dsh --profile <name> --dump-config | grep 'dsh-redstone-music'

Minimal example

rm_build takes a song plus a lane table. examples/minimal/project.json is a five-note, three-lane one that the test suite keeps working (it runs on every pnpm test):

{
  "song": { "bpm": 120, "start": 0, "notes": [
    { "t": 0, "midi": 46, "track": 2 },
    { "t": 0.25, "midi": 60, "track": 2 },
    { "t": 0.5, "midi": 40, "track": 2 },
    { "t": 0, "midi": 36, "track": 1 },
    { "t": 0.5, "midi": 35, "track": 1 }
  ] },
  "lanes": [
    { "label": "piano-low", "instrument": "piano_low", "block": "minecraft:moss_block",
      "side": "N", "pos": 1, "window": [40, 52], "sample": 46, "tracks": [2] },
    { "label": "piano-high", "instrument": "piano_high", "block": "minecraft:mud",
      "side": "N", "pos": 2, "window": [53, 65], "sample": 59, "tracks": [2] },
    { "label": "kick", "instrument": "kick", "block": "minecraft:netherite_block",
      "side": "S", "pos": 1, "window": null, "tracks": [1], "keys": [35, 36], "tune": 12 }
  ],
  "geometry": { "originX": 250, "baseY": 180, "walkMid": 520, "laneGap": 5, "tailUnits": 4 }
}

Compile it into a datapack, then build it in the world:

// 1) pack — writes <outputDir>/{pack.mcmeta, meta.json, data/rm_build/function/build*.mcfunction}
rm_build { "action": "pack", "namespace": "rm_build",
           "outputDir": "<serverDir>/world/datapacks/rm_build",
           "projectFile": "…/examples/minimal/project.json" }

// 2) deploy — tick rate → reload → datapack enable → segmented forceload → /function rm_build:build1
rm_build { "action": "deploy", "namespace": "rm_build",
           "projectFile": "…/examples/minimal/project.json" }

Samples come first, and rm_render is what produces them — one onset rule for every slot:

rm_render { "action": "render", "outDir": "…/samples", "namespace": "rm", "soundFont": "…/GeneralUser.sf2",
  "slots": [
    { "name": "piano_low", "kind": "pitched", "program": 0, "window": [40, 52], "sample": 46, "block": "minecraft:moss_block" },
    { "name": "kick", "kind": "drum", "key": 36, "block": "minecraft:netherite_block" }
  ] }

No SoundFont on hand? action: "align" with a sourceDir aligns wavs you already rendered instead.

Configuration

KeyTypeDefaultDescription
enabledbooleantrueEnable the redstone-music tools
serverDirstring""Minecraft server directory; base for the default datapack location. Empty means rm_build needs an explicit outputDir
rconHoststring127.0.0.1RCON host
rconPortnumber25575RCON port
rconPasswordstring""RCON password; empty means rm_build can only pack
datapackDirstringworld/datapacksDatapack directory, relative to serverDir
clientPackDirstring""Client resourcepacks directory (empty = do not deliver)
soundFontstring""SoundFont (.sf2) path used by rm_render's render mode
sampleDirstring""Default sample output directory
sampleRatenumber44100Sample rate (Hz)
maxOnsetMsnumber3Maximum accepted onset after alignment

Configuration is validated by the Schemastery Config schema in src/config.ts; no tunable is hardcoded.

Uninstall

dsh plugin --profile <name> remove dsh-redstone-music

The plugin only writes where you point it: sample wavs into outDir, datapacks into outputDir (default <serverDir>/<datapackDir>/<namespace>), plus whatever RCON commands you explicitly asked it to run. Nothing else on disk is touched, so removing the plugin leaves those files behind — delete them yourself if you don't want them.

Development

pnpm install
pnpm run typecheck
pnpm test
pnpm run build
node scripts/verify-e2e.mjs    # real song + real SoundFont end-to-end check

scripts/verify-e2e.mjs loads the built lib/index.js, renders three real GeneralUser samples, and rebuilds the reference project's 20-lane arrangement from the real score. It cross-checks the numbers against the ones measured in the field: 94.94 ms units, tick rate 21.066, x 250..3628, 7195 notes with 15 dropped, and a total command count within 1 % of 143,712.

License

Apache License 2.0 © 2026 dsh-redstone-music contributors.