Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement SteamAudio SDK #1619

Open
gabeklavans opened this issue Feb 20, 2024 · 9 comments
Open

Implement SteamAudio SDK #1619

gabeklavans opened this issue Feb 20, 2024 · 9 comments

Comments

@gabeklavans
Copy link

gabeklavans commented Feb 20, 2024

Description

The Steam Audio SDK was just fully open sourced. This is a modern, actively-developed audio processing library designed by Valve specifically for 3D games and VR, and could prove to be a powerful addition to the default OpenAL-Soft library for Panda3D.

Use Case

Steam Audio most likely supports or augments many features that Panda3D currently implements with OpenAL, and may have the benefit of a simpler, more modern API with easy access to more features tailored to 3D games specifically. I haven't done an extensive comparison myself (here is a list of the features in the SteamAudio C API), but there are some discussions floating on it by people more knowledgeable than me, such as here.
It may not be worth the effort, as OpenAL-Soft seems to meet Panda3D's needs, but I figured I'd start the dialogue here.

@gabeklavans gabeklavans changed the title Implement SteamAudio as an available audio library Implement SteamAudio SDK Feb 20, 2024
@serkkz
Copy link
Contributor

serkkz commented Feb 20, 2024

If I understand the terms of the Apache 2.0 license correctly, the developer must distribute his application under this license, that is, as an open source. Which is an imposition of licensing, I don't think Panda3D users will be thrilled.

@gabeklavans
Copy link
Author

gabeklavans commented Feb 20, 2024

If I understand the terms of the Apache 2.0 license correctly, the developer must distribute his application under this license, that is, as an open source. Which is an imposition of licensing, I don't think Panda3D users will be thrilled.

I'm not a licensing expert but the breakdown on this page seems to suggest that you don't need to apply the Apache 2.0 license to projects that use software under that license https://fossa.com/blog/open-source-licenses-101-apache-license-2-0/

Specifically:

Use the code commercially: Companies can include the licensed code in proprietary software that they then sell to customers.

@serkkz
Copy link
Contributor

serkkz commented Feb 20, 2024

https://github.com/ValveSoftware/steam-audio/blob/master/LICENSE.md

As indicated here in part 4, paragraph "c", it is required to keep the copyright notice form. The problem is that the author of the work can simply include a mention of copyright at the beginning of the source code. Accordingly, you will be forced to distribute it further in this form.

Maybe I'm exaggerating, but that's how I understand it.

@gabeklavans
Copy link
Author

https://github.com/ValveSoftware/steam-audio/blob/master/LICENSE.md

As indicated here in part 4, paragraph "c", it is required to keep the copyright notice form. The problem is that the author of the work can simply include a mention of copyright at the beginning of the source code. Accordingly, you will be forced to distribute it further in this form.

Maybe I'm exaggerating, but that's how I understand it.

My understanding is that applies to a derivative of SteamAudio itself, not any project that uses a binary from the unmodified source. But that's definitely at or beyond the limit of my understanding, so I'll let someone more qualified/experienced figure that out

@serkkz
Copy link
Contributor

serkkz commented Feb 20, 2024

Yes, that's right, in fact, you are allowed to change the license at your discretion with compatibility. However, I also don't understand what to do with the SteamAudio source code.

@Wizzerinus
Copy link
Contributor

Wizzerinus commented Feb 20, 2024

apache 2.0 is not a copyleft license, so it shouldn't be an issue on that front

@gabeklavans
Copy link
Author

gabeklavans commented Feb 20, 2024

However, I also don't understand what to do with the SteamAudio source code.

From my understating, SteamAudio could replace OpenAL-Soft as an HRTF provider. SteamAudio also provides lots of effects processing for modeled and simulated 3D environments, presumably with high efficiency and with a good API. Of course those last two points are to be actually investigated, first, but it seems promising.

Also I'm not sure what sort of VR support Panda3D has but SteamAudio seems to tout its VR-capabilities.

Panda3D would just implement these as features with some simple way to utilize them, I'm thinking

@gabeklavans
Copy link
Author

I suppose SteamAudio going open source doesn't actually affect what I'm proposing, but it makes it more of a pretty option for inclusion, just for being open source, but also since it could be modified for Panda3D's needs and avoid any sort of potential proprietary licensing needs.

@rdb
Copy link
Member

rdb commented Mar 1, 2024

Certainly seems worth implementing. The Apache license is not a problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants