Raveler is a Wwise plugin that runs RAVE models, enabling real-time timbre transfer via neural audio synthesis in a game audio setting.
Much of the plugin implementation is based on the RAVE VST project.
Demo video: https://youtu.be/5RfZWJp6-i4
Simply add a Raveler plugin instance anywhere in your effects chain, specify a model to load, and start playing around!
The plugin consists of 4 main categories of parameters:
- Model Performance
- Latent Noise: Amount of random noise/jitter to add to all latent dimensions
- Use Prior: Whether or not to use the prior, if available in the model
- Prior Temperature: The "temperature" to use when sampling the prior (only applies if we're using the prior)
- Output Width: Amount of sampling differences between output channels
- Output Dry/Wet: How much of the input (dry) vs. output (wet) signal to use for final audio output
- Latent Dimensions (#1-8)
- Bias: Which direction (and how much) to bias a given latent dimension in
- Scale: How much to weigh a given latent dimension
- Buffer Settings
- Latency Mode: Size of buffer (in samples) to use for model inference -- higher values result in higher audio quality but more latency
- Dry/Wet Latency Compensation: How long (in samples) to delay the dry signal by to compensate for latency
- Model Loading
- Model File Path: Path to the RAVE model we wish to use
All the parameters in the Model Performance and Latent Dimensions categories can be bound to RTPCs.
(TODO: Set this up in CMake or something similar)
-
Download and add library dependencies:
- Download LibTorch 1.11.0 from https://pytorch.org/ and place the
libtorch
directory inLibraries/torch
(so that the full path to the library isLibraries/torch/libtorch
) - Similarly download and add ONNX 1.14.1 to
Libraries/onnx
(so the full path to the library isLibraries/onnx/onnxruntime
) - Download BS::thread_pool 3.5.0 and add the BS_thread_pool.hpp header to
Libraries/bs_thread_pool
(so that the full path to the header isLibraries/bs_thread_pool/BS_thread_pool.hpp
)
- Download LibTorch 1.11.0 from https://pytorch.org/ and place the
-
Run Wwise premake step. Below is a Windows example (you can substitute 2022.1.5.8242 for your version of Wwise):
python "C:\Program Files (x86)\Audiokinetic\Wwise 2022.1.5.8242\Scripts\Build\Plugins\wp.py" premake Authoring
python "C:\Program Files (x86)\Audiokinetic\Wwise 2022.1.5.8242\Scripts\Build\Plugins\wp.py" premake Windows_vc160
-
Apply settings to the generated solutions (following the above example, the solutions would be RaveWwise_Authoring_Windows_vc160.sln and RaveWwise_Windows_vc160.sln): (TODO: Add these to PremakePlugin.lua)
- Apply general settings to the entire solution:
- Retarget solution > Retarget both RaveWwise and RaveWwiseFX projects to latest Windows SDK version (e.g. 10.0)
- Apply project-specific settings to the RaveWwiseFX project:
- Properties > General > C++ Language Standard:
/std:c++17
(C++ 17 standard)- This is required for BS::thread_pool
- (optional, for debugging) Properties > C/C++ > Optimization >
Disabled (/Od)
- C/C++ > All Options > Additional Options:
/utf-8 /GR %(AdditionalOptions)
/GR
enables run-time type information (used forstd::dynamic_pointer_cast()
intorch/nn/cloneable.h
)
- Properties > General > C++ Language Standard:
- Apply general settings to the entire solution:
-
Build for desired platforms, either using Visual Studio or wp.py directly. Below is an example for authoring and Windows (you can substitute 2022.1.5.8242 for your version of Wwise):
python "C:\Program Files (x86)\Audiokinetic\Wwise 2022.1.5.8242\Scripts\Build\Plugins\wp.py" build Authoring -c Release -x x64 -t vc160
python "C:\Program Files (x86)\Audiokinetic\Wwise 2022.1.5.8242\Scripts\Build\Plugins\wp.py" build Windows_vc160 -c Release -x x64
- Copy library files for authoring, substituting 2022.1.5.8242 with your version of Wwise:
python "C:\Program Files (x86)\Audiokinetic\Wwise 2022.1.5.8242\Scripts\Build\Plugins\wp.py" package Authoring --version=2022.1.5.8242 --additional-artifacts-file=additional_artifacts.json -copy-artifacts
- Package for desired target platforms. Below is a Windows example (you can substitute 2022.1.5.8242 for your version of Wwise):
# Package
python "C:\Program Files (x86)\Audiokinetic\Wwise 2022.1.5.8242\Scripts\Build\Plugins\wp.py" package Common --version=2022.1.5.8242
python "C:\Program Files (x86)\Audiokinetic\Wwise 2022.1.5.8242\Scripts\Build\Plugins\wp.py" package Authoring --version=2022.1.5.8242 --additional-artifacts-file=additional_artifacts.json
python "C:\Program Files (x86)\Audiokinetic\Wwise 2022.1.5.8242\Scripts\Build\Plugins\wp.py" package Windows_vc160 --version=2022.1.5.8242 --additional-artifacts-file=additional_artifacts.json
# Bundle
python "C:\Program Files (x86)\Audiokinetic\Wwise 2022.1.5.8242\Scripts\Build\Plugins\wp.py" generate-bundle --version=2022.1.5.8242
- Install from the Audiokinetic Launcher: https://www.audiokinetic.com/library/wwise_launcher/?source=InstallGuide&id=plugins
This work is licensed under CC BY-NC 4.0, except for Wwise plugin scaffolding portions, which are licensed under Apache 2.0.