Giter Site home page Giter Site logo

awesome-audio-dsp's Introduction

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.

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.

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:
  • 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 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 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).

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.

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

  • 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.

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

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.)
  • 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.

awesome-audio-dsp's People

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.