又写了一个让 fb2k(foobar2000)支持空间音频的 component

GeruzoniAnsasu 2026-06-29 07:42 1

没错又是我全 v 站唯一一个 fb2k 插件开发者


M Series 的 macOS 配合 airpods 有个很酷空间音频特性,在你选择 head tracking 的空间音频模式时,声音会渲染成好似从你头部前方某个空间中固定的位置发出的,无论你怎么转动头部或者站起来小幅度走动,这个相对位置锁定都保持不变,听起来就像你物理空间的前方固定位置真有一个声源。





但这个特性是 AVFoundation 框架中的虚拟音频节点实现的,而 fb2k 使用的是更底层的 coreaudio,因此在它播放时,无法启用这个空间音频特性。所以我又 vibe 了一个插件,用 AVF 框架来输出,这样就能通过 fb2k 播放音乐同时启用空间音频了。



(截图右上角:正在播放的 icon )





但是 airpods 的音质也没 那么 好,我使用的是其它的耳机怎么办?


—— 所以我又做了一套完整的虚拟 5.1 渲染引擎。这个模式使用成熟的经典 STFT upmix 配合 AVF 的 HRTFHQ 渲染器,把分离到不同声道的声音渲染到 6 个虚拟空间中的环绕喇叭,你可以自由调整这些喇叭的摆放来微调自己喜欢的声场。





(预留了控制层的结构,理论上来讲可以做一个脚本引擎让这些虚拟喇叭围着自己转,但有点太癫了所以 暂时 没做)




  • 我其实想以后能配合外挂的空间定位设备做成任意耳机头部追踪的,但我还没想好那个「空间定位设备」是什么形态。





这个项目几乎完全由 Opus 完成,所以包含 DSP 在内的复杂的算法都完全开源,我把踩过的坑都留存在了 memo 文档里,方便以后移植或开发同类项目时参考。(如果你做的播放器也想移植类似的空间音频效果,让我来混个 contribution 也是可以的



  • Releases: https://github.com/pnck/foo_out_avfoundation/releases

  • 如果你有更专业的 review 意见和讨论(算法、AVF 框架的经验)可以发到 fb2k 的开发者社区帖子

  • 如果喜欢的话可以通过站内的 $v2ex 打赏支持

最新回复 (6)
  • wensonsmith 06-29 08:52
    1
    这个可以呀,请教下你的 fb2k 的插件配置是怎么样的,学习一下
  • GeruzoniAnsasu 楼主 06-29 09:15
    2
    @wensonsmith 是指我使用了哪些插件?……我只用功能性插件,音乐播放器都万年后台所以也没什么界面和歌词的需求,自带的 refacets 已经能很好地支撑最难的「找歌」环节了,自带的 metadata 功能也都够用。所以也就装了另一个我自己写的网易云格式的 decoder 而已。

    很古早的时候 fb2k 有很多插件是做解码的,还有一批 dsp ,现在这部分都收编进本体了,因此剩下的社区活跃度基本都围绕着 ui 插件和怎么用 js/webview 写 ui 上 —— 但我不太感兴趣所以没关注过。
  • nrtEBH 06-29 09:31
    3
    foobar2000 在现在的 macOS 下还能运行? 太厉害了
  • kirbyzhu 06-29 13:58
    4
    厉害 怎么安装到 mac 啊
  • GeruzoniAnsasu 楼主 06-29 14:43
    5
    @kirbyzhu

    - 官网的新版 fb2k for mac
    - 在设置的 components 里选中 release 的 fb2k-componet 文件即可

  • kirbyzhu 06-29 16:57
    6
    太厉害了 已经安装
    @GeruzoniAnsasu
* 帖子来源V2EX
返回