Audio Submodule of CygnusJam Game Engine.
- Author: SirusDoma
- Email: com@cxo2.me
- Latest Version: 3.0.5
Genode.Audio is a simple yet powerful Cross-platform Audio Engine which is provides audio playbacks. Written under C# language based on OpenAL (with OpenTK binding). The main idea is to provide a low-latency audio playback that simple and fast. If you prefer simplicity over fancy features, then this audio engine is for you.
This project has been rewritten to be compatibile with .NET Standard and will no longer supporting initial framework target, which is .NET Framework 2.0
The project framework is targeted to .NET Standard to ensure maximum compatibility between .NET 4.7 and .NET Core projects. Moreover, this library itself written purely in managed C#, including encoders and decoders but still depend on native dependencies, such as OpenAL. See Dependencies for more details.
It is also required to configure the Build Configuration Platform (x86/x64) of target application to match the library configuration. Avoid using Any CPU platform, because this framework uses native external dependencies (e.g: the engine may fail when deciding which version of openal32.dll to use).
For more information about the audio API, click here.
You can check the sample program here.
This library uses several dependencies to perform specific operations. The dependencies are separated into 2 types: Internal and External:
-
External dependencies are included under
Dependenciesfolder and must be installed or shipped along with the application and located under same folder with the main of application. These dependencies may installed by default in certain Operating System. This folder also used to store Nuget packages (Dependencies/Packages). -
Internal dependencies are compiled along with this library during compilation, the source code is located under
Source\Genode.Audio\Dependencies
List of dependencies:
- Upgrade NVorbis dependency, now support .NET Standard natively
- CoreRT build is now supported
- Add support to play custom
SoundStreamimplementation - Fix source pooling system not generating native audio handle when playing / replaying
SoundChannel - Fix internal error when disposing invalid native audio handle
- Fix misconfigured access modifier of
SoundRecorderandSoundSystemAPI SoundRecordernow run on it's own thread
This release contains major breaking changes
- Complete Rewrite API
- Improved
SoundSystempool handling - Improved
SoundStreambuffers handling and processing - Encoder now expose
SampleInfoto determine sample meta data - Added
Pause(),Resume()andStop()to manipulate all playingSoundSourceinstances - Minor Bugfixes
This release contains minor breaking changes
- Reworked Sound Decoder
- Added Sound Encoder
- Added Sound Recorder
- Minor bugfix
- Added some options and features to AudioDevice
This release contains minor breaking changes
- Reworked
SoundSystemSoundSourcepooling - Reworked
SoundSourceaudio states - Removed threading mechanic from
MusicandSoundSystem - Renamed
SoundReadertoSoundDecoder - Updated small amounts of OpenAL functions and states
- Complete Rewrite of the API
- Added few Properties to
SoundBuffer:IsRelativeToListener,MinumumDistance,Attenuation,Position3DandPan - Reworked
Volumeproperty: readjusted value, now the value range is between 0 (Mute) and 100 (Full)
- Added Supports for 32bit PCM, 32bit Float and 24bit PCM Wav Samples
- Fixed various bugs when buffering the
SoundBufferobject - Fixed instancing new
Soundobject bugs SoundSystemnow use streaming algorithm instead load all data into buffer to play the sounds- Added Automated Update Cycle of
SoundSystem - Added Deferred audio streaming
- Integrated
XRAMandEFXExtension to theSoundSystem
- Added
ISoundStreamReaderto implement custom audio decoder - Fixed minor bugs on
SoundSystem.Update(double)cycle
- Initial public release
This is an open-sourced library licensed under the MIT License