Complete Nim bindings for the DaisySP audio DSP library - 73 modules for synthesis, effects, filters, and more.
✅ Complete Coverage: All 73 DaisySP modules wrapped
✅ License Separation: LGPL and MIT modules in separate files
✅ Zero Overhead: Direct C++ function calls
✅ Type Safe: Nim's type system with C++ interop
✅ Easy to Use: Simple, idiomatic Nim API
✅ Well Documented: Examples, quick reference, and getting started guide
import daisysp_mit # MIT-licensed modules only
# or: import daisysp_lgpl # LGPL-licensed modules only
# or: import daisysp # All modules (LGPL + MIT)
# Create an oscillator
var osc: Oscillator
osc.init(48000.0)
osc.setFreq(440.0)
osc.setWaveform(WAVE_POLYBLEP_SAW)
# Process audio
let sample = osc.process()- Clone with DaisySP submodule:
git clone --recursive https://github.com/Brokezawa/daisysp_nim
cd daisysp_nim- Compile examples:
nim cpp -r example.nim # LGPL modules test
nim cpp -r test_mit.nim # MIT modules test
nim cpp -r comprehensive_example.nim # All modules test- Control: Line
- Dynamics: Balance, Compressor
- Effects: Bitcrush, Fold, ReverbSc
- Filters: AllPass, Atone, Biquad, Comb, Mode, MoogLadder, NlFilt, Tone
- Physical Modeling: Pluck, PolyPluck
- Synthesis: BlOsc
- Utility: Jitter, Port
- Control: AdEnv, Adsr, Phasor
- Drums: AnalogBassDrum, AnalogSnareDrum, HiHat, SynthBassDrum, SyntheticSnareDrum
- Dynamics: CrossFade, Limiter
- Effects: Autowah, Chorus, Decimator, Flanger, Overdrive, PitchShifter, Phaser, SampleRateReducer, Tremolo, Wavefolder
- Filters: Fir, LadderFilter, OnePole, Svf, Soap
- Noise: ClockedNoise, Dust, FractalNoise, Grainlet, Particle, WhiteNoise
- Physical Modeling: Drip, KarplusString, ModalVoice, Resonator, StringVoice
- Sampling: GranularPlayer
- Synthesis: Fm2, FormantOsc, HarmonicOsc, Oscillator, OscillatorBank, VariableSawOsc, VariableShapeOsc, Vosim, ZOscillator
- Utility: DcBlock, DelayLineFloat, Looper, Metro, MayTrig, SampleHold, SmoothRandom
Choose your import based on license needs:
# MIT-only (most permissive)
import daisysp_mit
# LGPL-only (if you need specific LGPL modules)
import daisysp_lgpl
# All modules (your project becomes LGPL)
import daisyspSee LICENSE.md for details.
Use nim cpp (not nim c) to compile:
nim cpp -r your_project.nimThe daisysp.nim.cfg file automatically configures C++14 compilation.
- GETTING_STARTED.md - 5-minute tutorial
- QUICKREF.md - API quick reference
- LICENSE.md - License information
example.nim- Basic LGPL modulestest_mit.nim- MIT modules testadvanced_example.nim- Buffer processingcomprehensive_example.nim- All 73 modules
- Nim 1.6.0+
- C++14 compatible compiler (GCC, Clang, or MSVC)
- DaisySP source code (included as submodule)
Contributions welcome! Please ensure:
- Code compiles with
nim cpp - Examples run successfully
- License attribution is maintained
- DaisySP: Electrosmith (MIT / LGPL-2.1)
- Nim Wrapper: Community contribution
Happy audio processing! 🎵