Questions about developing third party plugs in for DAW's

Discussion in 'Software' started by Pnitty1212, May 18, 2016.

  1. Pnitty1212

    Pnitty1212 Newbie

    Joined:
    Apr 27, 2016
    Messages:
    24
    Likes Received:
    0
    Hi all,
    I am kind of wondering how aus, vsts, and aax third party plug ins are developed.I am specifically wondering about what kind of coding language one would use to make a plug in within a daw that can manipulate midi sequence information. For example, the maschine plug in -- i can open maschine and paint drum patterns and manipulate velocity, the note value, timing, etc, and the changes made to the midi are being translated within the DAW.. Sorry if this is a stupi question.. lol.. But, is this something that any third party developer has the freedom to manipulate in a DAW through some sort of open source code ?.. or would they need to be granted some sort of special access by the parent software in order for them to coexist.. Like.. if i make an amp for distortion, do i need to talk to omnisphere, serum, nexus, n.i, and get them to create a pathway to receive my midi info, or can i force them to read my midi data and send it back through my plug in... and then have my plug in send it back to daw.. Do Arturia Spark developers need to get the green light with Logic and receive some sort of API (like a plug in on word press) in order for them to work together? What coding languages are these plug ins usually written in? And, do you know of any good sources I might be able to research this stuff (that is dummy friendly.. lol)..

    Thanks
     
  2.  
  3. instantkarma

    instantkarma Noisemaker

    Joined:
    May 15, 2016
    Messages:
    25
    Likes Received:
    5
    Location:
    Europe
    Don't know about Maschine but I think you are talking about MIDI plugins... which I'm not familiar with at all. But I believe in Reaper you can do many cool stuff, manipulating the DAW or the like with their JSFX. If you want to do some serious plugin development, this post on KVR is awesome to get you started, though I couldn't find both of the books recommended in Audio Basics section LOL!
     
  4. TwinBorther

    TwinBorther Kapellmeister

    Joined:
    Aug 25, 2015
    Messages:
    125
    Likes Received:
    53
    VST libraries have built in midi integration. I could recommend you Will Pirkle's books. As for language, there is always an argument about that, but c++ is the way to go in the industry (or so they say - not even close to be in it)
     
    • Agree Agree x 2
    • Like Like x 1
    • List
  5. audioplg

    audioplg Ultrasonic

    Joined:
    Sep 21, 2013
    Messages:
    115
    Likes Received:
    27
    aax plugins http://www.avid.com/connectivity-partner-program
    vst plugins http://www.steinberg.net/en/company/developers.html
    au plugins are part of the apple core audio sdk which comes with xtools

    last time i looked you used objective c in xcode to do au plugins
    but vst and aax are c++

    alot of people use a framework like https://forum.juce.com/ to develop then compile into multiple formats.

    as for the midi handling in machine it dose not require any special access to the daw as all the midi is being handled internally in the plugin like when you use it standalone.
    when you develop a plug in there are means to allocate say just audio input and output for a plugin like distortion or a plug with midi input and audio output for a instrument.
    depending on the sdk your using you can have midi on a audio plug for say example assigning midi cc's for control from a controller some sdk's you have to do a lot of work to do this.

    to hand midi to the daw varies again but from past experience they never directly manipulated midi info directly on the arrangement page.
    for example the midi on the arrangement page would pass to the plugin then it would manipulate it like xfer's cthulhu this plug would then have a midi out that your daw will see and you can allocate it as a midi input on a track.

    of hand the only daw i know of that can directly manipulate the midi is ableton using max4live
    reaper may be able to with its scripting but i don't really know about that one

    in cubase Steinberg have the VST Module Architecture SDK which use to be midi plugin sdk specifically for manipulating midi but i never touched that so you would have to research that your self.

    basically you want to learn c++ and have a good grasp of that
    then you whould dive into one of the sdk's like the vst one compile the simple gain plugin run it then start plugin in bit of you own code in
    void AGain::process

    and the actual loop doing the processing of the audio input being this loop
    while (--sampleFrames >= 0)
    {
    (*out1++) += (*in1++) * fGain; // accumulating
    (*out2++) += (*in2++) * fGain;
    }

    a good resource for you is kvr's DSP and Plug-in Development forum there's lots of links to resources
    but if you want to target multiple formats more simply use a framework like juice.
     
    • Agree Agree x 2
    • Interesting Interesting x 2
    • Winner Winner x 1
    • List
  6. Zentropy

    Zentropy Kapellmeister

    Joined:
    Dec 22, 2015
    Messages:
    53
    Likes Received:
    47
    AU plugins are C++ these days too. It's technically possible to use other languages for plugins (VST .Net exists, Delphi was popular years ago, Rust has a semi-functional library, I think Java and Python might?) but noone halfway serious uses or recommends bothering with anything but C++ and I'd not waste time learning anything except C++ for plugins specifically. It's important to note that C++ is pretty complex relative to other common modern languages, and audio plugins are pretty complex compared to normal C++ due to the real-time performance requirement, so learning to program via plugins is somewhat rougher than learning the basics doing something like making a webpage using Python. On the upside, you're also exposed to and forced to learn TONS of important programming concepts, as plugins use nearly all of them sooner or later.

    That said, as for specifics, everything is written to conform to standards (VST SDK standard, for example) so you don't have to communicate with DAW developers to, say, integrate your MIDI pipeline. You're just required to write your code a certain way and the SDK standard guarantees that all DAWs can use your result (assuming you write your end properly). You'll want to use an established framework to handle all of that stuff. JUCE is by far the most developed and used of these frameworks and takes care of literally every piece of the back end for you AND has a really simple and robust GUI development setup as well. JUCE makes it possible to start from nothing and in 10 minutes, end up with a functional (but extremely awful) limiter w/ full GUI in VST/AU/AAX/RTAS formats by writing less than 5 lines of actual code. You can see some of my public JUCE code at https://github.com/SonicZentropy if you want to poke around at what a completed plugin's code looks like!
     
  7. Pnitty1212

    Pnitty1212 Newbie

    Joined:
    Apr 27, 2016
    Messages:
    24
    Likes Received:
    0
    Zentropy ! You're the man! Thank you for this information -- it is a good start! I never thought abotu searching github for dispositorys and kind of reverse engineering them .. this is a great idea.. I am not really a programmer but have been studying it half ass for the last year or so .. I have some great ideas that i don't see in any DAW interface, and want to see how hard it would be to develop them, even if its just to make my life easy ...

    Do you midn if I follow you and maybe send you an instant message here and there and pick your brain about what directions i should be going in?
     
Loading...
Similar Threads - Questions developing third Forum Date
LUFS questions Mixing and Mastering Feb 18, 2024
Questions regarding routing of Bluecat's Patchwork Software Jan 17, 2024
A few stupid beginner's questions Mac / Hackintosh Jan 15, 2024
Questions about Focusrite Saffire Firewire pcie card comparability in 2023 Computer Hardware Dec 20, 2023
Mac m1 Samona Firewall security questions Mac / Hackintosh Dec 16, 2023
Loading...