[Feature request] Downmix using HRTF (aka. virtual surround for headphones)
Posted: Fri Nov 09, 2018 11:55 am
Hi,
I enjoy my purchase and use of Voicemeeter. The downmix feature is useful when I want to preview materials composed in 7.1 format.
However I wish we could use HRTF to downmix 7.1 to stereo (aka. virtual surround for headphones).
The principle of HRTF is that, our ear canal is a filter that has different responses for sound coming from different azimuth and altitude. Also the signal coming from different distances reaches both ears with different latency.
We apply HRTF to the audio stream to simulate an ear canal, allowing our brain to feel "sound coming behind us" through any stereo headphones.
It is not difficult to include HRTF into Voicemeeter because we already have an EQ, and HRTF is just another EQ + Delayer.
Third-party libraries exists: FFmpeg (libavfilter.dll) already contains an LGPL implementation named "SOFAlizer" which can be directly included into Voicemeeter if license permits. Sofacoustics also provides an LGPL-licensed SOFAlizer implementation in C.
Although HRTF data is personalized for ear shape, we can ignore that in most cases. It might be possible if the user can import their personalized HRTF data in SOFA format, but an average HRTF data is enough to for music and games.
I am looking forward to your reply, and I am willing to help with problems regarding developing this feature.
Thanks!
I enjoy my purchase and use of Voicemeeter. The downmix feature is useful when I want to preview materials composed in 7.1 format.
However I wish we could use HRTF to downmix 7.1 to stereo (aka. virtual surround for headphones).
The principle of HRTF is that, our ear canal is a filter that has different responses for sound coming from different azimuth and altitude. Also the signal coming from different distances reaches both ears with different latency.
We apply HRTF to the audio stream to simulate an ear canal, allowing our brain to feel "sound coming behind us" through any stereo headphones.
It is not difficult to include HRTF into Voicemeeter because we already have an EQ, and HRTF is just another EQ + Delayer.
Third-party libraries exists: FFmpeg (libavfilter.dll) already contains an LGPL implementation named "SOFAlizer" which can be directly included into Voicemeeter if license permits. Sofacoustics also provides an LGPL-licensed SOFAlizer implementation in C.
Although HRTF data is personalized for ear shape, we can ignore that in most cases. It might be possible if the user can import their personalized HRTF data in SOFA format, but an average HRTF data is enough to for music and games.
I am looking forward to your reply, and I am willing to help with problems regarding developing this feature.
Thanks!