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!
-
The Scientist and Engineer's Guide to Digital Signal Processing
by Steven W. Smith, Ph.D.- A common recommendation from many folks.
- Focuses on DSP in general, not just audio DSP.
-
Julius Orion Smith III Collection
- A great collection of books and resources by Julius Orion Smith III.
- Very comprehensive, and covers many topics on the mathematics and applications of audio DSP. Good for getting a solid foundation.
- Contains code examples in C and MatLab (although
GNU Octave
can be used as well). - Relatively heavy on mathematics.
-
The Art of VA Filter Design
by Vadim Zavalishin- Teaches good techniques for adapting analogue designs into the digital realm.
- Relatively heavy on mathematics.
-
The Theory and Technique of Electronic Music
by Miller Puckette- Focuses more on musical DSP.
- Teaches core concepts of many common audio effects and synthesizers.
- Relatively heavy on mathematics.
-
Designing Software Synthesizer Plug-Ins in C++
andDesigning 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.
- Explores good modern advanced effects. It's made by the
-
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.
3Blue1Brown
- An excellent YouTube channel on complex algebra, linear algebra, calculus, and differential equations.- His videos on
Euler's Formula
and theFourier Transform
are particularly excellent.
- His videos on
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.
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.
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.
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:LSP Plugins
- A collection of high quality mixing effects.sjaehn
- Several cool MIDI based slicing/glitching effects and synthesizers.x42-plugins
- A collection of good quality effects and visualizers. Some plugins are also sold as a commercial product.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 ofLuftikus
.
Vital
- An incredibly powerful and high quality modern synthesizer. Rivals that of Xfer Serum and NI Massive.Helm
- High-quality modern monophonic synthesizer. The younger brother 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).
Wolf Shaper
- Good quality waveshaper with support for unlimited nodes.Mverb
- Nice-sounding plate reverb.Dragonfly Reverb
- Algorithmic reverb based onFreeverb
.CloudReverb
- Beautiful shimmering reverb based on theCloudSeed
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.
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 theSurge
synthesizer.
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.
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.Carla
- Cross platform plugin host with support for many plugin formats.
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.
Fast-DSP-Approximations
- My own list of public-domain fast approximations of various expensive calculations.Intel Intrinsics Guide
- x86 processor instrinsicsSoftware Optimization Resources
- A popular resource on optimizing for x86 based architectures.Agner Fog's Instruction Tables
- A useful table that lists the latency and throughput performance of various x86 instructions.Real-time audio programming 101
- Tips on writing real-time code.The Rust Performance Book
- Tips on optimizing code in Rust.- Follow these rules:
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 anonline version of GNU Octave
available.Signal package
- Signal processing tools forGNU Octave
, including filtering, windowing and display functions.
Curcuit JS
- A cool little circuit simulation tool.
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, usingJack
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 (includesCarla
).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.
- 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.
- 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
- Iced
iced_baseview
- Provides theiced
GUI framework on top ofbaseview
.- Targets Mac, Windows, and Linux.
iced_audio
- An extension to theiced
GUI framework that provides audio-specific widgets like knobs and sliders.iced-baseplug-examples
- Example of full-stack plugins built using thebaseplug
,iced_baseview
, andiced_audio
modules.
- Tuix
tuix
- Experimental/WIP GUI library with an officialbaseview
backend.tuix_audio_synth
- Example of how to build audio widgets usingtuix
.tuix_baseview_test_vst2
- Example of a full-stack plugin built using thevst-rs
andtuix
modules.
- Egui
egui-baseview
- Provides theegui
GUI framework on top ofbaseview
.egui_baseview_test_vst2
- Example of a full-stack plugin built using thevst-rs
andegui-baseview
modules.
- Imgui
imgui-rs
- Rust bindings to the popularDear ImGui
C framework.imgui-baseview
- Provides theimgui-rs
GUI framework on top ofbaseview
.imgui_baseview_test_vst2
- Example of a full-stack plugin built using thevst-rs
andimgui-baseview
modules.imgui-compressor
- An experimental/WIP compressor plugin built using thevst-rs
andimgui-baseview
modules.
- Iced
- 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.
baseplug
- Create VST plugins in Rust. (GUI and other plugin formats are still a work in progress.)simdeez
- Write generic SIMD code across an array of architectures.FunDSP
- An audio DSP library with a nifty clean syntax.
Learn Rust the Dangerous Way
- Tips on writing low-level Rust code from a C background.How-to Optimize Rust Programs on Linux
- How-to guide on profiling Rust code on Linux.The Rust Performance Book
- Tips on optimizing code in Rust.
Rust Audio Discord Server
- A community of passionate Rust audio programmers.The Audio Programmer Discord Server
- Another Discord community for audio programmers using any programming languages, not just Rust.Rust Community Discord Server
- Not strictly DSP related, but the people there can help you with any Rust questions.KVR DSP Forum
- A large community of plugin developers.
Here I'll link curated lists that others have made.
dsp-learning
by crsaraccoAwesome Rust Audio
by kfrncsUseful Links for DSP and Audio Programming
from rust.audio