npm.io
1.0.6 • Published 3d ago

@c3812600/node-red-ventuz-osc

Licence
MIT
Version
1.0.6
Deps
0
Size
27 kB
Vulns
0
Weekly
0

@c3812600/node-red-ventuz-osc

Node-RED 节点,用于 Ventuz OSC 通信。

功能

  • osc-out: 发送 OSC 消息到 Ventuz(支持中文 BEUC 编码)
  • osc-in: 接收 Ventuz的 OSC 消息

特性

  • 完整的 OSC Bundle 支持
  • 中文字符串自动 BEUC 编码
  • 支持 int、float、string、blob 数据类型
  • 通配符地址过滤
  • 追踪发送方 IP/端口

安装

cd ~/.node-red
npm install @c3812600/node-red-ventuz-osc

或通过 Node-RED 管理面板搜索 ventuz-osc 安装。

节点说明

osc-out 节点

发送 OSC 消息到指定目标。

配置项:

  • host: 目标主机地址(默认 127.0.0.1)
  • port: OSC 端口号(默认 9000)
  • address: OSC 地址(默认 /ventuz/broadcast,留空时使用默认值)

地址优先级:

  1. 输入消息的 msg.topic 字段(最高优先级)
  2. 节点配置的 OSC Address 字段
  3. 留空时默认为 /ventuz/broadcast

输入消息格式:

{
  "topic": "/ventuz/broadcast",
  "payload": "Hello Ventuz"
}

支持的数据类型:

  • 整数 (int32)
  • 浮点数 (float32)
  • 字符串 (UTF-8/BEUC)
  • 布尔值 (自动转 int)
  • Blob (Buffer)
osc-in 节点

监听指定端口的 OSC 消息。

配置项:

  • port: 监听端口号(默认 9001)
  • address: OSC 地址过滤器(留空或 * 表示接收所有地址的消息)

输出消息格式:

{
  "topic": "/ventuz/broadcast",
  "payload": ["Hello", 123, 45.67],
  "_ip": "192.168.1.100",
  "_port": 12345,
  "_raw": "<Buffer>"
}

地址过滤器示例:

  • /ventuz/* - 匹配所有 /ventuz/ 开头的地址
  • * - 匹配所有地址
  • /ventuz/broadcast - 精确匹配

示例

导入 examples/osc-example.json 中的示例流程。

OSC 编码说明

本模块的 OSC 编码实现参考了 c3812600/osc 项目,支持:

  • 标准 OSC 消息和 Bundle 格式
  • 中文字符串 BEUC 编码(自动检测)
  • 4 字节对齐填充

License

MIT

Keywords