awesome-musicdsp

A curated list of my favourite music DSP and audio programming resources

GitHub

3k stars
118 watching
82 forks
last commit: about 1 month ago
Linked from 3 awesome lists

audioaudiounitdsppluginvstvst2vst3

More Awesome Music DSP* / Audio Plug-in/App Frameworks

iPlug2 Originally created by Cockos, iPlug is an awesome plug-in framework. For a long time, I was maintaining a , but over the last few years and I have reworked it into something new, with the imaginitive name: iPlug2. It's a massive improvement on the original version, adding support for GPU accelerated vector graphics, resizable high DPI UIs, iOS, WebViews, AUv3 and compiling to WebAudio/WASM, amongst many other things. iPlug2's syntax is super simple, for example, creating a parameter or a control in the UI is only a single line of C++ code
JUCE 6,516 15 days ago JUCE is an undeniably awesome C++ application/plug-in framework with audio roots. It boasts a vast amount of functionality for the development of music software, including support for almost all plug-in formats and platforms. JUCE is used widely in the music technology industry and it has excellent documentation, code standards, features and support. The JUCE team organise the which is one of the best conferences to attend if you like audio programming. What's more all the videos from all the ADCs so far are available
AudioKit AudioKit uses the Swift programming language. It's a high level DSP and UI toolkit for audio things. If you want to make apps for Apple's devices this is a great option, although if you want to do more low level, custom DSP, you will still have to do some C/C++
ASPiK This is a framework from , used in his books, which is based on the VST3 SDK and it's AU/AAX wrappers, along with VST GUI and its runtime UI editor. It includes a project creator and a lot of extra "nuts and bolts" code for plug-in development
DPF 648 27 days ago Distrho Plug-in Framework is a nice C++ plug-in framework by falkTX, supporting lots of Linux formats
Jamba A new framework built on top of the VST3SDK & VSTGUI, with some useful extra widgets and good CMake support
DPlug A plug-in framework using the D programming language, that has had a huge amount of work over many years. I haven't tried it, but I've decided to include it here in solidarity with the authors. As a fellow open-source framework developer, it's nice if people know about your work
Steinberg VST3 SDK 1,602 2 months ago The Steinberg VST3 SDK has been around for a long time, but recent versions start to add a lot of great features such as really good CMake support, Lots of documentation, and . Since Steinberg include wrappers for VST2, AUv2, AUv3 and AAX it is somewhat like a plug-in framework
CPLUG 113 3 months ago A smart new plug-in abstraction in C that targets VST3, AUv2, CLAP and Standalone formats on desktop. It's very new but a nice clean and minimal way to target multiple formats producing tiny binaries. Also includes hot reloading capabilities for the standalone targets

More Awesome Music DSP* / Audio plug-in templates

iPlug2OOS 91 about 1 month ago Continuing the theme of self-promotion, here is the latest and greatest iPlug2 template project, set up with CI/CD, installer scripts, github workspaces etc
pamplejuce 400 9 days ago An excellent template for JUCE projects
wolfsound - audio-plugin-template 94 about 2 months ago Jan Wilczek has made another excellent JUCE template
JUCECmakeRepoPrototype 242 12 months ago Eyal Amir also has one which looks good!
Brad Howes AUv3 Template 17 8 months ago A template for iOS/macOS AUv3 projects

More Awesome Music DSP* / UI Frameworks

VSTGUI 867 20 days ago VSTGUI is Steinberg's cross-platform UI framework for audio plug-ins. It is released under a BSD licence, it's an impressive piece of work and many plug-in developers use it for their products
Elements 3,089 23 days ago A very promising UI framework for audio software using modern C++
PUGL 175 3 months ago A cross platform GLFW-like solution that lets plug-in developers use OpenGL for their UIs

More Awesome Music DSP* / DSP Libraries

Gamma 462 about 1 month ago Gamma is a very awesome C++ DSP library by Lance Putnam. The beauty of Gamma is the conciseness of the implementation of certain techniques. How about for a concise STFT example
Q 1,169 18 days ago A very nice looking modern C++ DSP library with concise examples
HIIR HIIR is a seriously cool oversampling library by Laurent de Soras. Oversampling is something we often need in audio DSP, and this library handles it elegantly - providing a variety of classes for low latency IIR half band filtering (including SIMD optimizations). Originally this had a LGPL licence but now it's available under the - my favourite licence
HOALibrary 98 about 5 years ago A flexible DSP library for high order ambisonics (HOA) - a spatial audio platform that is becoming more and more relevant thanks to VR (GPL Licence)
HISSTools Library 50 7 months ago a nice BSD licensed library by Alex Harker, including FFT abstractions and multi-channel convolution, amongst other things
Mach1 Spatial SDK 59 2 months ago Vector based multichannel & spatial audio APIs for customizing multichannel or spatial audio pipelines & tools and agnostically playback any spatial, surround soundfields
Spatial Audio Framework 558 4 months ago Another excellent library for ambisonics and other spatial audio related processing
MadronaLib 294 about 2 months ago Randy Jones' DSP library, which is awesome because it is all designed for SIMD processing
WDL 416 14 days ago WDL is Cockos' library of reusable C++ code, that is used to make the DAW Reaper, amongst other things. It includes open source implementations of many useful things such as resampling and convolution, although there is next to no documentation and the code is difficult to understand. For more info about the various parts of WDL (which can be used independently), check
DaisySP A MIT licensed DSP library written for the Daisy platform, but also useable elsewhere. I like it because it includes some nice ports of Emilie Gillet's mutable instruments code
SignalSmithDSP A really nice looking DSP library, along with a really nice with a collection of nice articles, e.g. , see also

More Awesome Music DSP* / Music Information Retrieval Libraries (C/C++)

essentia 2,822 4 days ago Essentia is a huge collection of MIR algorithms that you can use to extract high and low level features from audio. AGPL3 license. Somewhat painful to build cross-platform
audioflux 2,761 4 months ago AudioFlux is a new-kid-on the block and some what similar but looks designed for deep learning, it looks very promising and has a liberal (MIT) license

More Awesome Music DSP* / Domain Specific Languages (DSLs)

FAUST 2,520 12 days ago FAUST is a powerful functional DSL for audio DSP with many options for quickly compiling to different “architectures” including audio plug-ins and embedded devices. FAUST is not interpreted like programming languages such as Puredata/Max/Supercollider/javascript, it is to C++ and various other programming languages or bytecode formats such as Web Assembly (WASM). This functionality is suited to rapid prototyping but can also produce robust and performant binaries. Whilst the rapid prototyping possibilities of FAUST are appealing to me, what I like most about it is the extensive library of high quality DSP, particularly for physical modelling synthesis and the way in which you can compose algorithms using the concise syntax. FAUST includes a JIT compiler "libfaust" based on LLVM, which I . I've used it to make a
Cmajor Is an exciting new DSL created by Jules Storer and Cesare Ferrari, which also uses the LLVM compiler technology. It has a JIT compiler for a fast workflow and can spit out C++ and WASM and ready-to-go JUCE projects. Cmajor is an imperative language much more similar to C/C++/Javascript than FAUST. It has several advantages, for example multi-rate processing and in my opinion it is more suited for code that mixes event-handling with DSP, where as FAUST is good for discreet blocks of DSP processing. Since FAUST can output Cmajor code via faust2cmajor, you can use them together

More Awesome Music DSP* / Filter design

Filter Playground A nice blog post and demonstrating IIR filters
MicroModeler Filter Design Tool An excellent web based filter design tool
DSPFilters 1,830 about 1 year ago Vinno Falco made this excellent MIT licensed IIR filter library. is a fork to work with the latest JUCE. See also , which seems a further developed and improved version
RBJ Cookbook HTML version of Robert Bristow-Johnson's EQ cookbook
Cytomic Technical Papers Andy Simper's technical papers, which include code examples and theory for modern approaches to filter design
Vadim Zavalishin - The Art of VA Filter Design Very math-heavy text on those modern approachs

More Awesome Music DSP* / Reading

Will Pirkle Will Pirkle has written two books that will be invaluable the aspiring audio plug-in developer - "Designing Audio Effect Plug-Ins in C++" and "Designing Software Synthesizer Plug-Ins in C++". The books contain detailed information about important audio DSP, including modern virtual analogue techniques, and sample code for complete sythesizers that sound good. My only criticism is that a large part of the books relates to a bespoke plugin framework and providing information for multiple formats, AU, VST3 can be a bit overwhelming, and clutters the content. Nevertheless I highly recommend these books. For more info
Dodge and Jerse - Computer Music: Synthesis, Composition and Performance, 2nd Edition This is my absolute favourite book to recommend to students studying computer music/audio synthesis. I find the book does not date like some other computer music texts. The block diagrams are charming and the techniques are discussed very well
Udo Zölzer (Ed) - DAFX: Digital Audio Effects This is a great book on audio DSP, written by a variety of domain experts, and it includes Matlab code examples
JOS Julius Smith's site and his four books are an amazing resource. Matlab/Octave and FAUST code examples included
DAFX Conference Archive All the papers from the DAFX conference are available online. Another great resource
EarLevel Engineering Nigel Redmond's DSP blog contains some very nicely written explanations of a variety of topics
Michael Tyson blog In depth article about Four common mistakes in audio development
Ross Bencina's blog/site A developer who writes a lot of interesting software and articles about lock free programming
Sound on Sound Magazine Synth Secrets A nice series on synthesis techniques
Jatin Chowdhury @ medium This blog, along with is full of fascinating, cutting-edge stuff
RS-MET tutorials Some nice pdfs with clear explanations of audio DSP topics
Melatonin Blog Sudara is writing some really excellent articles on some of the painful tasks involved in audio plug-in development and also publishing lots of useful open source recipes on
Katja's Home a very cool site with writings about various DSP topics and examples in pd/c

More Awesome Music DSP* / Tools

ChatGPT+ Subscription ChatGPT has become invaluable to me, allowing me to experiment and be creative with things that would have taken much more work before
VSCode & Github Codespaces VSCode is a brilliant text editor that has lots of interesting extensions and functionality. Lately I am using VSCode remote containers and Github Codespaces which I think is a game-changing technology
Cycling '74 Max Max is a great environment to use for prototyping audio plug-ins. There are just so many options for integrating different technologies, I highly recommend it - even if nowadays most of the max patches I make only include a few objects
Desmos This is an awesome online graphing calculator. Check out some interactive Casio CZ waveforms that I made
Coliru This is an online interactive C++ compiler, which can be a very nice and quick way to test out a particular feature of the language, without having to build a binary
Compiler Explorer Compiler explorer is a great tool for checking the assembly code that different compilers will produce
FAUST Web IDE This is an online FAUST IDE and compiler, that lets you test FAUST code with webaudio. You can then tell it to output a zip file with a binary for your preferred platform. This saves you all the trouble of installing FAUST and its dependencies on your local machine
Matplotlib-cpp 4,366 11 months ago A C++ interface to the matplotlib python plotting tool. Allows you to visualize algorithms using the same code that you can use in production
xeus-cling This is a really cool project allowing you to use JIT compiled C++ in jupyter notebooks - which, like Matplotlib-cpp above is great for visualizing algorithms using the same code that you can use in production, inside the popular jupyter notebook format. is an example of how you can use those things together, easily via a ready made docker image
StudioRack plugin manager Open-source audio plugin manager tool and Github plugin templates to automatically build cross-platform audio plugins
dspplot 17 over 2 years ago A python script that I find useful for plotting filter responses
Docker desktop Docker is incredibly useful for creating reproducible environments, e.g. with specific python libraries installed
Audio Programming Environment - APE An audio plug-in that embeds a C++ JIT compiler which you can use to test your C++ DSP without leaving the DAW
OhMyZSH Make macOS terminal/iTerm2 nice and colorful

More Awesome Music DSP* / Exemplary open source audio plug-in projects

surge 3,098 8 days ago Surge was an excellent product which has been open sourced and is now being maintained and continually improved by the surge-synth team, with a new JUCE UI
valentine 138 20 days ago An awesome compressor and great, complete project example for a cross platform audio plug-in in 2023
vital 1,551 over 1 year ago Vital is a very succesful wavetable synth with a slick interface done using the GPU. Amazing that a project like this can be open source!

More Awesome Music DSP* / Miscellaneous open source audio code/projects

ni-media 244 about 2 months ago A very nice audio file loading library from Native Instruments
choc 521 12 days ago From the creator of JUCE comes CHOC, an ISC licensed library of Classy Header-Only Classes. Including some useful audio related utilities
BespokeSynth 4,047 14 days ago A pretty amazing modular synth/composition environment with nice real-time visualisation, loads of modules, and lots of flexibility
destroyfx 211 17 days ago A brilliant collection of open source plug-ins that are very original have been around since the dawn of VST
puredata Pd is a really nice cross platform dataflow programming environment. Also check out , which you can use as an embeddable DSP runtime in your C++ audio plug-in etc. combines libpd with JUCE to let you make plug-ins based on Pd patches. is an excellent new effort to make PD run as a plug-in with a fresh new UI built with JUCE
supercollider 5,433 9 days ago Likewise, but make sure you look at the scsynth part for DSP stuff
csound 1,221 3 days ago CSound is still going strong after many years. It can also be used as an embeddable DSP library. There is a , which is a great way to play with interesting scores/orchestras/UDOs that you find on the web and lets you make plug-ins based on CSound orchestras
vcvrack 4,040 2 months ago Whilst the other items in this list have been around a while and have somewhat arcane code-bases, this is pretty new and the API is very clean and simple. I think making a VCVRack module it is a great way to get into audio programming
tracktion engine 1,196 8 days ago Source code for an entire DAW engine, using modern C++. An amazing resource for learning all sorts of things including how to structure and architect large audio projects. GPL/Commercial license
musicdsp.org "A collection of algorithms, thoughts and snippets, gathered for the music dsp community". A long serving site that has recently been revamped. Beware: most of the code there was written a very long time ago, and optimization tricks etc, may not be relevant on modern machines. Also there are lots of code snippets programming languages other than C++ (delphi, java, C# etc). Could do with some curation
obxd 122 almost 10 years ago OBxd is a great sounding oberheim emulation plug-in, written with JUCE. , and it has also been
dexed 2,808 about 1 month ago Dexed is a JUCE frontend to , which is an excellent DX7 emulation. Also
AudioKit SynthOne 1,670 over 2 years ago SynthOne is a great open source project built using Audiokit, that will be very interesting to anyone looking to build an iOS synthesiser
AirWindows Plugins 795 13 days ago A large collection of GUI-less plug-ins open source but supported via patreon
zita stuff Fons Adriaensen's linux audio projects offer a lot of great tools for acoustic measurements, spatial audio etc - mostly as jack apps
Webkit's Web Audio API 7,905 8 days ago This is the C++ code for WebKit's implementation of the Web Audio API, as used in Safari
Blink's Web Audio API The same thing in Blink (Google chromium)
Firefox's Web Audio API And for Mozilla Firefox

More Awesome Music DSP* / Machine Learning

GuitarML Very cool project building open source guitar fx/amp simulations using machine learning techniques
NeuralAmpModeler 1,789 13 days ago A similar project, which is also very cool - plug-in built with iPlug2!
ONNXRuntime 14,165 11 days ago Microsoft's ONNX Runtime is a ML inference engine that is well documented, performant, and customizable. is an iPlug2 example that I prepared that integrates onnxruntime into an audio plugin, using - another project that I made in order to build custom, slimmed down static libraries for the onnxruntime
RTNeural 580 3 months ago A library designed for realtime inference of Neural Network models with audio in mind. Very small when compared to linking a library like OnnxRuntime or libtensorflow
Torsion Audio's Neural Network Inference Template for Real-Time Cricital Audio Environments 96 12 days ago A great JUCE template for a machine learning based plug-in, set up for libTorch, TFLite, or OnnxRuntime, including code to help you offload inference onto a separate thread

More Awesome Music DSP* / Plug-in gui stuff

KnobMan, WebKnobMan "Safe for work" knob pics and an online tool to generate them

More Awesome Music DSP* / Hardware/embedded

the owl pedal/module This is a programmable stomp box and eurorack module that I've been working with since the kick starter campaign to launch it. It's a really nice little unit, which you can program in C++, FAUST, Pd or with Max gen~. I find the limited interface with 4 controls makes me think quite carefully about what's important about my DSP algorithm. You can find some patches I made for it (using a mixture of c++ and FAUST) in the , and the original code
bela Bela is a wonderful little SoC + Audio Interface which is pretty revolutionary, allowing super low latency audio and sensor I/O all clocked together, in a tiny package. I wrote the FAUST support class for bela. You can also program it with C++ or libpd, and even supercollider
ELK Audio OS An embedded linux OS & dev kit that runs VST2 & VST3 plugins with super low latency
mutable instruments 2,603 10 months ago Emilie Gillet's work is inspirational. The code has been and to some nice
pedalvite 95 about 1 year ago An open source pedal board project from a developer who did a lot of the DSP in the best plugins of the last ~20 years
Daisy Daisy is a brilliant programmable embedded music platform. A few different host devices are available into which you plug the Of course you can also build your own device around the Daisy seed board if you don't suck at electronics, like me. It has a more powerful MCU than the OWL and I really like how the same board can be plugged into different hardware depending on your needs

More Awesome Music DSP* / Youtubers/Podcasters

Jan Wilczek - The WolfSound Jan is an extremely driven, friendly and talented guy who has put a lot of work into making a great set of resources for people who want to learn audio programming. His content is a mixture of very good technical overviews of important topics and great interviews with people across the industry and involved in academia. I was honoured to be interviewed by Jan for episode 15 of the wolfsound podcast, which you can listen to
TheAudioProgrammer includes a lot of tutorials about JUCE with guest slots on things like web audio
TheChernoProject although this channel is focused on game development, the is excellent. Highly recommended
Valerio Verlardo - The Sound of AI Valerio has made a very impressive channel and dedicated to AI and ML topics in Audio
ToteBagLabs - Lofi Audio Effects Prototyping to chill/relax to My friend and Ableton colleague Jose is recording his work developing plug-ins in Juce/C++ and DSP code using CMajor

More Awesome Music DSP* / Interesting Talks

Teaching Yourself to Make Music Software: Steve Duda in Conversation | Loop an inspiring interview with a great developer about a killer synth
Sean Costello (Valhalla DSP) on reverb design great talk by another great plugin developer
C++ Real-Time Audio Programming with Bela a very clearly presented course
Vadim Zavalishin - The Art of VA Filter Design, ADC 2018
How Moog Makes Synth Apps: Interview With Geert Bevin, Head Of Software At Moog a great interview full of insight

More Awesome Music DSP* / Places

musicdsp mailing list The music DSP mailing list is pretty quiet these days, but it still worth signing up, despite the web 0-1 front page. Every now and again a music DSP legend posts something interesting
KvR Audio DSP and Plug-in Development Forum This is probably the most active forum for audio DSP that is not aligned with a particular plug-in framework. There are some very smart people, some mavericks and some plain weirdos who hang out here
JUCE Forums This is a collection of forums centred around the variety of things that JUCE does. Since there are such a huge amount of people using JUCE to make audio software, there is a lot of good info here
Cockos Forums Another collection of forums centred around Cockos' tools including one for WDL/iPlug and one for Reaper JS
The audio developer conference (ADC) Whilst the other places mentioned here are all virtual, this is a real conference where you can go and meet real people face-to-face who do audio programming - highly recommended!
TheAudioProgrammer Discord server A popular community for discussing audio programming
iPlug2 Forum forum for iPlug2 discussions
Steinberg VST3 Forum A forum for the VST3 SDK/format

Backlinks from these awesome lists: