A set of core libraries for useful DSP related classes that are used by multiple White Elephant Audio VSTs and Audio Units.
This is a headers only library, to use the DSP classes in your own projects add the include path:
<your WE-Core directory>/WECore
.
The naming convention is that each class is prefixed with the product it was developed for.
- RichterLFO and RichterMOD - substantial functionality with tempo sync, and multiple wave types and parameters
- CarveNoiseFilter - a simple filter to remove noise at the extremes of human hearing
- SongbirdFormantFilter - Contains multiple SongbirdBandPassFilters, designed to create vowel sounds
- SongbirdFilterModule - Contains two SongbirdFormantFilters which can be blended between, with multiple supported vowel sounds built in
- TPTSVFilter - Topology preserving filter, configurable as high pass, low pass, or peak
- CarveDSPUnit - A waveshaping distortion module with multiple wave shapes, pre and post gain control, and a "tweak" control which morphs the selected wave shape
- MONSTRCrossover - A crossover filter made of several MONSTRBand units. Uses the MONSTRBand units to provide multiband stereo width control
Documentation is available at: https://jd-13.github.io/WE-Core/
Some classes within this library require:
A Collection of Useful C++ Classes for Digital Signal Processing: https://github.com/vinniefalco/DSPFilters
LookAndFeel classes are for building UIs using the JUCE library: https://www.juce.com/
cURL (for the experimental auto update functionality): https://curl.haxx.se/libcurl/
Each DSP module has its own set of tests, found under the WECore
directory. The file
CMakeLists.txt
can be used to create executable binarys which run the tests. This is done as
follows:
export WECORE_HOME=<path to your WECore>
export WECORE_SRC=$WECORE_HOME/WECore
cd $WECORE_HOME
mkdir build
cd build
cmake ..
make
This produces the binaries:
WECoreTest
- Contains the standard set of unit testsWECoreTestPerf
- Contains unit tests for measuring performance
Docker containers are available on Docker hub for clang and gcc which are able to build and run the tests for this project. They are available at the tags:
- jackd13/audioplugins:clang10
- jackd13/audioplugins:gcc7
To build a container locally and push to Docker hub (using the clang example):
cd DockerFiles/clang10
docker build --tag audioplugins:clang10 .
docker push <user id>/audioplugins:clang10