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

Support alternative audio backend #2784

Open
xen0n opened this issue Aug 22, 2019 · 5 comments
Open

Support alternative audio backend #2784

xen0n opened this issue Aug 22, 2019 · 5 comments

Comments

@xen0n
Copy link

xen0n commented Aug 22, 2019

Hi,

Currently osu! heavily relies on BASS for audio. However, as BASS is closed-source, one can't easily bring up osu! on platforms unsupported by BASS; some recent ARM64, PPC64 devices and upcoming Loongson boards come to mind.

Is there any plan to abstract out the audio backend, so people on these niche platforms can begin work to port osu! to their favourite non-x86 rigs?

@peppy
Copy link
Member

peppy commented Aug 22, 2019

Yep, definitely open to alternatives. Implementation should already be relatively straightforward (make AudioManager provided by the host in a similar way to other components).

@peppy peppy added this to the Candidate Issues milestone Aug 22, 2019
@swoolcock
Copy link
Collaborator

This goes hand in hand with the GameHost refactor I’m working on, that allows for different backend implementations to be dropped in (a prerequisite for Veldrid support).

@peppy peppy removed this from the Candidate Issues milestone Mar 17, 2020
@huupoke12
Copy link

huupoke12 commented Mar 16, 2021

I suggest using SDL as the alternative. It would be better for Linux users since it supports modern audio drivers for Linux, which can decrease the audio latency. Users can also set the SDL_AUDIODRIVER environment variable to manually override the driver used. The list of audio drivers supported can be found at the repository.

@xen0n
Copy link
Author

xen0n commented Mar 16, 2021

@huupoke12 It's been a while but IIRC the main hurdle is osu! makes heavy use of the audio effects provided by BASS, for mods like DT NC and such. All DSP code would have to be reimplemented, with adequate performance, if one were to replace BASS, and that's probably why this is still TODO today.

@smoogipoo
Copy link
Contributor

This doesn't need discussion, sorry. It needs implementation. It's not (and will never be) a priority for osu!'s use case, and it's not going to be prioritised by the team until after osu!lazer replaces osu!stable.

In-fact, the only osu-framework-side implementation is to expose sufficient abstractions from AudioManager and all related components (SampleStore/TrackStore/etc) in order to create implementation-specific components. The rest can be done as its own nuget package.

@ppy ppy locked and limited conversation to collaborators Mar 16, 2021
@ppy ppy unlocked this conversation Mar 16, 2021
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

5 participants