WaapiCS
A C# abstraction layer for Audiokinetic Wwise's WAAPI
Install / Use
/learn @adamtcroft/WaapiCSREADME
WaapiCS
WaapiCS is a C# abstraction layer (or "wrapper") for Audiokinetic Wwise's WAAPI. It is intended to make WAAPI tremendously easier to use in C# by removing the difficulties of WAMP and JSON from the end user.
WaapiCS is made available to you under the MIT License. This means it is free, open source, customizable, and available for commercial use/distribution.
The only legal requirement is that you provide attribution (give me credit) in your game.
Please note that WaapiCS is still under active development. Known issues (such as calls not working) can be found under the "Issues" tab.
Code samples can be found within the solution under Sample Project
Prerequisites
To use WaapiCS, you must have at least a beginner's knowledge of C#.
WaapiCS was written using Visual Studio Community 2017. You can use it with other programming environments, but it (and the example code) work best with Visual Studio 2017.
"Installing" WaapiCS
To "install" and use WaapiCS, download the repository using the big green "Clone or Download" button in the upper right hand corner.
Once the repository is on your machine, create a new project using Visual Studio 2017.
On the menu bar, then go to Project > Add Reference... then click the Browse... button in the lower right corner of the window that pops up.
Navigate to the directory where you saved WaapiCS and go to WaapiCS\bin\Release and add WaapiCS.dll
Then you can begin using WaapiCS in your code!
Using WaapiCS
The vast majority of WaapiCS's user-facing layer is made of "static calls" - meaning you don't create any objects like you normally would in C#. A few commands stray from this convention, but not many.
I made a very large attempt to document the code (documentation comes with the respository download), and make the code itself mimic Wwise's Authoring API itself.
For example, in WAAPI a call exists for ak.wwise.core.getInfo, but you must write a lot of additional code to make it work. In WaapiCS, this is simplified to Dictionary<string,object> results = ak.wwise.core.GetInfo();
Please refer to the included API documentation for how to use WaapiCS. Where custom Wwise objects are referenced (such as object types or properties) you will need to refer to the original Wwise Authoring API reference.
In some places you will need to use specific Wwise-related custom values. These can be found under the WwiseValues class, if available, by including using WaapiCS.CustomValues; at the top of your code.
For Programmers
WaapiCS is built in two layers - WaapiCS and WaapiCS.Communication.
WaapiCS.Communication is the "lower" layer code, intended to communicate directly with Wwise via a packet system. WaapiCS.Communication houses a "packet" object, which is then passed to Wwise in JSON form, returned back, and deserialized back into C#.
WaapiCS is the "higher" user-facing layer intended to make code writing easier for audio implementers and technical sound designers. In many cases, it will not be ideal for your studio to use this layer in its current state. Some of you will want to build custom objects to reflect the Wwwise hierarchy, for example.
I have intentionally separated WaapiCS.Communication and WaapiCS layers so that you can easily customize or completely re-write the user facing layer without causing issues with the layer which directly communicates with Wwise.
Please feel free to make this your own, and contact me with any requests, suggestions, or updates.
If You Have Trouble
If you need additional assistance, please get in touch with me via email - me@adamtcroft.com
Related Skills
node-connect
351.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
