matthewprince/maxwell-eq

GitHub: matthewprince/maxwell-eq

Linux 下的 Audeze Maxwell 耳机 USB EQ 工具,通过逆向 RACE/HID 协议将均衡器参数下发至耳机内置 DSP,实现 bit-perfect 的自定义 10 段均衡调节。

Stars: 0 | Forks: 0

# maxwell-eq **Linux 下的 Audeze Maxwell EQ 工具。** Audeze 仅为其 EQ 应用 (Audeze HQ) 提供了 Windows 和 macOS 版本,因此在 Linux 上没有官方支持的调整 Maxwell EQ 的方法。本项目通过 USB 实现了这一点:包含一个小型 GTK 应用和一个 CLI,可切换耳机内置的预设并应用自定义的 10 段 EQ。 EQ 处理位于耳机自带的 DSP 中,而不是 PC 的音频处理流程中,因此播放能保持 bit-perfect。在音频输出的过程中,不会有任何重采样或过滤操作。 ## 功能 - 切换设备上的预设:Audeze、Bass Boost、Treble Boost、Immersive、Competition、Footsteps - 实时且以 bit-perfect 方式应用自定义的 10 段图形 EQ - 内置了几种根据流派/曲目调校的预设;你也可以通过 CLI 或 `.pnreq` 文件自定义专属预设 - 记住你上一次的选择,并在重新插拔/重启后自动重新应用(通过 systemd + udev 实现) - 可作为 GTK 应用、独立的 AppImage 或 CLI 运行 ## 工作原理 Maxwell 使用了 Airoza 芯片组,并通过 USB HID 接口(供应商 ID `3329`,使用页面 `0xFF13`)进行 RACE 协议通信。自定义 EQ 通过 DSP 实时路径 (`DSP_REALTIME_PEQ`) 传输,这与手机应用在你拖动滑块时的处理方式相同。这 10 个频段是普通的 RBJ 峰值双二阶滤波器(固定中心频率 32 Hz–16 kHz,Q=2),其系数由纯 Python (`peq_native.py`) 生成——不依赖 Audeze 的应用程序或任何专有库。内置预设通过设备上的预设组进行切换。 关于协议的一些说明(它们曾耗费了我不少时间):读取操作是通过 `HIDIOCGINPUT` 返回的,而不是 `read()`;此外,多报告 (multi-report) 写入需要在 HID 数据片段之间留有微小间隔,否则芯片会静默丢弃它们。更多详情请见 [docs/protocol.md](docs/protocol.md)。 ## 环境要求 - 通过 USB-C 连接的 Maxwell(不支持无线 dongle) - Python 3.10+ - GUI 需要 GTK 4 + libadwaita 和 PyGObject (`sudo apt install python3-gi gir1.2-gtk-4.0 gir1.2-adw-1`)。CLI 则不需要这些。 ## 安装说明 RACE HID 接口需要用户访问权限。只需安装一次 udev 规则: ``` sudo cp packaging/70-audeze-maxwell.rules /etc/udev/rules.d/ sudo udevadm control --reload ``` 重新插拔耳机即可完成设置。可选操作:使用 `ln -s "$PWD/mx" ~/.local/bin/mx` 将 CLI 软链接到你的 PATH 中。 ## CLI ``` mx list # presets mx apply bass-cannon # apply a custom EQ live mx factory bass-boost # or by index: mx factory 3 mx custom 6 4 1 -2 -2 0 2 3 4 3 --save myeq mx flat # EQ off mx status mx import-pnreq file.pnreq name ``` `factory` 列出了设备上的预设组;最后六个是 Audeze 的内置预设,前四个 (`eq1`–`eq4`) 是可写的自定义插槽。 ## 应用 运行 `python3 maxwell_gui.py`,或者构建 AppImage: ``` bash packaging/build-appimage.sh ``` ## 持久化 实时 EQ 是易失性的(保存在 DSP 的工作内存中),因此需要使用一个 `.service` 在插入/启动时重新断言你上一次的选择: ``` cp packaging/maxwell-eq.service ~/.config/systemd/user/ systemctl --user enable --now maxwell-eq.service ``` ## 注意事项 - 这款耳机无法以 bit-perfect 方式播放 44.1 kHz 的音频:USB 接口仅支持 48k 和 96k,因此 CD 规格的音源总会在某个环节被重采样。这不是本工具能够改变的问题。 - 4 个自定义插槽 (`eq1`–`eq4`) 允许写入,但在 USB 模式下选择时,固件无法可靠地加载由主机写入的插槽,因此自定义 EQ 会通过实时路径进行处理。其听感结果是一样的。 ## 与 Audeze 无关联 出于互操作性目的进行逆向工程。使用风险自负。基于 MIT 协议开源。
标签:Audeze Maxwell, GTK, USB HID, 均衡器, 逆向工具, 音频工具