-
Notifications
You must be signed in to change notification settings - Fork 0
Description
The Template is missing standalone target.
A plugin GUI can be as complex and have as many different screens as a standalone app. While most plugins are single screens there are also plenty that are fairly complex (e.g. https://entonal.studio/). The way you write GUI for a plugin and an app in JUCE is the same. The only difference is that you should’t use modal loops in a plugin UI.
Also, if you are considering building the app/plugin for iOS, make sure your UI doesn’t add any windows to desktop, and any pop-ups, etc. are handled as components added to the top level component of your GUI.
The audio plugin and audio application templates in JUCE treat audio processing somewhat differently. The audio plugin template imposes stricter limitations on how you structure your code: the audio processing (DSP) code has to be completely separate and independent of the GUI code. It also requires setting up plugin parameters in a particular way if you want them to be exposed to the DAW for automation, etc.
Because of this, if you start with the audio plugin template, it will be easier to reuse the same code with the audio application template later. If you go the other way around and start with the audio application, then turning it into a plugin would likely require deep structural refactoring.
The audio plugin template includes a “standalone” exporter target, which will build your plugin into a standalone app, with an addition of a basic audio in/out, midi in/out settings panel. It will be exactly the same as your plugin, just running as an app. So if you want to have extra functionality in your app that is not present in a plugin, then using a separate project from the audio application template and sharing code between the two projects would be best. With that being said, you can have audio recording functionality inside a plugin, so it should be possible to have complete feature parity between the plugin and the standalone version, in which case you can just use the audio plugin template and its “standalone” target.