I'm currently working on a project of a VST which should be able to rearranging several MIDI tracks. Here is a simple scheme of what I'm trying to achieve :


As you could notice, this VST is not really a "classic" one meaning that I would like to use several MIDI tracks as input and create the same number of MIDI tracks as output.

I never developed a VST before, would you say that is possible to make a VST like this ? In this case, which language/SDK would you recommend ?

Would you rather recommend to achieve this job by developing a stand-alone application ?

This is my first post here, I hope my question is clear and acceptable by the policy. :)

Thank you in advance,


  • It's not quite clear to me what you want to accomplish, but I don't think you are going to find the answer here (at this StackExchange site). My suspicion though is that you are best trying a different method here. Building a VST that does common things like EQ can be really hard (even with something like Synthmaker). However, if this is something Ableton specific you may have more luck learning how their API works. I believe they have multiple scriptable interfaces and what you want to do looks like it might be better suited for that than a VST. For what it's worth. Good luck!
    – dgo
    Commented Mar 3, 2017 at 2:54
  • Hello ! Thank you for your answer. Indeed, after some research, I think this will be pretty difficult to develop as a standard VST. Looking at Ableton API is a good lead ! Nevertheless, I would like to use my audio plugin in different hosts which use MIDI tracks.. I will try to find a solution.
    – Valentin
    Commented Mar 3, 2017 at 14:32
  • VST/AU/AAX/Whatever plugins act on audio and MIDI data -- that's all. To manipulate tracks/regions/routing in a DAW project, you need to be looking into the scripting/API abilities of that DAW. Unfortunately, I have no idea what that looks like in Live, but maybe someone else here does.
    – Linuxios
    Commented Mar 3, 2017 at 19:32

2 Answers 2


What you are proposing is likely impossible because VST is a streaming interface.

Here's an excerpt from a blog post where I explained a similar issue where people were asking why they couldn't have a real-time paulstretch VST:

I’ve seen a few people ask why there isn’t a real-time version of Paulstretch e.g. as a VST or AU. This proved to be more difficult to explain to people than I expected as most people seem to think the problem is a performance issue.

Even if you had a computer capable of running it in real-time, a Paulstretch DAW plugin is not possible for the following reasons:

An audio plugin (e.g. VST) streams audio from inputs (e.g. a vocal) through onward to the mixer. Inherent in that premise is the requirement that the plugin processes a block of audio input into an equally sized block of audio output; you can’t have the playback position moving slower for some tracks than others or the whole band would get out of step.

Paulstretch, on the other hand, is designed to output more audio than it inputs – that’s kinda the point of it. It could not be turned into a VST because it doesn’t fit the problem they solve.

Companies like Melodyne have also had issues with this (they want access to the vocal tracks before they are played), they have created technologies like ARA

As far as I can tell this is just another integration point into the DAW.

I know Reaper has a very comprehensive API that might be thought of as a Macro on steroids. Perhaps that could achieve what you need? http://www.cockos.com/reaper/sdk/reascript/reascript.php


I see the obvious option is to use Max for Live. Also, another simpler option than a VST would be to make the midi files in some program and import them into Ableton after you did the arrangement.

  • Can you articulate why you think Max for Live should be used.
    – Rory Alsop
    Commented Dec 13, 2017 at 9:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.