ofxPDSP is an openFrameworks addon for audio synthesis and generative music. It is based on those design principles:
- Native c++, made to be tightly integrated into c++ projects.
- Class design mimics modular synthesizers, where inputs and outputs are patched with the >> operator.
- Sample accurate timing for the included sequencer.
- Thread-safe, lock-free methods for metering and control.
- Lazy evaluated DSPs. DSP units are recursively processed in chunks big as the audio buffer size, DSPs switch between routines running at audio rate (process every sample) and control rate (once every buffer) on the fly when the result is the same. DSPs are also coded using SIMD instructions when possible.
- Cross-platform code: works on Linux (x86/ARM), OSX, Windows, iOS, Android (only on ARM processors with NEON instructions).
It includes a good selection of modules ready to be used, like antialiasied oscillators and VA filters, an FFT convolver, analog-sounding envelopes, a delay, a noise generator, a sampler and a graincloud module, biquad equalizers (normal and 2x oversampled), modules for dynamic processing, units for oversampling/downsampling and a framework for writing and sequencing generative music. On top of that some other classes that uses openFrameworks for adding midi and OSC in/out, serial output, sequencer monitoring, waveform plotting and scopes, other audio addon wrapping and ofParameter-compatible control.
Here is the reference page for a selection of the most high level classes and function (probably you won't ever need more than that).
To learn how to use ofxPDSP also be sure to check out all the included examples, starting from the basics.
Check out the videos of some included examples:
Nicola Pisanti, MIT License 2016-2018.
For FFT the AudioFFT wrapper is used, Copyright (c) 2013 HiFi-LoFi.
For loading audio file on OSX libaudiodecoder was used, it is still included for legacy purposes but it will be removed in one of the next versions. Copyright (c) 2010-2012 Albert Santoni, Bill Good, RJ Ryan.