Fork me on GitHub
Overview Source Documentation Get started Examples Issues

Dplug logo The Dplug audio plug-in framework

# Table of contents

# Introduction

Dplug is an open-source audio plug-in framework existing since 2013.

A plug-in framework is a software library whose aim is to insulate audio plug-in creation from platforms and formats woes.

As such, Dplug is used to target different formats and OSes, for use in popular hosts, such as FLStudio, Logic, Pro Tools, Cubase...

Dplug is developped mainly by Auburn Sounds and is located on GitHub: https://github.com/AuburnSounds/Dplug.

# Features of Dplug

Dplug lets you create audio plug-ins products aimed at audio production on the desktop.

Options?

Maintaining user sessions compatibility and avoiding breaking it is of paramount importance for audio plug-ins developers.

Often you'll want to update Dplug to a major version, but still retain user sessions compatibility. Other frameworks use C preprocessor macros for that purpose.

Dplug's answer to this is Dplug Options. They let you upgrade Dplug without breaking user sessions. Instead you break user sessions at your own pace, when making major updates to your plug-ins.

# What makes Dplug different?

Dplug has a few peculiarities compared to the other plug-in framework:

# Easier life through Dplug

Writing and selling audio plug-ins is a bit like portfolio management, one must offer value while not getting into product debt, offering more products that one can possibly maintain and update.

Still, having an extensive product portfolio is important for revenue. Therefore, one of Dplug's core principle is to try to create the minimum maintenance load, so that you don't get unforeseen work without your consent.

So, what does Dplug do to make your life easier?

# Easier life through D

D logo

The D programming language is a general-purpose programming language with static typing, systems-level access, and C-like syntax. It provides strong improvements over C++ along with uniquely composable new kind of abstractions (though Dplug doesn't make use of such power).

D is often praised for being "low friction".

OK. What does D bring to the table, day to day?

"But D is a GC language so you can't possibly do audio with it, right?"

Dplug plug-in runs with the D runtime left disabled, so the D GC is just not running in a Dplug plug-in. It is disabled, so there is zero GC allocation or GC collection in a Dplug plug-in.

This runtime disabling has to be paid dearly, and Dplug users use a restricted subset of the D language.

# Downsides of Dplug

Dplug is a by-product of existing plugin products, and built for enabling and maintaining revenue.

It is not a product by itself, and it doesn't necessarily have the structure to scale to many users. Feature development get routinely postponed in favour of product creation, or maintenance tasks such as keeping up with macOS.

Here is a list of missing features:

We'd like to do those items, but didn't get the time yet. Check the Release Notes to get an idea of Dplug's velocity.

You can also sponsor Dplug, or even better, get involved in the codebase to make it happen.

# Alternatives to Dplug

Be sure to consider the alternatives before settling on a plug-in framework. For example, JUCE has implemented every one of the missing features listed above, has more documentation, and is possibly more beginner-friendly.

# Made with Dplug

Check out the products made with Dplug.

You can of course build your own UI style.

# Getting started