Here We Go!

Hi There!

Welcome to my first ever blog post! This blog is part of my new project Lets Learn DSP where I am aiming to learn all things audio software development and share what I learn along the way.

LLDSP - The Library

In order to provide some structure to this endeavour I have created a library called LLDSP. This will serve as a single source of all code audio development related so that over time it becomes easier for me to create new audio plugins. I know that right now I am only writing this for myself but in the future I hope that others will be able to use and contribute to this, and hopefully it will help others quickly get started making audio software.

Due to the fact that there are multiple audio plugin frameworks available and in the aim of reusability, the DSP side of the library will be written in pure C++ with no other libraries apart from the STL required. While I did initially intend to make this a C library, it has become apparent that this approach was slowing progress too much. However, I will try to write as much of the code so that it compiles to C as possible.

As I am using JUCE as the framework to create my audio plugins I am also going to have a library of code that relies on JUCE. This will include things like generic preset management code and some shared GUI components. These parts of the library will be kept seperate so that the DSP code can be used in conjunction with other frameworks and the JUCE side of the library may, at some point, be put in a seperate library of its own.

The Plugin - As yet untitled

As a DSP library is fairly useless (and untestable) without an application to put audio through it and play with parameters, I am also creating a multi effect plugin. This will act as a test suite for my DSP code and will hopefully be alot of fun to use! I’ll be creating seperate plugins when I have ideas for one but this will act as an up to date preview of the LLDSP library and may grow to include some added debug tools as I see fit.

Debugging - As yet really thought out

The final (and least thought out) part of the LLDSP project is a suite of tools to help debug audio applications. While doing work on previous audio software projects and starting LLDSP it has become apparent that debugging audio applications has it’s own set of niche problems. To this end, I want to create a set of tools contating an oscilliscope, spectrum analyzer, and wave shaping graph to help visualize what is going on behind the scenes. I have not yet begun work on this part of the project but the current idea is to create a set of JUCE components that will be be visible if a macro is present.

Wish Me Luck!

I’m hoping to write here regularly (as life permits) with any interesting things I learn along the way. I have already got some DSP basics like a ring buffer and simple distortion done along with some GUI assets made but there’s alot more to be done!

For now my To-Do list looks like so:

  • Write first blog post ✓
  • Create initial GUI assets
  • Add different waveshaping distortions
  • Create a simple looper

So there’s the idea and what I’ve got to do next. Wish me luck!