Awesome
<div align=center> <img width=15% src="https://raw.githubusercontent.com/electro-smith/daisysp/master/resources/assets/banner.png">DaisySP • A Powerful DSP Library in C++
</div>DaisySP is an open-source DSP (Digital Signal Processing) library that provides a comprehensive collection of modular components for creating audio software across various contexts, facilitating the development of high-quality and customizable audio applications.
📱 Applications
- Embedded hardware using the Daisy Audio Platform
- Audio plug-ins (VST, AU, JUCE)
- Mobile apps (iOS, Android)
- VCV Rack modules
✨ Features
- Control Signal Generators AD and ADSR Envelopes, Phasor
- Drum Synthesis Analog/Synth Bass/Snare Drum Models, HiHat
- Dynamics Processors Crossfade, Limiter
- Effects Processors: Phaser, Wavefolder, Decimate, Overdrive
- Filters: One pole Lowpass and Highpass, FIR, SOAP
- Noise Generators Clocked Noise, Dust, Fractal Noise, Particle Noise, Whitenoise
- Physical Modeling Synthesis Karplus Strong, Resonators, Modal Synthesis
- Sampling Engines Granular Player
- Synthesis Methods: Subtractive, Physical Modeling, FM
- Utilities: Math Functions, Signal Conditioning, Aleatoric Generators, Looper, DCBlocker
🚀 Getting Started
- Get the source:
git clone https://github.com/electro-smith/DaisySP
- Navigate to the DaisySP repo:
cd DaisySP
- Build the library:
make
- Make some noise with the example programs!
👨💻 Code Example
#include "daisysp.h"
static daisysp::OnePole flt;
static daisysp::Oscillator osc, lfo;
float saw, freq, output;
for(size_t i = 0; i < size; i++)
{
freq = lfo.Process();
saw = osc.Process();
flt.SetFrequency(freq);
output = flt.Process(saw);
out[i] = output;
}
❤️ Community
Connect with other users and developers:
- Chat on the Daisy Discord Server
- Join the Daisy Forum
🏆 Contributors
Thank you to all of the awesome people who have given their time and effort to this project!
<br> <a href="https://github.com/electro-smith/DaisySP/graphs/contributors"> <img src="https://contrib.rocks/image?repo=electro-smith/DaisySP" /> </a>Made with contrib.rocks.
✍️ Contributing
Here are some ways that you can get involved:
- Proof read the documentation and suggest improvements
- Test existing functionality and make issues
- Make new DSP modules. See issues labeled "feature"
- Port existing DSP modules from other open source projects (MIT). See issues labeled "port"
- Fix problems with existing modules. See issues labeled "bug" and/or "polish"
Before working on code, please check out our Style Guide.
⚠️ License
DaisySP uses the MIT license.
It can be used in both closed source and commercial projects, and does not provide a warranty of any kind.
For the full license, read the LICENSE file in the root directory.