/libsnd

Digital Signal Processing Library and Audio Toolbox for the Modern Synthesist.

Primary LanguageC++GNU Lesser General Public License v3.0LGPL-3.0



Digital Signal Processing Library and Audio Toolbox for the Modern Synthesist.

Attention

This library is still under development!
Read the docs and check out the examples.

Currently looking for contributors / enthusiasts, if you have an idea, found a bug or have an amazing new feature you want to add, feel free to clone, edit and open a Pull Request.

Building

git clone https://github.com/everdrone/libsnd.git
cd libsnd

mkdir build
cd build
cmake ..
make install

Usage

// main.cc
#include <iostream>
#include <snd.h>

#define SAMPLE_RATE 44100

int main(int argc, char **argv) {
  snd::Sine<float> s(SAMPLE_RATE);
  s.setFrequency(440);

  for (int i = 0; i < 512; i++) {
    std::cout << s.tick() << std::endl;
  }

  return 0;
}
g++ main.cc -o a.out -lsnd

Features

  • Oscillators
    • Anti Aliased
      • Sine
      • Triangle
      • Sawtooth
      • Square
      • Spectral (Sine Bank)
  • Filters
    • Zero Delay Feedback
    • Bilinear
    • Biquad
    • Modular / Multiband
    • Comb
  • Multistage Waveshaper
  • Envelope Generators
    • Multistage Envelope Generator
    • Classic Dual Stage (AD) Envelope Generator
    • "Ducking" Curve Generator
  • Envelope Follower
  • Interpolation
  • Denormal canceling
  • LFOs
    • Sine
    • Parabolic
    • Triangle
    • Sawtooth
    • Square
    • Random
    • Perlin
  • Effects
    • Delay
      • Interpolated
      • Non-Interpolated
    • Reverb
      • Spring
      • Convolution
    • Flanger
    • Phaser
    • Chorus
    • Stereo Panner
    • Ring Modulator
    • Bit Crusher
    • Compressor
    • Driver / Saturator
  • Utilities
    • LR to MS
    • MS to LR
    • Pitch (MIDI) to Frequency (Hz)
    • Frequency (Hz) to Pitch (MIDI)
    • Amplitude Factor to dB
    • dB to Amplitude Factor
    • Linear to Exponential
    • Linear to Logarithmic