timschneeb / GalaxyBudsClient

Unofficial Galaxy Buds Manager for Windows, macOS, Linux, and Android
GNU General Public License v3.0
3.49k stars 189 forks source link

[REQ]It is possibe for this program to provide 3D Audio #215

Closed ghost closed 3 years ago

ghost commented 3 years ago

Dose this audio space sound effects only work on the Samsung Phone,right? i just found the unique headhpone test option, i wonder whether it can be developed

timschneeb commented 3 years ago

Yes, this is possible but it requires loads of time to develop this and I don't know if I have the patience to make this work.

I already have some basic experience in audio effect development on Windows and it would already be a big obstacle to transfer the head-tracking data to the audio driver (which runs separated as a high-privilege service under the SYSTEM-account) efficiently in real-time. But this can be made to work, it's just really tedious to do. Also, I'd need to write the whole 3D audio effect processor myself, which is very hard if you only have basic knowledge in digital signal processing.

tl;dr: It is possible, but I don't have plans to work on this in near future.

ghost commented 3 years ago

Yes, this is possible but it requires loads of time to develop this and I don't know if I have the patience to make this work.

I already have some basic experience in audio effect development on Windows and it would already be a big obstacle to transfer the head-tracking data to the audio driver (which runs separated as a high-privilege service under the SYSTEM-account) efficiently in real-time. But this can be made to work, it's just really tedious to do. Also, I'd need to write the whole 3D audio effect processor myself, which is very hard if you only have basic knowledge in digital signal processing.

tl;dr: It is possible, but I don't have plans to work on this in near future.

OK,thank you so much. i gotcha😘😘😘😘

alesya-h commented 1 year ago

GalaxyBudsClient can use https://github.com/kcat/openal-soft for all 3d audio heavy lifting and just provide a virtual audio output that would convert everything into 3d and output into actual earbuds audio output.

Alternatively, you should be able to have proper 3d audio using some multichannel plugin host (Carla probably should do in patchbay mode), a chain of ambisonics plugins (encoder from stereo or 5.1/7.1 into ambisonics, and decoder from ambisonics into binaural) and a script to send head rotation data (usually directly as quaternions) from https://github.com/ThePBone/BudsPro-Headtracking to decoder plugin via OSC. In terms of plugin suites the main one is probably IEM (https://plugins.iem.at/), but there are others like SPARTA (https://leomccormack.github.io/sparta-site/docs/plugins/sparta-suite/) oand ATK (https://www.ambisonictoolkit.net/, it's not a VST plugin, but you can either do all of it in SuperCollider instead, or use anything that can host JSFX, Carla seems to be able to do that).

Ambisonics chain is more flexible, as you are in control of everything and can move virtual speakers around or just use rotation data from earbuds but output audio to wired monitoring headphones for lower latency etc., but is probably not super accessible for non-engineers, and probably even less accessible on non-linux platforms without using a full DAW like Reaper for the processing chain.