VST 3 SDK
VST 3.6.14
SDK for developing VST Plug-in
|
iOS InterApp-Audio Application out of your VST 3 Plug-in
The VST 3 SDK provides an easy way to create an iOS InterApp-Audio Application out of your VST 3 Plug-in.
The SDK comes with an iOS VST 3 host application that can run standalone or as an Inter-App Audio slave. If your plug-in does not use any specific Windows or Mac OS X API's, it should be reasonably easy to get your plug-in running on iOS.
If you use VSTGUI4 with the VST3Editor class as your UI, you mainly only have to create a new UI description for the different device sizes.
Xcode created some files for you when you created the project. One of it is the App Delegate. You need to change the base class from NSResponder<UIApplicationDelegate> to VSTInterAppAudioAppDelegateBase (you need to import its header file which is here : public.sdk/source/vst/interappaudio/VSTInterAppAudioAppDelegateBase.h) and then remove all methods from it. If you want to add some custom behavior to your app, you should do it in your App Delegate class implementation. Per example, if you want to only allow landscape mode, you have to add this method:
Make sure to call the super method if you override one of the methods implemented by VSTInterAppAudioAppDelegateBase (see the header which one are implemented).
To create a different view for iOS, you can check the host context for the IInterAppAudioWrapper interface:
VSTGUI 4.3 or higher includes support for iOS. You can use it the same like you use it for Windows or Mac OS X. See the VSTGUI documentation for some limitations.
If you want to create a native UIView as your plug-in editor, you have to create your own IPlugView derivate and attach the UIView in the IPlugView::attached method. An example of this can be seen in public.sdk/samples/vst/adelay/interappaudio/iosEditor.mm
The example project in public.sdk/samples/vst/InterAppAudio uses a custom solution to show the UI for controlling and switching to the host application. You should take this as an example if you want to add it this way. You can also use the UI Apple provides with the its example source for Inter-App Audio.
But you can also implement the host UI integration into your plug-in view. Your edit controller will get an interface to IInterAppAudioHost via its initialize method which you can use to get the host icon and send commands or switch to the host. If you use this method to show the host controls you should implement the IInterAppAudioConnectionNotification interface in your edit controller to conditionally show or hide the controls depending on the connection state.