Вопрос

I'm implementing an audio algorithm to separate notes from a polyphonic recording (like melodyne). My plan has been, to make it a VST-plugin. Studying the documentation, I have a hard time to figure out how I would implement the non-realtime tasks. The required tasks would be to load a wave file and analyse it non-realtime, before it can be looped and manipulated in realtime. It should be possible to load a new file at any time.

It is quite difficult to find information on the topic. If anyone has experience and could give me a hint:

  • Is this possible with VST? The SDK offers offline processing but the DAWs dont seem to support it.
  • If I make my program a stand-alone, how could I sync it with a VST-host?
  • Does anyone know a good book, which goes into detail?
Это было полезно?

Решение

I think that you're overthinking the offline stuff. :) It's actually quite easy to do, but the tricky part is making a good UI which explains to the user what's going on. If I were you, I would simply do the file loading in a separate thread, and when this task is running you should show a "loading file..." spinner in your GUI and output silence in your process() routine. This will involve a bit of mutexing to make sure that the three threads (GUI, process, & loader) all know what each other is doing.

As for making a standalone version of your plugin, Juce is definitely the way to go. This lovely framework will also take care of the VST/AU plugin abstraction, and allow you to export a standalone app as well. Juce may seem a bit expensive, but if you are going commercial with this plugin, it's worth every penny. If you aren't planning on going commercial, well, you can just GPL your code and use it for free.

If you prefer the DIY route for standalone plugins, you could probably hack something together with MrsWatson. (Disclaimer: I am the author of MrsWatson). At the moment MrsWatson is missing some features you would need for this project, but I am planning on adding them in the future, as this is one use-case which is very common and I would like to support.

As for good VST programming books, well, I don't know any. =/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top