简体中文

Mac 上的游戏手柄转 OSC

在 Mac App Store 下载 InputConfig这款应用完全免费。无需创建账户。没有订阅,没有麻烦的下载,也没有任何锁定的功能。针对 Apple 芯片优化。

你现在就能在 Mac 上通过一座桥,用游戏手柄发送 OSC。InputConfig 自己不发送 OSC,但它能发送 MIDI,而免费的桥接 App Chataigne 能把这些 MIDI 变成 OSC,交给任何在监听的东西:Resolume、TouchDesigner、QLab、Max、Eos 控台等等。

这份指南讲的是我今天会怎么设置,大约十五分钟,另外还会看一看其他选择。

步骤

  1. 连接手柄,打开 InputConfig,打开一个发送 MIDI 的预设(Lighting Desk 或 Gamepad Synth 预设都可以)。
  2. 安装 Chataigne,它免费,并且在 Apple 芯片上原生运行。
  3. 在 Chataigne 里添加一个 MIDI 模块,选 InputConfig 作为它的输入设备。
  4. 添加一个 OSC 模块,把目标设为你想控制的 App:如果它在同一台 Mac 上就用 127.0.0.1,再加上那个 App 监听的端口。
  5. 为每个 MIDI 控制创建一个到 OSC 地址的映射,如果接收的 App 需要,就把 0 到 127 缩放到 0 到 1。
  6. 移动手柄,看着数值到达接收的 App。

为什么需要一座桥

OSC 通过网络运行,而 InputConfig 根本不建立任何网络连接。我很看重这一点,它也写在这款 App 的隐私政策里。所以网络那一部分交给桥。

而 MIDI 则完全留在你的 Mac 上。InputConfig 把 MIDI 交给桥,网络那一部分由桥来做。

新的设置就别用 OSCulator 了

多年来,OSCulator 就是这个问题的答案,很多旧的论坛帖子至今仍在推荐它。最后一个版本只支持 Intel,这意味着它依赖 Rosetta,而 Apple 已经说过,macOS 27 是最后一个完整支持 Intel App 的版本。Chataigne 是我找到的最接近的替代品。

通过 Chataigne 发送 OSC

Chataigne 免费、开源,并在 Apple 芯片上原生运行。它接收 MIDI 并发出 OSC,如果你最后要做灯光,它也能发送 DMX、Art-Net 和 sACN。

第 1 步:从 InputConfig 发送 MIDI

  • 你:打开一个发送 MIDI 的预设。Lighting Desk 预设把推子放在扳机上,把音符放在按钮上。Gamepad Synth 预设连摇杆也涵盖了。
  • InputConfig:把手柄的动作发送到它的 MIDI 端口,名为 InputConfig。
  • 检查:预设在 InputConfig 里显示为正在运行。

第 2 步:在 Chataigne 里读取

  • 你:在 Chataigne 里添加一个 MIDI 模块,选 InputConfig 作为设备。
  • Chataigne:列出从端口到达的每个值。
  • 检查:移动一个扳机,它的值在模块里发生变化。

第 3 步:把 OSC 指向目标

  • 你:添加一个 OSC 模块并设置目标:接收的 App 在同一台 Mac 上就用 127.0.0.1,如果在你的网络上,就用另一台电脑的 IP 地址,再加上那个 App 监听的端口。
  • Chataigne:把 OSC 消息发送到那个地址和端口。
  • 检查:端口与接收的 App 监听的端口一致。

第 4 步:映射每个控制

  • 你:创建一个映射,把 MIDI 值作为输入,把一条 OSC 消息作为输出。大多数 App 要的是 0 到 1,而不是 0 到 127,Chataigne 可以在映射里重新映射。
  • Chataigne:把每个 MIDI 动作转换成一条 OSC 消息。
  • 检查:移动手柄,看着数值到达接收的 App。一个好的首次测试是一个扳机对应一个推子。

同一台 Mac 上的 OSC 目标:把这个输入为 OSC 模块的主机。

127.0.0.1

结果如何:Chataigne 发送给这台 Mac 上运行的 App。把那个 App 的端口加在旁边。

InputConfig 的编辑器显示四行:左摇杆发送 CC 1 和 CC 2,叉键发送音符 60,R2 发送 CC 3。
图 1:桥的 InputConfig 这一半:两个摇杆轴作为 CC 1 和 CC 2,叉键上一个音符,R2 上是 CC 3。Chataigne 把这些变成 OSC。
InputConfig 的 Live Visualizer 里,画在 DualSense Edge 上的手柄转 MIDI 用于 OSC 的预设。
图 2:手柄上的同样四行。推动摇杆,它的 CC 标签就亮起,这让你在看桥之前,就知道 MIDI 正在发出。

找到 OSC 地址

每个 App 给控件起的名字都不同,所以请查它的文档,看它监听哪些地址。Resolume、QLab 和 ETC 的 Eos 系列都记录了它们的 OSC 命令,而 TouchDesigner 的 OSC In CHOP 你发什么它就收什么。对于灯光,你可能根本不需要 OSC:QLC+ 和 Lightkey 直接读取 MIDI。

如果什么也没到达

沿着这个阶梯往上爬,最常见的错误排在最前:

  1. 检查端口。接收的 App 必须监听桥发送到的同一个端口。这是我犯得最多的错误。
  2. 允许本地网络。在 macOS 15 及更高版本上,App 需要权限才能访问你本地网络上的其他设备。如果 OSC 没有出现在另一台电脑上,请在“系统设置”,“隐私与安全”,Local Network 里允许桥接 App。InputConfig 本身不需要这项权限,因为 MIDI 从不离开你的 Mac。
  3. 检查缩放。如果有值到达,却几乎不动,接收的 App 多半需要 0 到 1。在 Chataigne 里重新映射。

选 CC 还是弯音来获得平滑

  • MIDI CC。128 个级别,对不透明度、音量或效果量来说绰绰有余。
  • 弯音。16,384 个级别,用于真正需要非常平滑的东西。Gamepad Synth 预设已经把它放在右摇杆上。把它映射到你最敏感的控制。

MIDI 留在你的 Mac 里面,所以桥增加的延迟很小。蓝牙通常是链条里最慢的一环,演出时用线缆有帮助。把弯音放在必须平滑移动的控制上。

老实说,其他选择

如果你只需要手柄发送 OSC,别的都不要,有些不错的工具直接读取游戏手柄:TouchOSC 可以,Chataigne 自己也可以。当你希望同一个手柄做得更多时,InputConfig 就有意义:按键、鼠标,以及送入你的 DAW 的 MIDI,全都来自一个会随你在各个 App 间切换的预设。

总结

  • InputConfig 发送 MIDI。它不发送 OSC。
  • Chataigne 搭桥。设置一个 MIDI 输入模块和一个 OSC 输出模块,每个控制一个映射。
  • 先查端口。然后在 macOS 15 及更高版本上检查本地网络。

MIDI 进,OSC 出:网络那部分由桥来做,InputConfig 永远不用做。

常见问题

InputConfig 能直接发送 OSC 吗?

不能。它发送 MIDI,像 Chataigne 这样的桥把它变成 OSC。

OSCulator 怎么了?

最后一个版本只支持 Intel 并依赖 Rosetta,所以我现在会用 Chataigne。

这个能用于 OSC 灯光控台吗?

任何接受 OSC 的东西都行,包括 Eos 系列。不过对于灯光,你可能根本不需要 OSC。QLC+ 和 Lightkey 直接读取 MIDI。

延迟大吗?

MIDI 留在你的 Mac 里面,所以桥增加的很少。蓝牙通常是链条里最慢的一环,演出时用线缆有帮助。

更多中文页面

简体中文页面

详细指南(英文)

作者说明。Ryleigh Newman 开发了 InputConfig,因为双手活动不便,每天都用手柄操作自己的 Mac。本页译自英文。Mac 的语言设为简体中文时,InputConfig 会以简体中文显示。网站的部分页面只有英文。

本页的其他语言版本: English

在 Mac App Store 下载 InputConfig免费。macOS 14 或更高版本。无需账户,数据不会离开你的 Mac。 源代码在 GitHub 上。