Skip to content

Latest commit

 

History

History
90 lines (75 loc) · 6.77 KB

CODE_LIBRARIES.md

File metadata and controls

90 lines (75 loc) · 6.77 KB

Code Libraries

A list of useful libraries for audio software.

DSP Libraries

A list of ready-made libraries for DSP. These can be a great resource for learning about various DSP algorithms and how they are implemented in code.

Please note, while using ready-made libraries can definitely help you achieve faster results, if you're serious about learning DSP then I don't recommend depending on them in the long term. Not only because it may be considered "cheat-y" by some, but the generic nature of these libraries makes it harder to experiment with adding your own tweaks and optimizations to give your plugins their own unique "character". DSP that is purpose-built for a single purpose will generally both sound better and perform better than a generic library that tries to cover all bases.

Also beware that some of these libraries have licenses attached to them, so make sure you are legally allowed to use them in your products.

  • Bad Circuit Modeling - Contains analogue models of non-ideal circuits.
  • CamillaDSP v2.0 - A tool to create audio processing pipelines for applications such as active crossovers or room correction.
  • chowdsp_wdf - A header only C++ library for implementing real-time Wave Digital Filter (WDF) circuit models.
  • DaisySP - A C++ DSP library that provides a comprehensive collection of modular components.
  • DSP Filters by vinniefalco - A collection of C++ classes for DSP.
  • DSP filters in C++ by dimtass - A collection of DSP biquad filters.
  • FunDSP - A Rust DSP crate with a unique and fun syntax.
  • HexoDSP - A comprehensive modular DSP and audio graph library also used by the HexoSynth synthesizer plugin.
  • juce_dsp - A set of DSP classes that are included with the JUCE library. There is also an introductory tutorial on using these libraries (as well as JUCE in general).
  • KFR - A collection of very fast DSP algorithms. Commercial use requires a paid license.
  • Maximilian - A comprehensive collection of DSP algorithms in C++. Also contains Javascript bindings.
  • Meadowlark Audio Filters - An incomplete collection of audio filters that was once planned for use within the internal plugins for my own Meadowlark project. Although because I don't really condone generic DSP libraries, my plugins will probably not actually reference this library. Rather I just keep this repository around as a reference.
  • mi-plaits-dsp - Native Rust port of the DSP code used by the Mutable Instruments Plaits Eurorack module.
  • Moog Ladder Filters - Contains different digital implementations of the classic 4-pole, 24 dB/octave analog filter.
  • Q - A DSP library that leverages features of modern C++.
  • signalo - A Rust DSP toolbox with focus on embedded environments.
  • SOUL-VA - A collection of virtual analog audio effects for the SOUL programming language.
  • SST Filters, SST Waveshapers, SST Oscillators, SST Effects, SST Basic Blocks - Various DSP algorithms used by the Surge Synthesizer Team
  • synfx-dsp - A comprehensive DSP library in Rust, used by the HexoSynth synthesizer plugin.
  • valib - A Rust library of reusable blocks for musical DSP.

Cross-platform System Audio I/O

  • CPAL
    • Rust only
    • Graceful error handling *
    • Linux, Mac, Windows, iOS, Android, and Emscripten (WebAssembly)
    • Apache 2.0 license
  • JUCE
    • C++ only
    • Native duplex audio support
    • Graceful error handling *
    • Linux, Mac, Windows, iOS, and Android
    • GPLv3 license if your application is GPLv3, otherwise requires a paid license
  • libsoundio
    • C, C++, and Rust (unsafe bindings via soundio-sys)
    • Graceful error handling *
    • Linux, Mac, and Windows
    • MIT license
  • PortAudio
    • C, C++, Go, Rust (via weresocool_portaudio), and Python (via PyAudio)
    • Native duplex audio support
    • Linux, Mac, and Windows
    • MIT license
  • RtAudio
    • C++, C, Go, Python, and Rust (via rtaudio-rs)
    • Native duplex audio support
    • Graceful error handling *
    • Linux, Mac, and Windows
    • MIT license

* By "graceful error handling", I mean the ability to gracefully deal with any errors encountered while the audio stream is running (i.e. a device was unplugged).

Cross-platform System MIDI I/O

File Decoding/Encoding

Miscellaneous

  • aubio - A library that can detect events in an audio signal.