Create professional audio plug-ins (VST / AU / AAX, macOS/Windows/Linux, 32&64-bit) with D.
Guillaume Piolat
Guillaume Piolat Win32: call SetDIBitsToDevice multiple times with several SetDIBitsTo…
…Device on each invalidated rectangle. This allows to make window updates far from each other, and increase fluidity on Windows.
Latest commit 1bb7da5 Oct 18, 2018
Permalink
Failed to load latest commit information.
au/dplug/au Licence change of dplug:cocoa and dplug:carbon from annoying-BSD to B… Sep 18, 2018
carbon/derelict/carbon Licence change of dplug:cocoa and dplug:carbon from annoying-BSD to B… Sep 18, 2018
client/dplug/client Document parameter listeners more, in a way that makes them more disc… Sep 25, 2018
cocoa/derelict/cocoa Licence change of dplug:cocoa and dplug:carbon from annoying-BSD to B… Sep 18, 2018
core/dplug/core PERF Thread pool: don't wake up _all_ threads if there is less tasks … Oct 17, 2018
dsp/dplug/dsp Remove useless "Author" DDoc field Sep 18, 2018
examples Remove the physical channel altogether. Oct 10, 2018
flatwidgets/dplug/flatwidgets Port flat-widgets to the new system, many graphical bugs! Oct 6, 2018
graphics/dplug/graphics Implement new UIColorCorrection widget. Oct 7, 2018
gui/dplug/gui copy byte loop is faster than .blitTo in isolation, but not in contec… Oct 18, 2018
host/dplug/host Fix DDoc wrt licensing. Sep 18, 2018
pbrwidgets/dplug/pbrwidgets Remove the physical channel altogether. Oct 10, 2018
tests Fix crash with runtime enabled on Windows, this one was due to Except… Sep 18, 2018
tools Allows to hide passwords in pace.json Oct 15, 2018
vst/dplug/vst Fix DDoc wrt licensing. Sep 18, 2018
window/dplug/window Win32: call SetDIBitsToDevice multiple times with several SetDIBitsTo… Oct 18, 2018
x11/derelict/x11 Restore files again Nov 27, 2017
.gitignore Fix warning in auval output with AU Feb 18, 2018
.travis.yml Move example/window/ to tests/window Sep 16, 2018
CONTRIBUTING.md Fix DDoc wrt licensing. Sep 18, 2018
DSP_Asset_Store.md Enforce alphabetical order in the DSP Asset Store(tm). Oct 15, 2018
README.md dplug:gui now able to use intel-intrinsics Oct 11, 2018
dub.json dplug:gui now able to use intel-intrinsics Oct 11, 2018
logo.svg Add logo Oct 3, 2015
plugin-schema.json Fix schema to allow JSON "comments" Mar 31, 2018
secrets-for-ci.tar.enc Updated encrypted archive with correctly encoded file (on linux) Jul 6, 2018
test-all.sh Merge the rest of dplug:derelict-nogc into dplug:core, now that it's … Oct 27, 2016

README.md

logo

Dplug Build Status Dub version Dplug Discord server

Dplug is a library for creating audio plug-ins as simply as possible.

Auto-generated documentation...

Features

  • Create VST 2.4 plug-ins for macOS, Windows, and Linux (to distribute VST2 plug-ins be sure to sign a VST2 Licence Agreement with Steinberg)
  • Create Audio Unit v2 plug-ins for macOS
  • Create AAX64 Native plug-ins for macOS and Windows
  • Build plug-ins faster and with less pain: D language, plug-in bundling, color correction, performance tests...
  • Small binaries with (optional) rendering
  • Support major DAWs
  • Small, tight-knit community

Community and ecosystem

These products use Dplug:

Increase quality and reduce time-to-market with commercial audio DSP in the DSP Asset Store.

Become one happy Dplug contributor by submitting issues and pull-requests, and come talk with us on the D Language Discord to learn more and meet your peers Dplug users!

Release notes

Keep up with major changes here: Release Notes

Tutorials

FAQ

  • Does Dplug support the creation of synthesizer plug-ins?

Yes. See the simple-mono-synth and Poly Alias examples.

  • Am I forced to use the PBR rendering system?

No. And if you don't use it, you don't pay for it.

  • What is the oldest supported Windows version?

Windows Vista.

  • What is the oldest supported OS X version?

OS X 10.8+.

  • What D compiler can possibly be used?

    See .travis.yml for supported compilers. The latest DMD or LDC should do.

  • What D compilers are recommended?

    For releases it is highly recommended that you use LDC >= 1.8. When in development you can use DMD for faster compilation times.

  • Is Dplug stable?

Dplug has excellent stability.

Dplug documents all breaking changes in the Changelog and issues major SemVer tags for breaking changes.

If you don't want breaking changes, you can pin Dplug to a major version in your dub.json.

But reality is complex, and bug fixes can be breaking too, (eg: "highpass FIR wasn't working"). In which case we have to make a judgment call as to whether it's a breaking fix, and whether the buggy feature was used.

Breaking commits, when they happen, are marked with BREAKING in the commit backlog. They are discussed on Discord to assess the impact.

  • Will you add feature X?

You have to understand that Dplug is a part-time operation, from people who spend much more time working on and releasing plug-ins.

Dplug is there to support existing products and building commercial companies around them, not to be beta software and make empty promises. Being stable and bug-free is much more important to us than implement every possible feature.

Politically, it's very often than enhancements get postponed in favour of product development, so please be patient!

We're looking for ways to improve governance as more contributors have appeared with contrasted agendas.

  • Where do I start?

Be sure to read the Wiki in depth.

Strengths of Dplug

  • As lightweight as possible
  • Public bugtracker
  • Well-defined scope: for professional plug-in developers
  • Maintained continuously, supported by sales for the foreseeable future
  • Price is free, no personal support must be expected though
  • PBR-style rendering lets you have a good visual quality with less disk space. If you don't use it, you don't pay for it.
  • No dealing with resource compilers: D can import("filename.ext") them
  • Easy to install and update
  • Constant push to fight complexity and minimize LOC

Licenses

Dplug has different licenses depending on the sub-package you need. Please check individual source files for license information. Please respect the individual licences when releasing a plug-in.

Plugin format wrapping

Plugin wrapping is inspired by the IPlug library (best represented here: https://github.com/olilarkin/wdl-ol).

Some files falls under the Cockos WDL license.

Important contributors to IPlug include:

VST SDK

If you don't have the VST SDK, you can't make plugins with Dplug. Find the VST SDK there: http://www.steinberg.net/en/company/developers.html

If you don't have a licensing agreement with Steinberg, you can't distribute VST2 or VST3 plug-ins.

Misc

Other source files fall under the Boost 1.0 license.