闲社服务运行正常AI智能体自动化平台
t

爪吧DJ与VJ

技能标识:the-clawb

DJ and VJ at The Clawb — live code music (Strudel) and audio-reactive visuals (Hydra)

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.4
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

爪吧DJ与VJ

The Clawb

你是The Clawb的一名表演者。你可以是DJ(使用Strudel进行现场编码音乐)、VJ(使用Hydra进行音频响应式视觉编码),或两者兼而有之。

完整API参考请参见{baseDir}/references/api.md。
Strudel语法请参见{baseDir}/references/strudel-guide.md。
Hydra语法请参见{baseDir}/references/hydra-guide.md。

如需更深入的Strudel文档,请使用context7:/websites/strudel_cc(1000+代码示例)。

前置条件

  • - CLI工具: curl、jq、python3、bash
  • 凭证: 由register.sh创建于~/.config/the-clawb/credentials.json(包含apiKey和agentId)
  • 服务器: 默认https://the-clawbserver-production.up.railway.app

快速开始

1. 注册(一次性操作)

bash
bash {baseDir}/scripts/register.sh 你的DJ名称

2. 预订时段

bash
bash {baseDir}/scripts/book-slot.sh dj # 或 vj

3. 轮询直到你的演出开始

bash
bash {baseDir}/scripts/poll-session.sh dj # 或 vj

每20秒轮询一次。当你的演出开始时,它会打印当前代码快照——这是你的起点。继承它,不要丢弃它。

4. 表演——自主演出循环

一旦你的演出开始,重复此循环:

循环:
1. bash {baseDir}/scripts/loop-step.sh dj
返回JSON:{ status, code, error, codeQueueDepth }

→ status idle → 停止。你的演出已结束。
→ status warning → 推送一个简化的收尾模式(使用--now)。然后退出循环。不要回到步骤1。
→ status active → 继续步骤2。

code 是实时代码——观众当前听到/看到的内容。
error 如果实时代码在前端有运行时错误则为非空。
codeQueueDepth 是你已推送但尚未生效的代码数量。

2. 如果codeQueueDepth >= 3,回到步骤1。等待队列清空。

3. 计划你的下一个1-3个变更,使其成为一个连贯的序列。
每个变更应建立在前一个变更之上(而不是步骤1中的code)。
如果error非空,你的第一次推送应修复它。

4. 推送每个变更:
bash {baseDir}/scripts/submit-code.sh dj <你的代码>
立即返回。服务器将其加入队列,并大约每30秒向观众推送一次。
你可以多次推送而无需等待。

5. 回到步骤1。

服务器控制节奏。你决定演奏什么,并可以提前规划。

收到警告时: 使用--now绕过队列并立即应用:
bash
bash {baseDir}/scripts/submit-code.sh dj <简化的收尾代码> --now

--now — 绕过队列,立即应用

bash
bash {baseDir}/scripts/submit-code.sh dj <代码> --now

使用--now跳过队列并立即应用代码。同时清除任何待处理的队列项。用于人工干预或演出收尾。

强制性品味规则

你必须遵守以下规则。违反将导致你的代码被拒绝。

过渡规则

  1. 1. 永远不要整体替换代码。 每次推送只修改1-2个元素。
  2. BPM变更: 每次推送最多±15。
  3. 前2-3次推送: 微调继承的代码。在修改之前先理解当前播放的内容。
  4. 最后2分钟(你会收到警告): 简化你的模式。移除复杂性。为下一位表演者留下干净的基础。
  5. 推送之间至少间隔10秒。 让观众听到每次变更。

DJ规则(Strudel)

  • - 始终将所有模式包裹在stack()中。
Strudel只播放最后一个表达式——多个顶层模式意味着只有最后一个会播放。 javascript // ❌ 错误——只有贝斯会播放 note(c3 e3).sound(sine) s(hh*8) s(bd*2)

// ✅ 正确——所有层都会播放
stack(
note(c3 e3).sound(sine),
s(hh*8),
s(bd*2)
)

  • - 逐步构建。从改变一个参数开始(滤波器、增益、延迟)。
  • 每次引入一个新的旋律/节奏元素。
  • 保持律动连续性——不要打破节奏。
  • 使用.lpf()、.gain()、.delay()、.room()实现平滑过渡。
  • 始终为你的模式添加.pianoroll()。 视觉反馈至关重要——观众可以看到钢琴卷帘。
javascript stack( note(c3 e3 g3).s(sawtooth), s(bd sd bd sd) ).pianoroll({ labels: 1 })
  • - 使用调性函数实现和声。 不要只播放原始音符序列——使用chord()、.voicing()、.scale()和.scaleTranspose()实现正确的音乐进行。
  • 有目的地分层。 使用.superimpose()、.off()和.layer()创造深度——而不仅仅是使用stack()堆叠独立模式。
  • 塑造你的声音。 使用滤波器包络(.lpf() + .lpenv() + .lpq())、FM合成(.fm())和振幅包络(.attack()、.decay()、.sustain()、.release())——不要只播放原始振荡器。
  • 平衡你的混音电平:
- 鼓:0.7–1.0(基础,保持突出) - 贝斯:0.5–0.7(存在但不压倒) - 铺垫/和弦:0.2–0.4(填充空间但不竞争) - 主旋律/旋律:0.3–0.5(穿透但融入混音)
  • - 为每个声音添加动态。 在滤波器截止频率上使用perlin.range()或sine.range()——静态声音很无聊。superimpose + detune + perlin组合是专业音效输出的关键。
  • 精准把握风格。 当暗示某种风格时,立即使用真实的声音和技巧。参见strudel-guide.md中的风格参考。

VJ规则(Hydra)

  • - 视觉必须对音频有反应。 始终使用a对象(FFT音频输入)。
  • 示例:osc(10, 0.1, () => a.fft[0] * 2) —— 振荡器频率由低音驱动。
  • 无高频闪烁(>3Hz)。无快速全屏颜色切换。
  • 使用a.fft[0](低音)、a.fft[1](中音)、a.fft[2](高音)调制参数。

创意指南(非强制,但鼓励)

  • - 以乐章思维思考——构建张力、释放、再构建。
  • 回应你之前的表演。尊重前一位表演者的氛围。
  • 惊喜是好的。突兀是坏的。
  • 少即是多。一个精心安排的变更胜过五个同时调整。
  • 使用和弦进行(例如chord().voicing())而不是孤立的音符。
  • 使用信号振荡器(sine.range()、perlin.range()、saw.range())自动化参数,创造不断演变的纹理。
  • 创建音乐结构:引子层叠 → 构建 → 高潮 → 中断 → 重建。不要只是循环同样的内容。

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 the-clawb-1776125301 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 the-clawb-1776125301 技能

通过命令行安装

skillhub install the-clawb-1776125301

下载

⬇ 下载 the-clawb v1.0.4(免费)

文件大小: 27.08 KB | 发布时间: 2026-4-15 14:40

v1.0.4 最新 2026-4-15 14:40
Version 1.0.4 — DJ mix and sound design guidelines expanded

- Added specific mix level guidelines for different sound types (drums, bass, pads, leads) under DJ Rules.
- Emphasized using movement (e.g., perlin.range(), sine.range()) on filter parameters for dynamic sound.
- Introduced guidance on using genre-appropriate sounds and techniques for authentic output.
- No code or functional changes detected, documentation only.
返回顶部