I want to create a third-party plug-in for Serato (a software for DJs).
I searched in their site and I saw that Serato supports VST (VST2) plug-ins. So my question now is what should I read in order to create a VST plug-in?
Thank you in advance.
I want to create a third-party plug-in for Serato (a software for DJs).
I searched in their site and I saw that Serato supports VST (VST2) plug-ins. So my question now is what should I read in order to create a VST plug-in?
Thank you in advance.
A good starting point would be the wikipedia site for VSTs, just to get the basics if you are not familiar with this technology, first you need to know the creators of the VSTs: Steinberg.
VST SDK is a set of C++ classes based around an underlying C API. The SDK can be downloaded from their website.
Therefore I would recommend starting with something simple. Let’s review a few options:
This technology is trending for a few reasons, like their homepage says:
With support for PC, Mac and Linux, JUCE is the perfect tool for building powerful and complex applications. JUCE also supports the development of plug-ins: VST, AU and AAX. Run your desktop applications on mobile! One-click deployment to Android and iOS (requires Android Studio and XCode) Adjust the user interface of your application with the Projucer live coding engine Use the best audio performance available on iOS and Android.
So the pros of this technology are the big community, multi-platform and that is free, at least for non-commercial developments (then if you want to sell it you have to pay). The cons would be that you need to have a little more than the basics of C++ to get started, fortunately there are a lot of tutorials on their page, youtube and the internet, the community is growing so if you have issues you can always ask.
If you don’t want to get into the code that fast you can start practicing with these, as they don’t require programming expertise, or only a few basics.
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.
This is cool if you want to start going quickly, this currently has a cost you can check on their official website.
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 capacity to assist you in creating a prototype within a short time is a plus.
FLowstone is a programming application that is used to create virtual instruments effects and computer control of external hardware without the need to write basic code. The instruments and effects you create in SynthMaker can be used in FL Studio as 'native' plugins and shared with other FLowstone users.
Max, also known as Max/MSP/Jitter, is a visual programming language for music and multimedia developed and maintained by San Francisco-based software company Cycling '74. Over its more than thirty-year history, composers, performers, software designers, researchers, and artists have used it to create recordings, performances, and installations.
The Max program is modular, with most routines existing as shared libraries. An application programming interface (API) allows third-party development of new routines (named external objects). Thus, Max has a large user base of programmers unaffiliated with Cycling '74 who enhance the software with commercial and non-commercial extensions to the program. Because of this extensible design, which simultaneously represents both the program's structure and its graphical user interface (GUI), Max has been described as the lingua franca for developing interactive music performance software.
The SOUL project is creating a new language and infrastructure for writing and deploying audio code. It aims to unlock improvements in latency, performance, portability and ease-of-development that aren't possible with the current mainstream techniques that are being used.
SOUL unlocks native-level speed, even when hosted from slower, safer languages. The SOUL language makes audio coding more accessible and less error-prone, enhancing productivity for both beginners and expert professionals.
Is a cross-platform and multi-target audio synthesis and signal processing library. It was written in C++ and provides bindings to Javascript. It's compatible with native implementations for MacOS, Windows, Linux and iOS systems, and client-side browser-based applications. The main features are:
A few months ago I found this community that is focused on audio programming. They also have a Youtube channel with hundreds of tutorials and a discord server where you can ask questions, and even show your projects or even get a job. If you are interested. It’s called the “The audio Programmer”
Hope this helps you get started. I know there are a lot of option out there and this might confuse you at the beginning but I hope this little guide helps you choose a good starting point depending on your needs and goals since every technology offers different things.