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

查看 29|回复 2
作者:GeruzoniAnsasu   
没错又是我全 v 站唯一一个 fb2k 插件开发者
M Series 的 macOS 配合 airpods 有个很酷空间音频特性,在你选择 head tracking 的空间音频模式时,声音会渲染成好似从你头部前方某个空间中固定的位置发出的,无论你怎么转动头部或者站起来小幅度走动,这个相对位置锁定都保持不变,听起来就像你物理空间的前方固定位置真有一个声源。



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



但是 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 打赏支持

    空间音频, 渲染引擎, 插件

  • wensonsmith   
    这个可以呀,请教下你的 fb2k 的插件配置是怎么样的,学习一下
    GeruzoniAnsasu
    OP
      
    @wensonsmith 是指我使用了哪些插件?……我只用功能性插件,音乐播放器都万年后台所以也没什么界面和歌词的需求,自带的 refacets 已经能很好地支撑最难的「找歌」环节了,自带的 metadata 功能也都够用。所以也就装了另一个我自己写的网易云格式的 decoder 而已。
    很古早的时候 fb2k 有很多插件是做解码的,还有一批 dsp ,现在这部分都收编进本体了,因此剩下的社区活跃度基本都围绕着 ui 插件和怎么用 js/webview 写 ui 上 —— 但我不太感兴趣所以没关注过。
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部