apohl79 / audiogridder

DSP servers using general purpose computers and networks
https://audiogridder.com
MIT License
738 stars 77 forks source link

iOS client AUv3 support? #1228

Open jhaleit opened 1 year ago

jhaleit commented 1 year ago

Since we now have Logic Pro for the iPad is there any possibility to see a client in the near future for iOS?

kcoul commented 1 year ago

It may be possible, @apohl79 I can try an Xcode generator to build the server for iOS and we can go from there depending on how things go.

apohl79 commented 1 year ago

Wouldn't the plugin side be what's needed?

kcoul commented 1 year ago

Whoops working too late yesterday, that's what I meant!

kcoul commented 1 year ago

Good news, with https://github.com/apohl79/audiogridder/compare/master...kcoul:audiogridder:iOS-client-AUv3-support and an invocation of Xcode generator like cmake -B cmake-build-ios . -G Xcode -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/ios.toolchain.cmake -DPLATFORM=OS64 -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=<Insert_Dev_Team_ID> -DENABLE_ARC=FALSE -DENABLE_BITCODE=FALSE

I can build the server for iOS. The next step is to determine how to test. I think it should be possible to find a lightweight AUv3 host for iOS to test. Something like this may work if we want close control of the Host itself: https://github.com/bradhowes/AUv3Host and otherwise GarageBand should work well as a free alternative to Logic.

kcoul commented 1 year ago

Also thinking ahead, we will probably need something to route touch events through as Mouse events to the server.

apohl79 commented 1 year ago

That's great news! I have not looked at this, but I guess there is no touch support in juce? Might be something to contribute back if that's the case.

I'm using a fork of juce with some fixes for AG and support for unix sockets, but I never got to check how to send a PR to them, as their gh repo is just a mirror and they work of a forum.

kcoul commented 1 year ago

In fact there is single-touch support, but not (as far as I can recall) multi-touch. I think that would be quite enough for this scenario, as users are unlikely to want to engage with audio plugins using multi-touch. I have been using JUCE to make mobile apps for awhile now actually.

Maybe I am over-worrying about it but we can see once the test harness is up and running - I was thinking mainly about possible edge cases involving the KeyAndMouse classes, but we can cross that bridge when we get there!