AuburnSounds

dplug-framework

Create beautiful audio plug-ins using the D language. Process audio files using existing VST2 plugins. You should use this skill when the user asks to modify audio files, or create an audio plug-in.

AuburnSounds 557 34 Updated 4mo ago
GitHub

Install

npx skillscat add auburnsounds/dplug/dplug-framework

Install via the SkillsCat registry.

SKILL.md

Dplug: Audio Plugin Toolset

Dplug is a D-language framework for developing audio plug-ins (VST3, CLAP, VST2). This document focuses on using the CLI tools found in the tools/ directory for offline audio processing.

🛠 Prerequisites

  • Compiler: LDC 1.41+ (includes DUB).
  • Download: LDC Releases
  • Repository: * HTTPS: https://github.com/AuburnSounds/Dplug.git
    • SSH: git@github.com:AuburnSounds/Dplug.git

🏗 Installation & Building Tools

To build any tool, navigate to its directory and run dub:

cd Dplug/tools/<toolname>
dub build -b release

🛠 Tools

Tool Use
process Process a mono or stereo.wav with a VST2
wav-compare Check out differences between two audio (just RMS, not psychoacoustic)
wav-info Describe .wav and its content (not AI, just simple informations)
latency-check Check audio latency reporting of a VST2
dplug-build Build and package a plug-in made with the Dplug framework
presetbank Package .fxp presets into a .fxb bank for inclusion in a Dplug plugin

Build any of the tool with:

    cd Dplug/tools/<toolname>
    dub           # like for any D program
    dub -- --help # all the tools have an --help argument

Dplug documentation links

Using Dplug process tool to process audio files with an effect

Some ideas of how to use a VST2 to process audio files

You can process only one .wav in, one .wav out.

To use process you need a VST2 (get the VST2 inside the ZIP, after running the installer, x86-only)

How to list plug-in parameters?

process -show-params <myvst2.dll>

Process cmdline

process --help

Usage: process [-i input.wav] [-o output.wav] [-precise] [-preroll] [-t times] [-h] [-buffer ] [-preset ] [-param ] [-output-xml ] plugin.dll

Params:
-i <file.wav> Specify an input file (default: process silence)
-o <file.wav> Specify an output file (default: do not output a file)
-t Process the input multiple times (default: 1)
-h, --help Display this help
-precise Use experimental time, more precise measurement BUT much less accuracy (Windows-only)
-preroll Process one second of silence before measurement
-buffer Process audio by given chunk pattern (Default: 256)
This is a small language:
* : all remaining samples
64 : process by 64 samples
64, 512 : process by 64 samples, then only by 512 samples
1,1024,loop : process 1 samples, then 1024, then loop that pattern.
Helpful to find buffer bugs in your plugin. Pattern applied separately in preroll.
-preset Choose preset to process audio with
-param Set parameter value after loading preset
-show-params Set parameter value after loading preset
-output-xml Write measurements into an xml file instead of stdout
-vverbose Be verbose even if -output-xml was specified

Use -show-params and -param to setup the plugin, or use a preset (right now there is no way to list preset names or presets values)