17.12.2020

Vst Plugin Gui Design

It’s time to create a better user interface for our digital distortion plugin. Here’s the look we’re going for:

It’s not awesome, and just to demonstrate how we can add graphics and – more interestingly – how to create the rotating knob.

Here‘s the TIFF of the design. Open it in Photoshop (or your preferred tool) and have a look at the different layers and groups. As you can see, the only part that’s really going to change is the knob. So we can export the rest as one PNG:

  1. JVST provides an interface to VST plugins (effects and instruments) for use in Java. It allows the developer to interact with a plugin, process samples and use any built in GUIs. JVST is licensed under.
  2. Extremely good looking GUI. Easy to use with a straight forward vintage design consisting of only Input, Output, and Time Constraint controls. A more extensive version with added features and two other modeled circuits is available for less than $27. Vari-mu compressors offer a unique compression style not commonly found in many plugins.
  3. Gui design vst plugin. Hello my name is Nimmer Ahmad Im the CEO of monster shop records. I love your work! I would like to hire you to design some.
  4. It seems like a very amazing plugin, i usually have problems positioning GuiObjects because of the grid so that would be amazing for me. And its so cool that theres a lot of GUI Design features in one plugin, i used to have like 10 plugins for GUI Design that only do one thing but this is amazing!

I love Sound Design, and I create and shape a lot of my sounds in my cinematic music. I use plenty of VST plugins, both instruments and effects, to do my sound design work. And I also have researched a lot of options that you might want to check out. =) VST Plugins for Sound Design 1. Soundtoys Decapitator 2. IZotope Trash 3.

Adding the Background for Mac Builds

Click on the above image and save it to your desktop. Open the DigitalDistortion project in Xcode. In the project navigator, expand the Resources folder and drag your image into the img folder inside of that:

Make sure you check the Copy items into folder option and add it to all targets:

Adding the Background for Windows Builds

For Visual Studio, adding a resource (like an image) to your project is a little different. Adding to all targets on Mac means that the image will be included into the .app, .vst and .component files you ship to your users.
To achieve this with Visual Studio, edit your project’s .rc file. For this project it’s called DigitalDistortion.rc. When you open it, the top looks like this:

First, resource.h is included, so all the #defines from there are available here. The line below that declares that the knob should be included. So to include the background as well, add this line just below that:

We’ll add BACKGROUND_ID and BACKGROUND_FN to resource.h in a second.
Whenever we add an image to our project, we have to to add a line like this.

Using the Background

Let’s reference the image from our code. Go into resource.h and change the GUI size (around line 62):

…and add the background image ID and filename:

In DigitalDistortion.cpp, change the constructor code to attach background.png instead of the red color:

That was easy! Run the APP target and you’ll see the nice background:

If the background isn’t working on windows, you may have to put background.png inside the folder DigitalDistortionresourcesimg, so it’s found correctly.

Adding the knob

The knob is slightly more difficult. Have a look at the design again and you may see how the knob consists of a textured part and some reflections. When you turn a knob, the metal itself moves, but the lamp on your ceiling sure doesn’t! So some parts of the graphic should rotate (metal texture, the black arrow), while others should stay fixed (anything due to light). What about the “outer ring”? It has some contour, but all of that is due to incidence of light, so it shouldn’t rotate.
That’s why we can’t just export the knob in twelve-o’clock-position and rotate it at runtime.
To be more precise, there should be a knob base which doesn’t rotate. On top of that, we need the metal texture which does rotate. And finally we need another layer with the light reflections which doesn’t rotate. These are the three parts, exported separately (the black background is just added so you can see everything):

There’s a very good tool for this. It’s called KnobMan, it’s freeware and it’s made for this exact purpose. Download JKnobMan for your system, start it and load the knob file I’ve prepared:

All I’ve done is add the three layers and change some coordinates so the metal texture rotates correctly without moving around. There’s a tutorial available if you want to get deeper into the software.
Export (Cmd+E, Ctrl+E on Windows) the knob to a file and name it knob.png (or download mine). The PNG has 128 frames covering all rotations, and only the metal & arrow are rotated. Nice!

Back in Xcode, right-click the existing knob.png and click Delete. In the following prompt, select Move to Trash. Now drag the knob.png onto the img folder and do everything the same way as for the background image above.
Since the filename is the same, we can leave resource.h alone. Go straight into DigitalDistortion.cpp and change the enum ELayout as follows:

We don’t even have to tell WDL that the knob is bigger than the previous one! We just say “the PNG has 128 frames in it” and specify where the knob should be placed.
Run your plugin as VST2 and check out how you can turn the knob and it will go through the rotation frames. What’s confusing, though, is that our plugin does distortion and having the knob at 100% gets us a clean sound!

Correcting the Knob Direction

Let’s change that in line 98:

To prevent the division by zero problem described earlier, we also have to modify line 33 so that the parameter defaults to 0 and will not exceed 99.99:

If you run again, the plugin should work as expected. It might be a good idea to rename the variables from Threshold to something like DistortionAmount. The only thing still representing a threshold is the internal mThreshold variable.

Summary

With minimal DSP code we have created a working distortion plugin with a custom user interface. This was to give you an idea of what goes into creating an audio plugin – sort of the big picture.
Now that we have an overview, we’re ready to get into more interesting signal processing: The next post will be about synthesizing waveforms.

If you got stuck somewhere, you can download a ZIP with all files here.

Further Reading

  • There are a lot of free KnobMan examples here and here.

Credits

  • The metal look is based on this Photoshop tutorial. Thanks to the author!
  • Thanks to g200kg for KnobMan!

Virtual studio technology (VST) is an audio plug-in software interface that integrates a software synthesizer and effects into digital audio workstations. It uses digital signal processing to simulate a traditional recording studio’s hardware in software.

There are both commercial and freeware versions of VST plug-ins available in the market.

Think of VST plugins as an affordable way of making your home studio sound like an expensive commercial studio setup.

  • 10 Best Opto Compressor Plugins (VST,AU,AAX) For Transparent Sound
  • The 15 Best Delay Plugins For Mixing (VST, AU, AAX)
  • The 33 Best WAVES Plugins Of 2020
  • 29 Best Sound Design VST Plugins In 2020
  • 17 Best Free EQ VST Plugins

What are the Best Tools to Develop VST Plug-ins?

I have listed a couple of libraries and frameworks that can handle most of the coding required in developing VST plug-ins.

JUCE Cross-Platform C++ Library

It is supported by the following platforms: OSX, Windows, Linux, iOS, and Android. It is free for non-commercial releases, but the commercial license works our best. It also covers 64bit systems.

Pricing of its commercial license

  • Commercial license for a single product – $521
  • Commercial license for any number of products – $912
  • Upgrade from single-product version to unlimited version – $455
    Despite the cost of the license for retail releases, it is the only library/framework option for a 64bit cross-platform.

Watch this video on how to create an awesome distortion VST/AU Plug-in using C++ / JUCE Framework

SynthEdit

SynthEdit is a framework and a visual circuit design that allows you to create your own synths with only drag & drop without programming. Therefore giving you the flexibility of using your DSP algorithms inside the modules.

At the time of writing this the 64-bit version is in Alpha and its creator Jeff McClintock is working on the ability to exporting it to AU. It’s got a ton of community-produced modules and works great with the 32-bit version. It is soft on your wallet – goes for $70.

Check out this video how SynthEdit work –

FL SynthMaker

FL SynthMaker aka flowstone comes free with FL studio.
It has a straightforward drag-and-drop graphical interface and a wide range of components. You can use it to code modules and DSP in Ruby and comes with loads of examples to get started quickly and its ability to assist you in creating a prototype within a short time is a plus.

How Are VST Plugins Made

You’ll be required to source for information from different sources depending on what your specific goals are.

Vst Plugin Gui Designer

For beginners, before learning how to code VST plugins, I would advise you to check out these environments: /free-drum-machine-vst-2018.html.

  • SynthEdit, SynthMaker, Reaktor, Max/MSP, PureData
  • CSound, SuperCollider, Bidule, Usine

These environments allow you to build something unique without having to write low-level code which most people find difficult to master. You’ll be required to know different areas, and if you already have some, then you’ll only require to fill in the gaps.

Check out this video to learn how to build and design your VST Plugin using JUCE

Audio Basics

Understanding sound and its properties are essential before embarking on the development of VST plug-ins. I have outlined a couple of online resources you should go through them:

Fundamentals of Digital Audio Processing

The Scientist and Engineer’s Guide to Audio Signal Processing

Discrete-time systems, sampling theorem, audio DSP, maths, psychoacoustics, sound analysis, and sound modeling.

Signals, Sound, and Sensation by William M. Harmann

The book got an introductory text on psychoacoustics and the readers on a journey through the mathematics of signal and processing from its beginnings.

  • 6 Best Passive EQ VST Plugins of 2020 (SPL, UAD, Waves, IK Multimedia)
  • Top 6 Spectrum Analyzer Plugins Of 2020 – Spectral Analysis Tools
  • 37 Best FREE VST Compressor Plugins For Mixing & Mastering
  • 11 Best Granulizer Plugins 2020 for a Future Sound Design
  • 10 Best Noise Gate Plugins (VST,AU, AAX) of 2020

Programming

Many professional VST plugins available on the market have been written in C++.

There are also several other languages you can use, but each got their pros and cons.

Learning how to develop VST Plug-ins as you’re learning to program isn’t easy. I usually recommend learning how to program before starting to create VST plug-ins.

The Audio Programming Book by Richard Boulanger – This book comes highly recommended for those who want to learn audio plug-ins.

BasicSynth by Daniel Mitchell – This one shows you how to create a custom synthesize in software using C++ programming language.

For more further information about VST development, you should definitely check these resources:

Audio Software (VST Plugin) Development with Practical Application

JUCE framework for VST-plugin development

Maths

You should have some basic engineering mathematics such as linear algebra, complex analysis, among others. Visit this website to get practical algebra lessons: www.purplemath.com.

Digital Signal Processing

You must know what an FFT routine is and why it is useful. Advanced content focusing on audio will usually require you to have at least a conversational level of DSP understanding.

Check out these resources on DSP:

Online and Free:
The Scientist & Engineer’s Guide to Digital Signal Processing

Print:
Understanding Digital Signal Processing by Richard G. Lyons

Audio Digital Signal Processing

Audio DSP extends on core DSP concepts to include the way digital signal processes apply to digital audio. It covers subjects such as audio filters, delays, and non-linear effects; think compression.

DAFX by Udo Zolzer is a book that comes highly recommended and covers many aspects of audio DSP technique.

Check out these online resources to get more info:

DSP Audio Classics
DSP Audio Algorithm Notes by XOXOS

Below are threads on VST Plug-ins I found from a couple of online discussion forums:

Advice for someone with ZERO experience
Developing a Vst Effect Plugin Where To Start?
What is your development setup?

Books

Free Vst 64 Bit Plugins Windows 10

I have listed some books that can serve as a resource in your pursuit of learning how to make VST plug-ins.

Check them here:

    Designing Audio Effect Plug-Ins in C++: With Digital Audio Signal Processing Theory
  1. Designing Software Synthesizer Plug-Ins in C++: For RackAFX, VST3, and Audio Units

Audio Plug-ins frameworks

JUCE

JUCE is a highly recommended and all-encompassing C++ class library for developing cross-platform software. JUCE includes components for VST, AU, and RTAS. You should have at least a basic grasp of JUCE if you intend to use C++ for the development of your VST plug-in.

IPlug

This is a C++ framework for developing audio plug-ins and GUIs.

VST.NET Best mixing vst plugins 2019.

New Free Vst Plugins

It allows VST Plugin developers to write Plugins in any .NET language. It also eases the transition between the C++ and .NET world and its framework built on top of the interop layer provide a clear and structured architecture. Feel free to check this Delphi library for creating VST plugins, VST hosts but also ASIO applications:

Delphi ASIO and VST

It also includes the algorithm for filters and dynamics.

  • The 6 Best Ring Modulator VST Plugins in 2020 KiloHearts, Melda
  • 7 Best Vari-Mu Compressor Plugins of 2020 Arturia, Manley, IK Multimedia
  • 7 Best Autopan VST Plugins 2020 CableGuys, Melda, Waves, Soundtoys
  • The 6 Best Frequency Shifter VST Plugins Of 2020

What is the best programming language for the VST plugin?

C++ is one of the best programming languages for creating VST Plug-ins, and the reason for this is that C++ has a wide range of frameworks and libraries that work so well in creating VSTs. Read more What’s the Best Way How To learn C++?

The WDL-OL library makes C++ an attractive programming language for VST plugins because it helps you with the following:

  • Creating multiple formats (VST, AudioUnit, VST3, and RTAS) from one codebase: Just choose the plugin format and click “run.”
  • Create both 32-Bit and 64-Bit executables.
  • Run your plugin as a standalone application (Windows or Mac). It means you don’t technically need a DAW to use the plugin.
  • Most GUI controls used in audio plugins (knobs, buttons, visuals).

Understanding what VST Plugins are and their role within the music production industry provides you with the knowledge of identifying the most effective tools for your music production outfit. It makes your music sound like it was produced in a million-dollar music studio.