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.
- ModulationSource - provides a standard interface for classes which provide a modulation signal
- EffectsProcessor - provides a standard interface for classes which do audio processing on mono and stereo signals
- RichterLFO - substantial functionality with tempo sync, phase sync, and multiple wave types and parameters, can accept a ModulationSource to modulate its parameters
- AREnvelopeFollowerSquareLaw & AREnvelopeFollowerFullWave - two different attack/release envelope follower implementations
- 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
- MONSTRCrossover - A crossover filter made of several MONSTRBand units which can be provided with an EffectsProcessor to do any form of audio processing on that band
- CarveDSPUnit - A waveshaping distortion module with multiple wave shapes, pre and post gain control, and a "tweak" control which morphs the selected wave shape
- StereoWidthProcessor - Enables narrowing or widening of the stereo image
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