Presentation is loading. Please wait.

Presentation is loading. Please wait.

DPF DISTRHO Plugin Framework github.com / falkTX / DPF.

Similar presentations


Presentation on theme: "DPF DISTRHO Plugin Framework github.com / falkTX / DPF."— Presentation transcript:

1 DPF DISTRHO Plugin Framework github.com / falkTX / DPF

2 DPF · DISTRHO Plugin Framework [*] Except liblo for DSSI UIs.
C++ “mini” framework for building audio plugins (cross-platform) Very small code size No external dependencies [*] Permissive license (ISC) [*] Except liblo for DSSI UIs.

3 DPF · DISTRHO Plugin Framework
WHY Many plugin formats to support Not always easy to understand No high-level C++ abstractions Similar projects without liberal license or Linux support VST SDK issues

4 DPF · DISTRHO Plugin Framework
HOW DOES IT WORK? Internal, simple C++ API Exports to all possible formats UIs made with OpenGL, pugl (includes base classes for easy startup) All format specific things hidden

5 DPF · DISTRHO Plugin Framework
WHAT CAN IT DO? Effects, Synths and Utilities LADSPA, DSSI, LV2 and VST2 formats Parameters, presets and states UI to DSP communication Time information from host [*] Linux, Mac and Windows builds [*] Not available in LADSPA and DSSI formats.

6 DPF · DISTRHO Plugin Framework
WHAT CAN IT *NOT* DO? MIDI output (so no MIDI filters, yet) DSP to UI communication [*] Advanced per-format stuff [*] Direct access in the UI to the DSP instance is possible, but NOT recommended! (also not available for DSSI)

7 DPF · DISTRHO Plugin Framework
FUTURE PLANS Cleanup Documentation Stabilize API (specially UI stuff) Later: Fonts, Menus, File-Browser/Dialogs

8 DPF · DISTRHO Plugin Framework
EXAMPLE CODE (Part 1/3) FILE: DistrhoPluginInfo.h (Plugin data macros) #define DISTRHO_PLUGIN_NAME "My EQ" #define DISTRHO_PLUGIN_HAS_UI #define DISTRHO_PLUGIN_IS_SYNTH #define DISTRHO_PLUGIN_NUM_INPUTS 2 #define DISTRHO_PLUGIN_NUM_OUTPUTS 2 #define DISTRHO_PLUGIN_WANT_LATENCY 0 #define DISTRHO_PLUGIN_WANT_PROGRAMS 0 #define DISTRHO_PLUGIN_WANT_STATE 0 #define DISTRHO_PLUGIN_WANT_TIMEPOS 0 #define DISTRHO_PLUGIN_URI "

9 DPF · DISTRHO Plugin Framework
EXAMPLE CODE (Part 2/3) FILE: MyEQ.hpp (Plugin DSP header) class MyEQ : public Plugin { public: MyEQ(); // Information const char* d_getLabel() const noexcept { return "3BandEQ"; } const char* d_getMaker() const noexcept { return "DISTRHO"; } const char* d_getLicense() const noexcept { return "LGPL"; } uint32_t d_getVersion() const noexcept { return 0x1000; } long d_getUniqueId() const noexcept { return ; } // Parameters void d_initParameter(uint32_t index, Parameter& parameter); float d_getParameterValue(uint32_t index) const; void d_setParameterValue(uint32_t index, float value); // Process void d_run(float** inputs, float** outputs, uint32_t frames); };

10 DPF · DISTRHO Plugin Framework
EXAMPLE CODE (Part 3/3) FILE: MyEQUI.hpp (Plugin UI header) class MyEQUI : public UI, public ImageKnob::Callback { public: MyEQUI(); // Information uint d_getWidth() const noexcept { return 330; } uint d_getHeight() const noexcept { return 220; } // DSP Callbacks void d_parameterChanged(uint32_t index, float value); // Widget Callbacks void imageKnobValueChanged(ImageKnob* knob, float value); void onDisplay(); private: ImageKnob* knob; };

11 DPF · DISTRHO Plugin Framework
Demo Questions If you want to quickly check some DPF based plugins, see: github.com/zamaudio/zam-plugins-DPF


Download ppt "DPF DISTRHO Plugin Framework github.com / falkTX / DPF."

Similar presentations


Ads by Google