Wayverb
|
Hybrid waveguide and ray-tracing room acoustic simulator with GPU acceleration.
This project contains a library for offline room-acoustics simulations, along with a graphical app which can be used to set-up and run these simulations. The app produces room impulse responses, which can be used with convolution reverbs to create realistic auralisations of virtual spaces. Simulated room impulse responses may be particularly useful for architects, sound-designers, and musicians.
There are several common methods for simulating room acoustics, which can largely be subdivided into two main categories:
As the strengths and weaknesses of the two methods balance one-another out, it makes sense to combine both methods, so that wave-modelling is used to simulate low-frequency output, and geometric methods are used to generate high-frequency content.
The approach of this library is to use:
You'll need a 3D model of the space. This model must be solid and watertight, without holes or no-thickness planes. When the simulation is run, the waveguide mesh setup process will attempt to work out whether each node is inside or outside the space, and it will not be able to do so if the model does not have a well-defined inside and outside.
To ensure that your model is valid, you can:
If the model is not valid, you can debug it using the 'Solid Inspector' plugin.
These instructions are taken from the readme for ParallelFDTD, which uses a similar (but not idential) technique to Wayverb for setting up a waveguide mesh.
Wayverb interprets the units used in the model file as metres. Some exporters (like the Sketchup .dxf
exporter) silently change the scale of the model during export. For best results, it is recommended to export to .obj
wherever possible. The following dialog shows optimum settings for the Sketchup Object exporter.
To run the program you will need:
While this project might work on a mac with integrated graphics, ideally you should use a recent mac with a discrete graphics card. You could be waiting a long time otherwise!
This project has been developed and tested on Mac OS 10.11.6, on a Mac with an AMD GPU. It doesn't have any known bugs on this platform.
Some testing has been carried out on Mac OS 10.10, using an Nvidia GPU. On this platform there were reasonably consistent crashes within OpenCL framework code. These crashes are difficult to track down and have not been fixed, as the author has been unable to secure extended access to a machine with this Nvidia/10.10 configuration.
Some bugs are to be expected: if you find a bug, please file it using the issues tab on the Github repository.
You will need:
Open wayverb/Builds/MacOS/wayverb.xcodeproj
and build from there. All dependencies should get downloaded and built automatically. The initial build will be really slow, due to downloading and compiling a lot of libraries. This is normal.
Unfortunately, some of the dependencies have their own dependencies. If building fails, you may also need to install the following:
If you have Homebrew installed, then you can grab everything you might need by running this command:
brew install cmake autoconf autogen automake libtool pkg-config
combined
library written with JUCEPlease see the LICENSE
file for details.
Software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other libility, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.