I’m coming from a Stackoverflow question that lead me here and I go ahead and quote the original question what I try to achieve:
I want to create a plugin for DAWs such as Adobe Audition or Pro Tools, etc. that would do something like this:
- Download a text file (just into the memory would be enough)
- Apply the commands in this file (mostly cut and potentially cross-fade operations) to a project file in a non-destructive manner as if the user just would have done it manually
- Allow the user of the DAW the possibility to keep or remove the individual cuts
Now, I know there are VST, VST3, Audio Unit, etc. But additionally some tools might have their own plugin or add-on functionality. But since this is more a “tool” than an instrument (VSTi) or effect (VSTfx), I’m not sure if these systems are the right way to go.
What would be the recommended way of going about developing such a plugin?
Since I’m new in audio plugin development I’d look for some inputs what the right approach would be for the use case mentioned above. If it’d be an extension that would work more directly on the audio (changing frequencies, etc.) it’d be very clear to me that a VST3 plugin with Juce probably would be the best way to go. But since this is more of a “workflow tool/helper” I’m not that sure if it’s a) even possible and b) the right way to go at all.
Thanks for any inputs!
I think that’s kind of outside the scope of an audio plugin. In general, you don’t have access to any kind of “project file” when running as a plugin. You operate on audio (or MIDI) that the host provides as input, and produce output audio (or MIDI) to the host-provided buffer(s). If you use ARA, then you might be able to provide the kind of editing that you want. You’d have to contact the ARA folks to investigate that line of thought: firstname.lastname@example.org
It sounds like they’re looking to able to create Macros for that Steven Slate Raven DAW touchscreen control surface.
those Macros replicate the mouse actions that happen when you perform multiple edits to audio files.
ARA scope for the above is also limited since it handles fades but consistent data would be per audio file and you have no ability (yet at least) to ask the host to move regions.
Thanks for the clarifications @HowardAntares and @ttg!
So if I understand correctly the way through the plugin architecture doesn’t work for this scenario.
That means such a plugin needs to be developed for each individual DAW, given a supported SDK to build it?
So for example for Adobe Audition we’d need to use the Adobe Audition SDK. For Pro Tools this one or Reaper with ReaScript.
PS: @ matkatmusic: Haven’t heard of that touchscreen. We only work on a software level, no hardware involved.
Yes. Sorry I didn’t catch fast enough to answer on stackoverflow but that’s exactly your answer.
It per-basis. no standardized API.
You can also… (common by a lot of apps) use Accessibility APIs to mock physical user interaction / query the visible UI. but again, this can easily break once the developer redesign and UX/UI flow.
Got it, thanks for the help and inputs @ttg !
Yeah, there’s definitely ways to hack around such limitations, but I currently wouldn’t want to go that route. We’d rather go the individual SDK/solution basis or even a step further back and go another route for a solution.
Thanks again for the quick and thorough help!
Hey @christian. I am interested in doing something pretty similar. Did you achieve something by using Pro Tools SDK? If so, I suppose you used an Audiosuite approach right?
Hi @mcrespo. No, I didn’t further go that route for the moment and we solved it simpler although less ideal (basically the steps above in a manual way: export, import functionality). Still be interested in good solutions though on a plugin basis in case you come across anything relevant!
But I suspect that there’s no standardised way of doing that anyway. So one would have to build on top of the individual APIs (if they exist) of each audio tool.
Thanks for your answer.
I am afraid about being able to do it in Pro Tools to be honest. I don’t even know if the API will allow us to do it. In Reaper I am pretty confident about it. And the other DAWs are not our main priority at the moment.
Nevertheless, I was thinking in creating the funcionality inside our app since it would be more manageable and then render the whole thing. E.g. Revoice, Melodyne, etc
Thanks again and don’t hesitate to contact me if you want to discuss this topic more in depth
From what I understand of Juce is that it’s not intended for plugins like that, but just plugins that base on the audio plugin formats (VST, etc.).
Yes, I think Reaper has an extensive SDK and add-on suite (here) that should allow to do pretty much everything, but I haven’t looked into it in detail.