MIDI Plugin in VST Format?

Discussion in 'KONTAKT: Sampling, Programming & Scripting' started by Hans Adamson, May 24, 2019.

  1. d.healey

    d.healey Music Monkey

    2,652
    1,430
    Nov 2, 2011
    England
  2. Dewdman42

    Dewdman42 Senior Member

    1,663
    763
    Oct 28, 2016
    The author doesn't have it yet, but if you need an AUMFX version to use in LogicPro, lemme know, I built it from his source and have it posted somewhere... I think he's going to look into adding that to his distribution since i did it, but I don't think he's done it yet.

    here: https://www.logicprohelp.com/forum/viewtopic.php?f=45&t=141805
     
    Hans Adamson likes this.
  3. angeruroth

    angeruroth Member

    132
    145
    Dec 11, 2014
    C++ is a bit harder to learn, but if you have the time, it would let you do everything you want and more, and it should run faster, cause latency is important.
    It would also allow you to use the best UI framework possible, if you learn got to use it. And you coul even make a TCP server to control all your plugin instances from a central window.
    But yeah, it would take time and effort.
    If you are not sure, maybe the best option is to use one of the tools previously mentioned.
     
    Hans Adamson likes this.
  4. Dewdman42

    Dewdman42 Senior Member

    1,663
    763
    Oct 28, 2016
    The scripters mentioned will not add any latency. Yes C++ runs faster then Lua or Javascript, but Lua and Javascript both run perfectly fast enough for midi processing, its not a concern. In any case, they will not add any latency at all period. The worst that can happen is that they might increase CPU usage and/or eventually might be doing something so radically complex that midi events get dropped or something, but latency would not be effected AT ALL.

    I have done some LogicPro Scripter scripts in Javascript that are literally thousands of lines of javascript code...granted, I'm being careful not to do anything stupid, but they do not even register even one extra percent of cpu usage...its really not a concern for most people.

    The main advantage of C++ is that you can build a real GUI with it. But do not under-estimate the amount of effort required to learn C++.
     
    Hans Adamson likes this.
  5. OP
    OP
    Hans Adamson

    Hans Adamson Senior Member

    Thanks Angeruroth, I have had a C++ book on my bedside table for many years, but there has always been something more important than to go through the chapters one by one and do the exercises. So I have only started. I want to do it, but realistically I may have to find an easier way. My goal is to create a VST plugin (as well as plugins in AU and RTAS format) based on the multiscript I have already written, that I can sell commercially. So I don't want to include proprietary software from another company, or be dependent on open source material in the final product. ATM I am exploring my options and trying to figure out the shortest way to get there.
     
  6. Dewdman42

    Dewdman42 Senior Member

    1,663
    763
    Oct 28, 2016
    if you are going to sell it, I recommend C++ then. All the way.
     
    Hans Adamson likes this.
  7. OP
    OP
    Hans Adamson

    Hans Adamson Senior Member

    OK the book I had started with is "Programming in C" by Stephen G. Kochan, so it is not about C++. Would reading the book be a first stage to learn C++?
     
  8. Dewdman42

    Dewdman42 Senior Member

    1,663
    763
    Oct 28, 2016
    yes, somewhat. But really C++ is big step in a new direction from there, you are better off finding a C++ for beginners.
     
    Hans Adamson likes this.
  9. OP
    OP
    Hans Adamson

    Hans Adamson Senior Member

    I just want to make sure I am understanding the MIDI signal chain correctly when using a VST plugin. Can a multiscript for processing the MIDI signal (Port A, 16 channels) be ported to a VST plugin and function in the same way. I.e. after port A's 16 MIDI ch are processed by the plugin, the various processing results for the different channels may be distributed to individual tracks containing instruments designated port A midi channels 1-16? That's the way my multiscript is working at the moment. I want it to work the same way also when the multiscript is replaced by a VST plugin.
     
  10. EvilDragon

    EvilDragon KSP Wizard

    6,106
    3,978
    May 25, 2010
    Croatia
    MIDI routing is completely up to the host, not the plugin.
     
    Hans Adamson likes this.
  11. Lukas

    Lukas Keyboardist / composer

    70
    106
    Nov 27, 2018
    Mainz/Germany
    ...but of course it's possible to process multiple MIDI channels in one plugin. The DAW only has to route it this way (which should work in any contemporary DAW).
     
    Hans Adamson likes this.
  12. neblix

    neblix Music, Math, Cats

    255
    247
    Jul 22, 2010
    Philadelphia, PA
    Use JUCE (C++) or HISE (JavaScript) frameworks for building VST's. They have a lot of professional support.
     
    Hans Adamson and d.healey like this.
  13. OP
    OP
    Hans Adamson

    Hans Adamson Senior Member

    JUCE looks interesting to me. Anyone created plugins with custom interfaces using it?
     
  14. EvilDragon

    EvilDragon KSP Wizard

    6,106
    3,978
    May 25, 2010
    Croatia
    Sure, UVI Falcon, Modartt Pianoteq, Valhalla everything, Madrona Labs everything...
     
  15. OP
    OP
    Hans Adamson

    Hans Adamson Senior Member

    I am trying to install/open Juce, but it is just impossible. A page opens directing me to join "Roli" before I can use Juce. When I try to enroll in "Roli", I receive a message that I need to activate java script in my browser (Chrome). I check the Chrome settings, and java script is already enabled. I test it on several java testing web sites that verifies that java is on and working. "Roli" still won't let me sign up and tells me I have to enable java script. Then I start all over and get back to the same result. What should I do?
    I am on a PC running Windows 7.
     
  16. OP
    OP
    Hans Adamson

    Hans Adamson Senior Member

    It gets weirder. I tried to post a question about my problem on the Juce Forum, and I was immediately directed to join "Roli", which I did successfully. Happy, I try to open Juce again, but once again it refuses me to get beyond the "enroll in Roli", enable java script routine, etc.... :(
     
  17. d.healey

    d.healey Music Monkey

    2,652
    1,430
    Nov 2, 2011
    England
    Unfortunately, as happens too often with "successful" free software companies, Roli have hidden away their free software lineage so that most new users are completely unaware that... Roli has a github page where you can download the latest source and build JUCE yourself - anonymously https://github.com/WeAreROLI/JUCE
     
    Hans Adamson likes this.
  18. OP
    OP
    Hans Adamson

    Hans Adamson Senior Member

    Thanks David, I'll try and download from github. I am confused about the requirements on the page though:
    Building JUCE Projects
    • macOS: macOS 10.11 and Xcode 7.3.1
    • Windows: Windows 8.1 and Visual Studio 2013 64-bit
    • Linux: GCC 4.8
    Minimum Deployment Targets
    • macOS: macOS 10.7
    • Windows: Windows Vista
    • Linux: Mainstream Linux distributions
    Does this mean I must have Windows 8 and anyone that will use the plugin must have the "Minimum Deployment Targets"?
     
  19. d.healey

    d.healey Music Monkey

    2,652
    1,430
    Nov 2, 2011
    England
    I assume those are the minimum requirements. It definitely runs on newer versions.
     
    Hans Adamson likes this.
  20. Light and Sound

    Light and Sound Developer

    184
    409
    Feb 25, 2016
    Ireland
    For juce development you just need juce and a c++ compiler. For stability I recommend visual studio, if you're on Windows you can run it. Juce has a tutorials page and a few guides on YouTube including setting up from scratch, should be enough for anyone looking to get started.

    The requirements for users are based on setting set within the juce producer prior to starting a project (and the compiler/system requirements will be project dependant anyway)
     
    Last edited: May 30, 2019
    Hans Adamson likes this.

Share This Page