为了应付音游“高手速、短键程、快速回弹”的特点,我入手了雷蛇的猎魂光蛛键盘。它除了可以满足音游的需求以外,还可以通过 Razer Synapse 3 实现灯光效果的个性化设置,例如通过幻彩可视化软件,让键盘的灯光随着音乐节奏变化。
Windows 上的幻彩可视化
这是官方的演示视频:
可以看到键盘有两个灯光效果,一个是按键区域被当成了屏幕,显示了音乐的频谱,另一个是键盘的边框灯光效果,发光区域随着音乐的音量大小而变化。
在 Mac 上面配置幻彩可视化的替代品
Razer Synapse 3 是 Windows 平台独占的软件。虽然它的前一版本 Razer Synapse 2 支持 Mac,但并没有幻彩可视化功能,你只能设置固定的灯光效果。在雷蛇 Insider 论坛上也有帖子挂了好几年(Synapse 3.0 for Mac?、Synapse 3 Mac OS X Support),问 Mac 版本的幻彩可视化何时能出,但雷蛇一直没有给出明确的答复。
在帖子中,网友有提出唯一能在 Mac 上运行并且兼容最新设备的项目是 GitHub 上面的 1kc/razer-macos,它在一定程度上支持 spectrum 功能,但它本质上是向硬件发送命令、使用硬件自带的功能,而不是通过软件监听系统音频来实现幻彩可视化。

Mac 监听系统音频的难点
在 Windows 下想要监听系统音频,可以通过 Core Audio APIs 下的 WASAPI 来实现,Linux 也有类似的 ALSA 和 PulseAudio。这两个系统都可以让软件直接获取系统音频,而不影响正常的播放。
Mac 并没有提供好用的 API 用于直接监听系统音频。想要在 Mac 上获取音频,你首先要指定一个输入设备,但是 Mac 也没提供内置的虚拟设备……所以我们必须先通过第三方软件添加虚拟设备。目前我个人比较推荐的是 ExistentialAudio/BlackHole,理由如下:
- 它是一个现代软件(与之相比,另一个软件 Soundflower 已经停止维护,不支持新系统和 Apple Silicon 芯片)
- 完全免费,可以在下载页面上选择性赞助(与之相比,另一个软件 Loopback 是收费软件)
- 它的自由度非常高(支持 2 通道到 16 通道、可以自定义延迟、比特率等),不需要修改内核或安全策略
可以在 官方提供的下载页 下载和安装,也可以通过 Homebrew 安装(2ch 表示 2 通道,对于我们来说已经足够了):
brew install blackhole-2ch此时,我们的系统里就会多出一个名为 BlackHole 2ch 的输入设备和输出设备。当我们把 BlackHole 2ch 设置为系统的“输出”设备时,所有的音频都会被传输到 BlackHole 2ch 的“输入”设备,而不会输出到扬声器。虽然不完美,但我们已经有一个可以监听系统音频的设备了。
不影响播放:多输出设备
按照上述方法,我们可以监听系统音频,但是这样会导致我们听不到声音,因为扬声器被忽略了。好在 Mac 提供了一个叫做“多输出设备”的功能,可以让我们同时输出到多个设备。打开搜索框,输入“音频 MIDI 设置”,然后在弹出窗口的左下角点击“+”号,选择“创建多输出设备”,最后在右边的列表中同时勾选你的扬声器和 BlackHole 2ch。

现在,我们可以在系统设置里选择“多输出设备”作为系统的“输出”设备,这样我们就可以同时听到声音了。
安装 OpenRGB 驱动
在 Mac 上,我们需要一个驱动来控制键盘的灯光。我选择了 CalcProgrammer1/OpenRGB,它是一个开源的 RGB 控制软件,支持多种品牌的 RGB 设备,包括雷蛇键盘。它的最新版本是 0.9,可以从 这里 下载。
OpenRGB 除了可以通过 GUI 来配置每个按键的灯光,还可以启动一个服务器,让第三方程序通过这个服务器来控制灯光。下图展示了 OpenRGB 的 SDK Server 标签页,可以直接点击 Start Server 按钮来启动服务器。如果点不动,很可能是端口被占用了,在左边的设置里将 6742 修改成别的近似的数字再试试。(注意不要修改成已经被占用的端口;也尽量不要修改成 1024 以下的数字,因为可能需要更高的权限才能监听这些端口。)

安装 KeyboardVisualizer
CalcProgrammer1/KeyboardVisualizer 是一个跨平台的软件,可以通过捕获特定的系统音频输入,将其转换为键盘灯光效果。它的灯光效果高度可定制化,且它支持 OpenRGB 协议,可以通过 OpenRGB 控制键盘的灯光。
美中不足的是,虽然它是个跨平台软件,但它目前只提供了 Windows 版本 的预构建文件。但是没关系,作为一个热爱折腾的人,我们有办法让它在 Mac 上跑起来!不过在这之前,请先安装 Git 和 qmake。
brew install git
brew install qt然后,我们可以通过 Git 克隆仓库:
# 克隆仓库
git clone https://gitlab.com/CalcProgrammer1/KeyboardVisualizer.git
# 进入仓库目录
cd KeyboardVisualizer
# 克隆仓库里面的子仓库
git submodule update --init --recursive接着,我们可以通过 qmake 来生成 Makefile,并调用 make 命令来编译它:
qmake KeyboardVisualizer.pro
make -j8此时,可以发现在目录下多了一个 KeyboardVisualizer.app 文件,这就是我们编译好的软件。不过这个软件有个问题:你直接点击运行的时候不会申请麦克风权限,所以你需要通过终端来运行它,并给终端赋予麦克风权限:
./KeyboardVisualizer.app/Contents/MacOS/KeyboardVisualizer然后……你会发现音频输出的音质突然变得非常低。这是因为 KeyboardVisualizer 强行修改并锁定了输入设备的采样率。对于一个键盘光效来说,确实不需要特别高的音质,这只会徒增计算量。
让聚集设备来救场
我们可以通过聚集设备来解决这个问题。打开搜索框,输入“音频 MIDI 设置”,然后在弹出窗口的左下角点击“+”号,选择“创建聚集设备”,最后在右边的列表中同时勾选你的扬声器和 BlackHole 2ch。

将其作为系统的“输入”设备,再启动 KeyboardVisualizer,你会发现音质恢复正常了,且 KeyboardVisualizer 也能正常工作。

如果能像我一样看到波形图,那已经离成功不远了!最后点击右下角的 Connect 按钮,连接到刚才开启的 OpenRGB 服务器,然后你就可以看到键盘的灯光效果随着音乐的节奏变化了。
我们至今做了什么
- 安装了 BlackHole 2ch 驱动
- 通过多输出设备同时输出到扬声器和 BlackHole 2ch
- 通过 OpenRGB 控制键盘的灯光
- 通过 KeyboardVisualizer 监听系统音频并转换为键盘灯光效果
- 通过聚集设备解决了 KeyboardVisualizer 修改采样率的问题
- 通过 OpenRGB SDK Server 与 KeyboardVisualizer 连接
我们可以用一个简易的架构图来表示这个过程:
值得注意的是,由于开了两个软件,并且启用了录音权限,因此顶部状态栏会多出三个图标,分别是 OpenRGB、KeyboardVisualizer 和系统录音。
