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:
Dplug lets you create audio plug-ins products aimed at audio production on the desktop.
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.
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.
Dplug has a few peculiarities compared to the other plug-in framework:
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?
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?
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.
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.
You can of course build your own UI style.