swagat25 / Awesome-Audio-DSP

My curated list of audio DSP and plugin development resources

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Awesome Audio DSP

My curated list of audio DSP (digital signal processing) and plugin development resources. New resources may be added in the future. Feel free to open a PR if you wish!

Free Online Textbooks

Paid Textbooks

  • Designing Software Synthesizer Plug-Ins in C++ and Designing Audio Effect Plugins in C++ by Will Pirkle

    • One of the most highly recommended resources for entering the world of audio DSP.
    • Great beginner resource that teaches fundamental DSP concepts without going into too much mathematics.
    • The synthesizer one is better than the effect one imo, so go for that if you plan on only buying one.
    • Focuses on teaching concepts, not on writing performant code. His coding sytle is quite ineffecient.
    • There will also be newer edition in 2021 as well.
  • A Digital Signal Processing Primer by Kenneth Steiglitz

    • Great introduction to the mathematics of DSP.
    • Focuses more on mathematics and does not have many example effects.
  • DAFX: Digital Audio Effects by Udo Zölzer (Editor)

    • Explores good modern advanced effects. It's made by the DAFx annual scientific research conference.
    • MATLAB is used for its code examples, but GNU Octave could probably be used as well.
  • Digital Signal Processing: Concepts and Applications by Mulgrew, Grant & Thompson

    • Covers the basic principles of DSP in an easy-to-digest way without going into too much mathematics.
    • Focuses more on general DSP rather than audio DSP.
    • Uses MATLAB for its code examples, but GNU Octave could probably be used as well.

DSP Playgrounds

These can be a great start for learning and experimenting with DSP for those with little or no programming experience.

Codeless

  • Reaktor 6 by Native Instruments
    • A popular modular environment for creating DSP without code.
    • Has a sizeable community.
    • Full version is expensive at $200 USD at the time of this writing. Free version is limited in functionality.
    • Mac and Windows only. Although some have had success running it in Linux using Wine.
  • Alpha Forever
    • A Reaktor-like environment for creating DSP without code.
    • Commercial software that is $80 USD at the time of this writing. Although the free demo lets you use all the features, just without the ability to save.
    • Windows only.
  • The Grid by Bitwig Studio
    • A built-in Reaktor-like plugin environment tightly integrated with the highly modular Bitwig Studio DAW.
    • Highly intuitive to use.
    • Requires Bitwig Studio, which is a whopping $400 USD at the time of this writing. However, the demo version lets you use all the features, just without the ability to save.
    • Sound quality is not the greatest.
    • Runs on Linux, Mac, and Windows.
  • VCV Rack
    • A fully modular software environment that simulates the analogue Eurorack environment.
    • Popular with a sizeable community.
    • Arguably more "plugin"-like than actual DSP, but concepts still translate to DSP skills.
    • Free and open source.
    • Runs on Linux, Mac, and Windows.

Easy Code

  • CSound
    • A custom scripting language that is easy to learn and use.
    • Well-known and long standing in the industry.
    • Free and open-source.
  • py-modular
    • A modular and experimental programming environment with basic DSP routines.
    • Uses the very popular Python programming language, which is a great those who are learning to code.
    • Relatively new and experimental project.
    • Free and open-source.
  • FunDSP
    • A neat project for learning and prototyping DSP.
    • Uses the Rust programming language, so it is not for those who are beginners to coding. However, the library itself does not require advance Rust skills.
    • Relatively new and experimental project.
    • Free and open-source.

Mathematics

  • 3Blue1Brown - An excellent YouTube channel on complex algebra, linear algebra, calculus, and differential equations.
  • Paul's Online Math Notes - Excellent resources written and used by a professor at Lamar University.
  • Paul's Cheat Sheets - Cheat sheets for many common identities and formulas in algebra, trig, calculus, and laplace transformations. Because who can remeber all this stuff?
  • katjaas - Neat visual explanations of DSP mathematics and techniques.
  • This video on the Laplace Transform by Zach Star.
  • Khan Academy - Free college-level courses.

Algorithms & Technical Reading

  • Musicdsp.org - A collection of open source DSP algorithms by the community.
  • Cytomic Technical Papers - Excellent real-world useable filters and explanations by Cytomic. Use these as a better alternative to Biquad filters that behave much better while being modulated.
  • deip.pdf - High quality resampling and oversampling.
  • Freeverb - An open-source reverb algorithm.
  • DAFx - An archive of scientific papers and presentations given during an annual DSP research conference.
  • katjaas - Neat visual explanations of DSP mathematics and techniques.
  • Jatin Chowdhury - An active blog that explores cutting-edge DSP techniques.
  • The Design of the Roland Juno oscillators - A beautiful and simple explanation on the oscillators of this classic synth.
  • TimeStretch PDF - A PDF explaining the DSP of TimeStretch, a refinement of the famous PaulStretch time stretching effect.

Machine Learning

Machine learning has been gaining traction in the audio industry lately. I don't know much about the topic myself, but I'll link some potentially useful resources here if you're interested.

  • 3Blue1Brown - Neural Networks - An excellent short series of YouTube videos explaining the basics of how machine learning actually works.
  • SmartCore - An advanced and comprehensive machine learning library written in the Rust programming language.

Open Source Plugins & Software

Reading the source code of real-world projects can give valueable insight into different techniques and solutions people have come up with over the years.

Collections

  • Airwindows Plugins - Many, many good quality effects and experiments developed over many years. There are a ton of plugins here, so here is a list of community favorites:
  • zam-plugins - A suite of high quality mixing/mastering plugins. The limiter, tube amp, and multiband compressor are particularly excellent.
  • LSP Plugins - Another collection of high quality mixing/mastering effects.
  • sjaehn - Several cool MIDI based slicing/glitching effects and synthesizers.
  • x42-plugins - A collection of high quality effects and visualizers. Some plugins are also sold as a commercial product. The compressor is particularly excellent.
  • EQ10Q - A suite of plugins containing a 10-band parametric equalizer, gate, compressor, bass enhancer, and mid-side encoders.
  • Shiru Plugins - A suite of old video-game sound chips synths and effects.
  • DISTRHO Plugin Framework - A bunch more open-source plugins are listed here.
  • lkjb plugins - Additional plugins made by the creator of Luftikus.

Synths

  • Vital - An incredibly powerful and high quality modern synthesizer. Rivals that of Xfer Serum and NI Massive.
  • Helm - High-quality modern monophonic synthesizer. The older sibling to Vital. The oscillators are not stereo though.
  • Surge - Feature-rich hybrid synthesizer that was once sold as a commercial product.
  • Dexed - Synthesizer closely modelled after the Yamaha DX7.
  • ZynAddSubFX - Feature-rich additive synthesizer with a great clean sound. Also sold as a commercial product.
  • Odin 2 - Modern analogue-modeled hybrid synthesizer.
  • Geonkick - Advanced drum synthesizer.
  • ADLplug - Emulation of FM-synthesizers found in some classic game consoles.
  • Ninjas 2 - Sample slicer and player.
  • Mika Micro - A nice and simple synthesizer with a clean design.
  • Synth2 - A recreation of the classic Synth1 virtual synth. (Still a work in progress).
  • Sfizz - A sampler that plays SFZ files. (SFZ is like SoundFonts but with more features).
  • Bespoke Synth - A very modular synthesizer with support for complex routing, modulation, and sequencing. It can even host VST plugins, blurring the lines between synth and DAW.

Audio FX

  • Wolf Shaper - Good quality waveshaper with support for unlimited nodes.
  • Mverb - Nice-sounding plate reverb.
  • Dragonfly Reverb - Algorithmic reverb based on Freeverb.
  • CloudReverb - Beautiful shimmering reverb based on the CloudSeed plugin by Valdemar Erlingsson. I choose this over the original as that uses a Windows-only C# platform for its GUI.
  • Luftikus - Good quality analogue modeled equalizer.
  • Fogpad - Reverb plugin where reflections can be frozen, filtered, pitch-shifted, and mangled.
  • Misstortion - Good quality hard/soft clipper.
  • Cocoa Delay - A nice delay plugin with ducking, saturation, filtering, and pitching features.
  • Flutterbird - Simple multi-lfo than modulates pitch and volume, creating a "fluttering" effect.
  • DelayArchitect - A feature-rich delay designer plugin.
  • TimeStretch - A refinement of the famous PaulStretch time stretching effect. Includes a PDF explaining the DSP.

MIDI FX

  • Helio Workstation - A very modern and feature-rich sequencer.
  • QMidiArp - Advanced arpeggiator, sequencer, and MIDI LFO.
  • Stochas - An advanced probabilistic polyrythmic sequencer. Made by the same team behind the Surge synthesizer.

Meters & Visualizers

  • Spectacle - Modern real-time spectrum analyzer plugin.
  • Wolf Spectrum - Real-time heat-map spectrum analyzer plugin.
  • EasySSP - Real-time spectrum analyzer and stereo analyzer plugin.
  • LUFS Meter - Real-time loudness meter with support for several international loudness standards.

DAWs & Hosts

  • Meadowlark - Definitely biased here since this is my main project that I work on full-time. It's still in its very early stages, but check it out if you're interested in contributing! :)
  • Ardour - Feature-rich DAW. Focuses more on recorded music production over electronic music production.
  • LMMS - Feature-rich DAW focused on electronic music production. Contains many built-in synths and effects.
  • Audacity - Popular multi-track audio editor. There is also a fully-libre open source fork called Tenacity.
  • Carla - Cross platform plugin host with support for many plugin formats.
  • Bespoke Synth - A very modular synthesizer with support for complex routing, modulation, and sequencing. It can even host VST plugins, blurring the lines between synth and DAW.
  • termdaw - A neat little DAW experiment that uses a terminal as its interface instead of a GUI.

Musical Notation

  • MuseScore - A popular and mature open-source sheet music editor.
  • composing.studio - An experimental open-source web app that allows you to collaborate on editing sheet music.

Sound Design, Arrangement, & Mixing

While this is not strictly development related, knowing how plugins are actually used can give valuable insight.

  • Mixing Secrets for the Small Studio - A great beginner resource on mixing fundamentals.
  • SeamlessR - This guy is a fantastic teacher and really knows his stuff.
  • How to Hear Compression - A brilliant video that teaches how to "hear" compressors from an artistic point of view, rather than a technical one.
  • Au5 - A beast legend. Need I say more?
  • Virtual Riot - Another beast legend.
  • Zircon - An underrated artist, and I'm personally a huge fan of his more organic, jazzy breakbeat style. Great if you're tired of loud and obnoxious "dubstep" sound design and production.
  • Nosia - He and another cutting edge sound designer have a tutorial series on their Patreon.
  • Mr. Bill - This guy has a lot of good tutorials on his channel.
  • Nigel Good - This guy makes sounds that are so clean.
  • Frequent - Good sound design & arrangment tutorials.
  • Crow - Good tutorials on sound design and mixing.

Software Optimization

Math Tools

  • Desmos - Free online graphing calculator.
  • Wolfram Alpha - A helpful math partner.
  • Symbolab - Another helpful math partner.
  • GNU Octave - An open-source alternative to MATLAB. There is also an online version of GNU Octave available.
  • Curcuit JS - A cool little circuit simulation tool.
  • Russell - A collection of tools that assist in the development of scientific computations (and by extension audio DSP). It includes numerical methods and solvers for differential equations, tools for statistical analysis, and other linear algebra tools. It is written in the Rust programming lanugage.

System Tools

  • MrsWatson - Command-line audio plugin host with support for printing to the terminal from your DSP code.
  • Carla - System-wide virtual audio and MIDI patching software, using Jack as the backend. Available as a standalone application or a VST/LV2 plugin.
  • Jack - Cross-platform audio driver with support for system-wide patching.
  • Cadence - A suite of tools for configuring, monitoring, and controlling system-wide audio in Linux (includes Carla).
  • Ardour - Open-source DAW with useful plugin analysis tools.
  • Bertom EQ Curve Analyzer - Analyze the frequency and phase response of any plugin.
  • pluginval - Cross-platform open-source plugin validation tool made by the company Tracktion.

Plugin Development Frameworks

  • Please note that you must have a licensing agreement with Steinberg to distribute any VST2 and any non-GPLv3 VST3 plugins as per Steinberg's VST3 License. If you don't already have a VST2 license, you're out of luck since Steinberg doesn't support it anymore (yeah it stinks). Target VST3 instead in that case.

RustAudio Framework

  • Full-stack and modular framework in Rust (currently a WIP and not fully-production ready yet for anything but VST2 plugins). I'm personally biased towards this as one of its creators.
  • Fully open-source under the permissive MIT or Apache2 license.
  • Plugin FFI bindings
    • vst-rs - Provides nice bindings to the VST2 api.
      • Does not contain a GUI framework, but other frameworks can be attached to provide the GUI.
      • Targets Mac, Windows, and Linux platforms.
    • baseplug - Provides an abstraction-layer over several different plugin formats, and simplifies parameter management.
      • Does not contain a GUI framework, but other frameworks can be attached to provide the GUI.
      • Currently only targets the VST2 plugin format. VST3, AU, LV2, and JACK targets are currently planned.
      • Targets Mac, Windows, and Linux platforms.
  • baseview - Provides windowing and input events for plugins / standalone applications.
    • Targets Mac, Windows, and Linux.
  • GUI frameworks
  • Full-stack framework with GUI in C++.
  • Fully open-source using a permissive license.
  • Targets LADSPA, DSSI, LV2, VST2, and Jack plugin formats.
  • Targets Mac, Windows, and Linux platforms.
  • Full-stack framework with GUI in te D programming language.
  • Fully open-source using a permissive license.
  • The GUI framework has fancy physically-modeled rendering inspired by game engines.
  • Targets VST2, VST3, AUv2, AAX, and LV2 plugin formats.
  • Targets Mac, Windows, Linux, and Raspberry Pi platforms.
  • Used by several commercial plugins.
  • Full-stack framework with GUI in C++.
  • Open source, but some of its modules require a hefty commercial license to distribute any non-GPLv3 plugins.
  • Targets VST2, VST3, AUv2, AUv3, RTAS, and AAX plugin formats.
  • Targets Mac, Windows, Linux, iOS, Android, and Raspberry Pi platforms.
  • Well known in the industry, and many commercial plugins are built with it.
  • Full-stack framework in C++ with GUI. It is built on top of JUCE.
  • Same licensing as JUCE since it's built on top of it.
  • Targeted formats and platforms are the same as JUCE.
  • Made and used by the commercial company Tracktion.
  • Full-stack framework in C++ with GUI.
  • Fully open-source using a permissive license.
  • Targets VST2, VST3, AUv2, AUv3, AAX and the Web Audio Module (WAM) plugin formats.
  • Targets Mac, Windows, iOS, and Web. It does not target Linux, so I'm personally not a fan of this one.

Rust Crates

  • baseplug - Create VST plugins in Rust. (GUI and other plugin formats are still a work in progress.)
  • basedrop - Memory management tools for interfacing with realtime threads.
  • simdeez - Write generic SIMD code across an array of architectures.
  • FunDSP - An audio DSP library with a nifty clean syntax.

Rust Resources

Forums

More Lists

Here I'll link curated lists that others have made.

About

My curated list of audio DSP and plugin development resources

License:The Unlicense