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 plugin framework is a library whose aim is to make cross-platform audio development a practical reality. As such, Dplug can be used to create audio effects (such as a VST 2.4) for use in popular host programs (such as FLStudio, Logic, Pro Tools, Cubase...).

Dplug is currently hosted on GitHub: https://github.com/AuburnSounds/Dplug.

# Features of Dplug

Dplug lets you create 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 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).

It is very nice and trendy.

OK, but what does D bring to the table day to day, in the trenches, for the audio blue collar worker?

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

GC in D is pay-as-you-go (the less you use it, the better it performs) and optional.

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.

Besides, Dplug plug-ins used to run the GC, and it didn't cause any particular problems.

# Downsides of Dplug

Because Dplug receives about 6 man-months of work every year, it's frequent feature development get postponed in favour of maintenance tasks, such as keeping up with macOS.

Here is a list of missing features: (as of early 2020)

We want to do all of 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 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.

# Made with Dplug

Check out the products made with Dplug.

You can of course build your own UI style.

# Getting started