-
Notifications
You must be signed in to change notification settings - Fork 460
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
OpenAL Implementation #93
base: master
Are you sure you want to change the base?
Conversation
Note that openal needs some adjustments to match the unit tests
Also allow users to choose their favorite device and removed c#6 features
I don't know if it's a my sound driver, but when opening all devices sound gets very... uhm.. sounds bad. The ALDevice is now checking if it's already initialized so it don't hurt initing it multiple times. Sound should work as expected again
OpenAL expects a PCM source (either 8 or 16 bit), not an IEEE 32-bit float source To fix this, we use the original bit depth of the wave source if it is 8 or 16 bits, and use 16 bits otherwise
… it is AL_BUFFERS_PROCESSED)
…ns thrown from MP3 decoder
What are you actually using to build the project on linux. Got little to no experience with c# on linux. VSCode, MonoDev? |
I built it with MonoDevelop. I had to disable "Use MSBuild" in each project that I wanted to build though, I didn't bother looking in to why that was the case. I had to make a few changes to the project files to handle Linux's case sensitivity and dll mapping, this was done in commit 588bc9b, which is in the linux branch of my fork. This pull request is just for OpenAL support though, the linux part still needs polishing. |
Have you rewritten the post build-event code? |
Previous method would sometimes overwrite buffers that were in use, causing the audio to skip, and could also dequeue buffers that were in use. Now only fill buffers that have been dequeued. Also added a few helper functions for filling buffers and dequeuing them.
I have not got that working yet. I am a bit unsure on it's function, is this what the post build step does?
I have created issue #94 so that we can discuss cross-platform support and list the current progress towards it, I suggest we move the discussion there? |
Exactly, but I'm not sure how to handle multiple platforms. Maybe we should just exclude all windows components from the linux and mac build. So we would not need the CSCli(and the ILUtilities??) build step anymore. |
Merged pull request into an openal branch |
I have fixed and improved the OpenAL implementation from #16.
The main issue was incorrectly buffering IEEE 32-bit float samples, whereas OpenAL expects PCM audio (8 or 16 bit).
I also made the following changes: