VST Plugin Coding thread?

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

  1. DoubleSharp

    DoubleSharp Platinum Record

    Joined:
    Oct 20, 2015
    Messages:
    244
    Likes Received:
    169
    I've been meaning to try out some of the Faust

    https://faust.grame.fr/

    Some tutorials that were on the sister site a while ago. I was hoping to try it out for WASM.

    From their website...

    "The core component of Faust is its compiler. It allows to "translate" any Faust digital signal processing (DSP) specification to a wide range of non-domain specific languages such as C++, C, JAVA, JavaScript, LLVM bit code, WebAssembly, etc. In this regard, Faust can be seen as an alternative to C++ but is much simpler and intuitive to learn."

    Maybe someone else has some more to add?
     
    • Like Like x 2
    • Interesting Interesting x 1
    • Useful Useful x 1
    • List
  2. Xupito

    Xupito Audiosexual

    Joined:
    Jan 21, 2012
    Messages:
    7,239
    Likes Received:
    3,997
    Location:
    Europe
    I've been thinking about what would be the best starting point for your goals and you might want to check this out. Solid DSP theory from a trusted book. Implemented in nice VST(JUCE) plugins with simple but useful GUIs.
    https://github.com/juandagilc/Audio-Effects
     
    • Like Like x 2
    • Interesting Interesting x 2
    • List
  3. ArticStorm

    ArticStorm Moderator Staff Member

    Joined:
    Jun 7, 2011
    Messages:
    7,710
    Likes Received:
    3,930
    Location:
    AudioSexPro
    forgot about Vital being Open Source: https://github.com/mtytel/vital

    very good find, i will pull it.
     
  4. ArticStorm

    ArticStorm Moderator Staff Member

    Joined:
    Jun 7, 2011
    Messages:
    7,710
    Likes Received:
    3,930
    Location:
    AudioSexPro
  5. lionelc

    lionelc Newbie

    Joined:
    Sep 16, 2018
    Messages:
    12
    Likes Received:
    2
    • Useful Useful x 2
    • Like Like x 1
    • List
  6. ITHertz

    ITHertz Kapellmeister

    Joined:
    Dec 10, 2016
    Messages:
    63
    Likes Received:
    50
    A little bit of both but most of my work involved general programming. When I was a student (University Level) that's when I did most of the audio stuff but that was because I was interested in it. When I finished studying I did think about getting into audio software development but there just weren't enough opportunities in the country I'm from. From time to time I still do some technical writing (you might have read some of my manuals!) and beta testing for some audio companies but not much actual coding - I'm too busy trying to get my mixes to sound better :rofl:

    BTW, I think someone previously mentioned Java (and Python). The problem with Java is that it has automatic garbage collection which tends to blow up audio stuff! The thing to remember is that audio is in some ways more demanding than video because if there is any sort of delay in rendering the audio you'll get clicks, pops or worse. With video, framerates can slow down and users won't mind too much.

    Another thing I always remember too, is that when I first started learning C, the lecturer told us that the initial learning curve is very steep. That is, it's very difficult to do anything programming-wise until you have a general overview and that takes some time. In programming, the rite of passage is to begin with a "Hello World!" program which prints out "Hello World" to the terminal. After that things get more difficult. It's kind of like trying to have a conversation with someone in a foreign language after learning a few phrases - you might be able to say "Hello" but after that it becomes a lot harder!

    And one more thing while I think of it...if you're interested in real-time audio and you want to have some sort of GUI then you need to look into multithreading. If you're using the VST SDK or JUCE then I think it will be taken care of automatically. Otherwise, this is a whole other branch of programming to contend with. From memory, Ross Bencina has written some excellent articles that outline the problems.
     
    Last edited by a moderator: Aug 29, 2021
  7. Arabian_jesus

    Arabian_jesus Audiosexual

    Joined:
    Jul 2, 2019
    Messages:
    974
    Likes Received:
    758
    I see. I can guess that the audio software industry isn't the one where you can make the most money or get a good job easily!

    You are not alone :crazy:
     
  8. Xupito

    Xupito Audiosexual

    Joined:
    Jan 21, 2012
    Messages:
    7,239
    Likes Received:
    3,997
    Location:
    Europe
    I was able to compile this bad boy. Very nice stuff. But you'll need the Intel IPP libraries or the CPU usage will rise like x2-x3
     
  9. GabsIT

    GabsIT Producer

    Joined:
    Oct 29, 2020
    Messages:
    204
    Likes Received:
    133
    Location:
    Asia
    @ITHertz

    Hi, do you know a forum or a community specifically oriented to audio software development?, could be nice something as this forum but with first interest in audio development, coding and then music production. I found some interesting forums but are more about electronics than programming
     
  10. BEAT16

    BEAT16 Audiosexual

    Joined:
    May 24, 2012
    Messages:
    9,081
    Likes Received:
    7,006
    Code:
    DSP and Plug-in Development
    https://www.kvraudio.com/forum/viewforum.php?f=33
    The Audio Programmer
    https://theaudioprogrammer.com
     
  11. GabsIT

    GabsIT Producer

    Joined:
    Oct 29, 2020
    Messages:
    204
    Likes Received:
    133
    Location:
    Asia
    Hi Beat16, many thanks, checking some of the post in KVR I found this https://yofiel.com/audio/synthcore.php its intended for Max for Live but the raw code is easy to port to any language, pretty cool lib and useful for what I am doing.
    /* SYNTHCORE v2.4 - ALL AUDIO IN GEN
    - LIBRARY CONTENTS
    * MATHS - qcos(), qsin(), db2a().
    * PANS & SMOOTHERS - pan1(), pan2(), smoother(), smoother2(), smoother3(),
    rampgate(), ramptrig(), line().
    * SATURATORS- parabol1(), parabol2(), paraboln(), hyperbol().
    * 1-POLE FILTERS - static(), staticlo(), statichi(), shelflo(), shelfhi().
    * BIQUADS - biquad(), biquad0(), biquadlow(), biquadlo2(), biguadlo3(),
    biquadband(), biquadband2(), biquadband3(), biquadhi(), biquadhi2(),
    biquadhi3(), biquadnotch(), biquadval(), biquadamp(), biquadplot(),
    biquadplot2().
    * RAMP OSCS - ramp(), ramptrg(), rampgate(), rampphase(), rampsoft(),
    rampsofter(), rampramp(), rampramper().
    * OSCS - sine(), pulse1(), pulse2(), eptr(), eptrpulse(), eptrpulse3x(),
    sawdown(), sawup(), tri(), tri2(), sawtri(), karplus(), karplusd(),
    karplusenv(), karplusm(), waveset(), noiselpf(), noisebpf(), noisehpf(),
    noisenotch(), pinknoise(), noiseosc(), osc().
    * IIR - comb().
    * SVFs - upsample(), downsample(), svf(), svfCoeffs3x(), gainComp(),
    svfMixer(), filt3x(), filt().
    * LFOs - lfo(), lfopoly().
    * EnvS - adsr(), adsrloop(), padsrloop(), adbdsrloop(), padbdsrloop().
    * EFFECTS - glide(), ping1(), ping2(), chorus1(), chorus2(), diffdelay(),
    earlyreflections(), tank(), reverb()
     
    • Interesting Interesting x 1
    • List
  12. ArticStorm

    ArticStorm Moderator Staff Member

    Joined:
    Jun 7, 2011
    Messages:
    7,710
    Likes Received:
    3,930
    Location:
    AudioSexPro
    WTF so many weeks already have passed, learned alot about DSP stuff, reverberation, Filters, etc.

    But first i guess i need to learn more C++.
    found some books about that already and online tutorials.

    Maths seems still quite easy ...
     
    • Like Like x 1
    • Agree Agree x 1
    • List
  13. Xupito

    Xupito Audiosexual

    Joined:
    Jan 21, 2012
    Messages:
    7,239
    Likes Received:
    3,997
    Location:
    Europe
    Real time C++ coding's a bitch. From the DSP math to an implementation there're a lot of tricks, traps and nuances.
    I can only advice to rely as much as possible on existing libraries. Even plugins in modular daw/host/plugin.
     
  14. ArticStorm

    ArticStorm Moderator Staff Member

    Joined:
    Jun 7, 2011
    Messages:
    7,710
    Likes Received:
    3,930
    Location:
    AudioSexPro
    The abstraction gets me really. How can i come from my signal flow diagram to C++ code with the help of JUCE.

    I mean its def easy (for me easy i think?!) to know how the theory looks (it amazed me really still, how beautiful this is)

    For sure i know what you mean. I have coded python stuff and other language stuff and finding any typos, bugs or just misunderstand of the language is very time consuming ...

    Wonder why Cycling74 removed these Max5 tutorials: https://docs.cycling74.com/max5/tutorials/msp-tut/mspindex.html

    they are very helpful.
     
  15. Xupito

    Xupito Audiosexual

    Joined:
    Jan 21, 2012
    Messages:
    7,239
    Likes Received:
    3,997
    Location:
    Europe
    Yeah, that's hard. And why I advice a modular software approach. Of course, that limits the options oftentimes. In fact Juce comes with this amazing example app called AudioPluginHost that allows you to develop faster.

    But no matter what Juce or other library does one unavoidable and huge problem of C++ is the loooong compiling times.
    That's why I also usually recommend scripting plugins like Blue Cat's Audio Plug'N Script.
    No clue. I guess there's an updated version?

    Edited: I think is this one:
    https://docs.cycling74.com/max8/tutorials/00_mspindex
     
    Last edited: Aug 26, 2021
  16. ArticStorm

    ArticStorm Moderator Staff Member

    Joined:
    Jun 7, 2011
    Messages:
    7,710
    Likes Received:
    3,930
    Location:
    AudioSexPro
    Yeah i decided to go with Max/MSP for now. Yesterday i tried to patch together the classical Schroeder Reverb from 1961 (this paper is genius!)
    The use of allpass and feedback comb filters and the mixing at the end - wow it blew me away.

    I guess i will have to go the extra mile and patch the signal paths together in Max first. Which i like quite so far.
    And then i can maybe start to make something simple with JUCE.

    Yeah compiling takes a while here - ughh thats true. Even longer when you can develop only on an old notebook. Hope the new comp i want to build can do this faster?!

    I can check out PlugNScript by Blue Cats.

    Thanks for the Max 8 link, it looks indeed like a more expanded version.
     
  17. BEAT16

    BEAT16 Audiosexual

    Joined:
    May 24, 2012
    Messages:
    9,081
    Likes Received:
    7,006
    Congratulations - things are going well, I already have a suggestion for a name for the reverb, etc.: audiosex.pro!
     
  18. ArticStorm

    ArticStorm Moderator Staff Member

    Joined:
    Jun 7, 2011
    Messages:
    7,710
    Likes Received:
    3,930
    Location:
    AudioSexPro
  19. Smoove Grooves

    Smoove Grooves Audiosexual

    Joined:
    Jan 26, 2019
    Messages:
    5,184
    Likes Received:
    1,962
    This forum, the 'Software' Forum.
    Of all the different forums here at AS, why not ask the mods to create a Software Development Forum too?
    We have forums here for every other topic (under Navigation/Search Forums), and have many threads in them all.
    Why not do it?
     
  20. ButchyBear

    ButchyBear Newbie

    Joined:
    Oct 13, 2020
    Messages:
    20
    Likes Received:
    2
    Location:
    Rochester, NY
    Oops, wrong thread, sorry
     
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...