Collection of C++ audio DSP components ⚡
neuron
is an open-source DSP (Digital Signal Processing) library that provides a wide-ranging suite of components for building audio software.
It can be used for a variety of applications, including:
- JUCE audio plugins
- Embedded hardware such as the Electrosmith Daisy (see Flora)
- VCV Rack modules
neuron
currently lacks wide support for features because it is in early stages, however the following are in its immediate roadmap:
- Dynamics
- Compressor
- Limiter
- Effects
- Chorus
- Delay
- Echo
- Flanger
- Phaser
- Reverb
- Saturation
- Wavefolding
- Filters
- LP/HP/BP Filter
- Ladder Filter
- Modulators
- ADSR Envelope Generator
- AHD Envelope Generator
- Envelope Follower
- Low-Frequency Oscillator
- Synthesis
- Amplitude Modulation
- Frequency Modulation
- Granular
- Phase Distortion
- Utilities
- Clock
- DC Block
- Delay Line
- Sampler
- Wavetable
Clone this repository:
git clone https://github.com/blackboxaudio/neuron
cd neuron/
Build the library:
make
#include "neuron.h"
// Create a DSP context (sample rate,
// number of channels, buffer size).
static Context context {
44100,
1,
128,
};
// Create an oscillator with an initial
// frequency of 440Hz.
static Oscillator osc(context, 440.0f);
// Write to the buffer with samples
// generated from the oscillator
for(size_t idx = 0; idx < 128; idx++) {
buffer[idx] = (float)osc.Generate();
}
Enable the NEO_PLUGIN_SUPPORT
compile option in CMake to include necessary bits for JUCE integration:
# Set option for neuron to enable plugin support (e.g. std::atomic)
set(NEO_PLUGIN_SUPPORT ON)
...