VST Plugin Coding thread?

Discussion in 'Software' started by ArticStorm, May 28, 2021.

  1. BEAT16

    BEAT16 Audiosexual

    Joined:
    May 24, 2012
    Messages:
    9,081
    Likes Received:
    7,006
    VST plugins programmed by yourself ...

    BY BERND W. ON FEBRUARY 6, 2018 / IN C ++ , JUCE , PROGRAMMING , TUTORIAL , VST DEVELOPMENT

    UPDATE : I restarted the series here since I stopped at some point in 2018. I started the new tutorials in April 2020 ...

    If you've been dealing with music software for years, studying computer science on the side and have also played around with C ++ in VCVRack, at some point you come up with the idea of programming an effects or instrument yourself.

    The language of choice is definitely C ++. Actually, I've spent the last two years working quite intensively with Java. However, performance is one of the most important factors when we talk about real-time audio applications. C or C ++ is unbeatable in this area. If you already have some experience in object-oriented programming, getting started with C ++ is also a bit easier.

    But where do you start? You don't just write down a VST plug-in. You have to deal with complex DSP algorithms, understand Fourier transformations and quickly write optimized C ++ code. This is the core work of an audio application developer.

    However, there are still one or two little things that need to be done beforehand. How do I get audio into my application and how do I get any distorted sound out again? That means I also have to make friends with CoreAudio and / or Asio, DirectSound and WASAPI. And these interfaces alone are only for Mac or Windows. In addition, Linux or possibly iOs and Android is added.

    Next come the interfaces for a wide variety of plug-in formats: VST, VST3, AAX and AU. Not to forget the user interface. These basic requirements alone can be a headache. And if you look at it all from a bird's eye view, the actual audio application makes up a relatively small part of the whole.

    The solution to all of these “secondary” problems is a framework. There are now some C ++ frameworks for building audio plugins. But I've recently started working on JUCE (Jules' Utility Class Extensions). JUCE is a Cross Platform C ++ Application Framework that specializes in audio and GUI applications, among other things. The Jules who lends the framework the first letter is of course Julian Storer . JUCE was created during the development of the DAW Tracktion . Mr. Storer just abstracted the audio and GUI elements from Tracktion and published them in 2004 as an independent framework.

    JUCE is now in version 5.2. JUCE can be used freely. There is a personal and an Edu license. You don't have to pay anything for these licenses. However, when the plug-in or application is started, “ Made with JUCE ” is briefly displayed and the application must be published under the GNU license, i.e. as an open source product. You can even earn money with it, but not more than $ 50k a year. Otherwise there is an indie license and an enterprise license, which then cost money. When you consider how much work there is in JUCE and how much work you can save yourself with it, it's all more than fair.

    Advantages of JUCE at a glance
    - Very efficient thanks to great quality code
    - Cross-platform compatible
    - Cross-plugin compatible (VST, AU, AAX, ...)
    - initially free of charge
    - well documented / good community

    I want to familiarize myself with JUCE in the next few weeks and months, expand my knowledge of C ++ and get into the development of VST plugins. In order to consolidate what I have learned, I want to write articles and tutorials on this topic at irregular intervals. So there will be a small series on JUCE and VST development. In the next post I will first download the framework, introduce the JUCE Projucer and create a first, initially empty plugin ...

    Source: http://tropone.de/2018/02/06/vst-plugins-selbst-programmiert/
     
  2. phumb-reh

    phumb-reh Guest

    cplusplus.com is way out of date and dishes out some bad advice, avoid.

    For instance it doesn't even mention RAII or smart pointers. It's better to have a source that handles the language these days.
     
  3. BEAT16

    BEAT16 Audiosexual

    Joined:
    May 24, 2012
    Messages:
    9,081
    Likes Received:
    7,006
    SynthEdit Alternatives

    SynthEdit is described as 'Build your own VST-compatible synthesizers with Synthedit's drag-and-drop, visual development environment'. There are more than 10 alternatives to SynthEdit for a variety of platforms, including Windows, Mac, Linux, Android and iPhone. The best alternative is Pure Data, which is both free and Open Source. Other great apps like SynthEdit are VCV Rack (Free, Open Source), Max/MSP (Paid), Cabbage Studio (Free, Open Source) and PraxisLIVE (Free, Open Source).

    Pure Data
    Pd (aka Pure Data) is a real-time graphical programming environment for audio, video, and graphical processing.
    https://alternativeto.net/software/pure-data/about/

    VCV Rack
    VCV Rack is a modular synthesizer inspired by Eurorack systems. It acts a host for virtual modules which perform various audio processes. E.G.
    https://alternativeto.net/software/vcv-rack/about/

    Max/MSP
    Interactive visual programming environment for music, audio, and mediaIn use for over twenty years by performers, composers, artists, scientists, teachers, and students, Max...
    https://alternativeto.net/software/max-msp/about/

    Cabbage Studio
    Cabbage Studio is a powerful DAW and environment for creating audio instruments and effects with CSound.
    https://alternativeto.net/software/cabbage-studio/about/

    PraxisLIVE
    Hybrid visual environment for live creative coding.
    https://alternativeto.net/software/praxislive/about/

    ORCA
    Orca is an Esoteric Programming Language and live-coding environment for musical experimentation.
    https://alternativeto.net/software/hundredrabbits-orca/about/

    HISE
    HISE is a cross-platform open source audio application for building virtual instruments.
    https://alternativeto.net/software/hise/about/

    NimSynth
    NimSynth is a cross-platform, modular synthesis workstation built with Nim (programming language).
    https://alternativeto.net/software/nimsynth/about/

    FlowStone
    FlowStone is a visual programming tool that allows you to create your own standalone programs quicker and more easily than ever before.
    https://alternativeto.net/software/flowstone/about/

    DCubix Twist
    Twist is a node-based audio synthesizer that lets you create sound effects and soundtracks.
    https://alternativeto.net/software/dcubix-twist/about/
     
  4. ArticStorm

    ArticStorm Moderator Staff Member

    Joined:
    Jun 7, 2011
    Messages:
    7,710
    Likes Received:
    3,930
    Location:
    AudioSexPro
    ahhh okay i didnt know. I will collect after some days all in the first post.
     
  5. BEAT16

    BEAT16 Audiosexual

    Joined:
    May 24, 2012
    Messages:
    9,081
    Likes Received:
    7,006
    The Lennar Digital Sylenth 1 was developed with SynthEdit. ..!
    Build your own Synth: www.synthedit.com


    Software Description: SynthEdit is a shareware Windows application which uses a modular VPL (Visual Programming Language) to create music synthesizers and effects units. These can then be compiled as VST plug-ins for use in audio applications. SynthEdit first released in 1999 by Jeff McClintock, and version 1.0 was released on 23 June 2005.

    Many programmers have since created additional freeware and payware modules for use within SynthEdit's programming environment. SynthEdit can export creations to VST format. SynthEdit allows users to create VST Instruments and VST Effects. It provides a GUI editing system and full MIDI interface for hardware controllers.

    SynthEdit has also been used to create additional devices that do not fall within the realms of synthesizer or effect units.[example needed] Audio and MIDI plug-ins for SynthEdit can be written in C or C++ using the SynthEdit Music Plugin Standard (SEM) API, which is based on GMPI with some extensions.

    Synth and Synthedit Tutorial video 1 - How to Build A vst synth


    SynthEdit 1.4 - Basic Subtractive Synth Design [Tutorial]

     
    • Like Like x 1
    • Interesting Interesting x 1
    • List
  6. Tob

    Tob Platinum Record

    Joined:
    Jun 4, 2019
    Messages:
    304
    Likes Received:
    201
    If you already have some knowledge in C/C++ Blue Cat's Plug'n Script is a nice starting point. @phumb-reh mentioned it already. Great starting point for those that want to concentrate on plugin coding. A lot of code samples for dsp. it is a really great test bench and it is really easy to make a GUI. The jump to JUCE is not that hard either if you have messed around with plug`n script.
     
    • Like Like x 2
    • Winner Winner x 1
    • List
  7. Xupito

    Xupito Audiosexual

    Joined:
    Jan 21, 2012
    Messages:
    7,239
    Likes Received:
    3,997
    Location:
    Europe
    Nice thread, I'll revisit it later.
    Just wanted to strongly agree with the above fellas. Try Plug'n Script to get idea of how hard is to program a plugin before diving in C++ programming.
     
  8. 1357

    1357 Noisemaker

    Joined:
    Jan 1, 2021
    Messages:
    6
    Likes Received:
    4
    Go here for your textbooks and other literature:
    Here
    And here for video tutorials:
    Here and Academic torrent
     
    Last edited: May 30, 2021
  9. BaSsDuDe

    BaSsDuDe Guest

    Just a musical and vst creation comment I believe is right.
    Getting it out there these days with Spotify and so many other sites disrespecting the writers and programmers rights with so many plugins out there and the new corporate subscription models which now mean nobody actually owns the product ever - Getting it out there is more important than anything else. If people accept that maybe one or only ten people may like what they create, then that removes the "Will anyone like it?" mentality. Do it because you believe in what you do and put it out there. Who knows? You might create something nobody has thought of before and if it is not out there, nobody will ever know about it. :) If the secret sauce can sell, anyone can sell their vst.
    As you were.
     
  10. ArticStorm

    ArticStorm Moderator Staff Member

    Joined:
    Jun 7, 2011
    Messages:
    7,710
    Likes Received:
    3,930
    Location:
    AudioSexPro
    yeah libgen is your friend and google.
     
  11. 1357

    1357 Noisemaker

    Joined:
    Jan 1, 2021
    Messages:
    6
    Likes Received:
    4
    Furthermore, you can investigate effect prototyping using a mathematical software package such as MATLAB or Mathematica. Here is an Mathematica example of what it could do;

    The effect of a lowpass filter on a square wave (notice the isolation):
     
    • Like Like x 1
    • Agree Agree x 1
    • Interesting Interesting x 1
    • List

    Attached Files:

  12. Xupito

    Xupito Audiosexual

    Joined:
    Jan 21, 2012
    Messages:
    7,239
    Likes Received:
    3,997
    Location:
    Europe
    Matlab is a freaking beast and it has a DSP package including VST exporting. Killer tool for prototyping/researching your sound processing. So easy to plot graphs of any kind too.
     
    • Agree Agree x 2
    • Interesting Interesting x 1
    • List
  13. ArticStorm

    ArticStorm Moderator Staff Member

    Joined:
    Jun 7, 2011
    Messages:
    7,710
    Likes Received:
    3,930
    Location:
    AudioSexPro
    • Like Like x 1
    • Interesting Interesting x 1
    • List
  14. ArticStorm

    ArticStorm Moderator Staff Member

    Joined:
    Jun 7, 2011
    Messages:
    7,710
    Likes Received:
    3,930
    Location:
    AudioSexPro
    • Interesting Interesting x 1
    • List
  15. BEAT16

    BEAT16 Audiosexual

    Joined:
    May 24, 2012
    Messages:
    9,081
    Likes Received:
    7,006
  16. ArticStorm

    ArticStorm Moderator Staff Member

    Joined:
    Jun 7, 2011
    Messages:
    7,710
    Likes Received:
    3,930
    Location:
    AudioSexPro
    yeah DiscoDSP has forked it and made changes to it, its also credited, that its based on this one.
     
  17. BEAT16

    BEAT16 Audiosexual

    Joined:
    May 24, 2012
    Messages:
    9,081
    Likes Received:
    7,006
    Does that save programming time?

    Camel Audio's Ben said he worked every day for 4 years until the Camel Audio - Alchemy was finished. The Umnet Oscan said he worked on his Genesis Pro for 8 years. Made his living as a DJ.
     
    • Interesting Interesting x 1
    • List
  18. ArticStorm

    ArticStorm Moderator Staff Member

    Joined:
    Jun 7, 2011
    Messages:
    7,710
    Likes Received:
    3,930
    Location:
    AudioSexPro
    Maybe there is an agreement that discodsp is further developing it and the guy gets money from it, idk.
     
  19. livemouse

    livemouse Producer

    Joined:
    Feb 13, 2016
    Messages:
    289
    Likes Received:
    137
    Try making your own volume control or something in Reaper's ReaJS. Everybody's got a copy of Reaper, and it comes with what seems like hundreds of ReaJS effects and they all have an edit button so you can see what makes them tick.
     
  20. blasterx

    blasterx Kapellmeister

    Joined:
    Nov 1, 2016
    Messages:
    145
    Likes Received:
    53
    Interesting, maybe to be learning for compile Ardour on Windows, and create an ¨Audioz DAW¨
     
Loading...
Similar Threads - Plugin Coding thread Forum Date
Plugins to emulate the effects of lossy encoding ? Software Dec 1, 2023
Juce Diary P02: coding my first plugin Software Oct 20, 2020
Vinyl Mastering Plugins Mixing and Mastering Saturday at 12:58 PM
Guys how do i fix the plugin database to go back to normal FL Studio Thursday at 11:11 PM
Deleting plugins crashing FL Studio? FL Studio Thursday at 10:51 PM
Loading...