OSC (Open Sound Control) 介绍
OSC (Open Sound Control) 介绍
注意: OSC 需要使用第三方应用程序来在 Resonite 之外发送/接收数据。在下载第三方应用程序时,请自行做出最佳判断。
Open Sound Control (OSC) 是一种允许软件和硬件发送与接收数据的网络协议。传统上,它用于控制音频相关设备,如 DJ 设备、乐器和推子/调音台。
然而,OSC 本身可以用于几乎任何需要在网络上发送结构化数据的场景。在 Resonite 中,我们看到它被用于:
- 触觉反馈 (Haptics)
- 面部与眼动追踪 (Face and Eye Tracking)
- 宏按键/快捷键面板 (Macro Pads/Shortcut pads)
前提条件
虽然 OSC 使得在 Resonite 中导入导出数据变得更加容易,但它仍然是一种网络协议,这意味着需要具备以下前提条件:
- 具备关于 IP 地址 和 网络端口 的基础知识。
- 对于接收数据:
- 运行 Resonite 的电脑需开放一个端口。
- 运行 Resonite 的电脑的 IP 地址。
- 对于发送数据:
- Resonite 在网络上可以访问到的 OSC 服务器。
- 某种 OSC 应用程序/工具。请参阅下文的工具章节。
注意: 在使用 OSC 时,Resonite 会与其它应用程序发生端口冲突(换句话说:它会占用给定的端口号),请务必选择一个你未在使用的端口。
相关组件
OSC 拥有以下 Resonite 组件:
- OSC_Receiver - 从 OSC 接收数据到 Resonite 中。
- OSC_Sender - 从 Resonite 向 OSC 发送数据。
- OSC_Value - 将一个 OSC 数值暴露为常规组件字段。
- OSC_Field - 将 OSC 数值存储在另一个组件的数值字段中。
支持的数据类型
OSC 支持多种数据类型,Resonite 支持以下类型:
(注:许多 OSC 应用程序纯粹以 Float 形式发送数据)
- Float (浮点型)
- Double (双精度浮点型)
- Int (整型)
- Long (长整型)
- String (字符串)
- Color (颜色)
- ColorX (会转换为 sRGB)
- DateTime (日期时间)
- Byte (字节)
多维数值 (Multi-Dimensional Values)
OSC 支持包含多个数值的变量。这与 Resonite 拥有 Float3 等类型的类型系统非常相似。
例如,一个应用程序可能以“多维数值”的形式发送旋转值。此时,你可以使用 ArgumentIndex (参数索引) 来控制你正在交互的是哪个值:
| 路径 (Path) | 参数索引 (Argument Index) | 数值 (Value) | 描述 |
|---|---|---|---|
| /osc/rotation | 0 | 90 | 旋转的俯仰角 (Pitch) |
| /osc/rotation | 1 | 180 | 旋转的偏航角 (Yaw) |
| /osc/rotation | 2 | 0 | 旋转的翻滚角 (Roll) |
OSC 消息和数据的结构取决于发送方,因此不同的应用程序或工具可能会以不同的方式发送数据。
常用工具
目前已存在许多支持 OSC 并与 Resonite 实现兼容的工具:
- OSC Controller - 在手机上控制推子、按钮等,并通过 OSC 发送数据。
- Sensors2OSC - 通过 OSC 发送安卓设备的传感器数据。
- Basic-OSC-Example - 一个用 C# 编写的非常简单的 OSC 应用程序。用于测试 OSC 连接性。
- GigglePuck - 一款触觉设备,可根据 Resonite 中的交互产生震动。
- ofxOscMidi - 一个用于从硬件 MIDI 控制器或软件 DAW 接收 MIDI 消息,并将其转换为 Resonite 可理解的 OSC 消息的程序。也可接收来自 Resonite 的 OSC 输入并发送至 MIDI 输出。
示例
- 使用手机传感器:
- 通过手机陀螺仪旋转游戏中的方块(Frooxius 演示)。
- 访问 Sensors2OSC 数据(ProbablePrime 教程)。
- 推子、按钮与多点触控系统:
No comments to display
No comments to display