DISTRHO / Cardinal

Virtual modular synthesizer plugin
https://cardinal.kx.studio/
GNU General Public License v3.0
2.28k stars 155 forks source link

iOS build #453

Closed lublak closed 1 year ago

lublak commented 1 year ago

Hi :) I love this plugin and it works fine on the desktop. On the app there are also au plugins in the store. It would be useful to have cardinal also as an au plugin app. Than it’s possible to use it on the go with other compatible apps like Cubase 3.

falkTX commented 1 year ago

Technically impossible. Pushing to App Store requires linking against proprietary components, which invalidates the GPLv3 license the project is under. We would need ask permission for all modules and VCV and all libraries authors to allow to publish such thing, and anyone saying no would invalidate the entire thing. So a fully-featured native iOS app is just never going to happen.

Others that exist are based on old VCV Rack codebase that was not GPL licensed, and as such allowed proprietary use.

The best bet for Cardinal on iOS would be through the web assembly version, as demoed on https://cardinal.kx.studio/ But first the webkit engine as implemented by Apple would need to support SIMD, which does not at the moment. And alternative browser engines are not allowed/possible on iOS, so we are blocked there as well.

Until Apple decides to support SIMD in webkit/safari, just consider this impossible.

lublak commented 1 year ago

@falkTX thanks for this info. And thanks for the complete explanation :) I never developed a iOS app and it’s interesting to hear so me background infos. And sad that’s not can be supported. <3

falkTX commented 1 year ago

It is on Apple now to make this work, at least for a browser version.

According to https://bugs.webkit.org/show_bug.cgi?id=222382 there are no blockers for such implementation, so perhaps we see it in a few months.

ihatetoregister commented 7 months ago

Also, alternative browser engines are now possible, in EU that is https://www.theverge.com/2024/1/25/24050478/apple-ios-17-4-browser-engines-eu

falkTX commented 7 months ago

for what is worth, latest version of webkit/safari supports web simd so we dont get performance penalty from that.

but cardinal on the web is still single-threaded (both gui and audio) which is not optimal. supporting threads requires a setup with web workers which I am not familiar with at the moment. but of course contributions are welcome and all that, we just need to add support for that in DPF first.

also there is the issue of touch events not being supported in Rack too