Hey!
Been a long time since I posted here. In the spirit of doing things the "wrong" way (which is what we're all about, right? ;) You _might_ consider architecting your app using two (or more) concurrent instances of ChucK; one with your synthesis stuff, and one doing your heavy computation. The one doing the math could be set up to have a local OSC API for sending the parameters in and your other code could just wait on the response (advancing time in the main chuck instance, while the calculations are being done elsewhere). You would have to have some structure around the communications, but there are ways to make that easier with functors (paging Michael Heuer).
The good thing about this is that you get to take advantage of your computer's multiple processors, since Chuck is single-threaded (last I checked). Besides, if your calculations are that intense, what's another couple of milliseconds for OSC communication? Plus, your calculations might run faster this way... maybe.
Or don't consider that because it's crazy. ;) Fwiw, I've definitely run into applications that required multiple Chuck instances talking to each other, although usually I'm trying to use multiple sound cards simultaneously. I've also abused named pipes in service of inter-application communications, although I really don't recommend that.
Best,
Mike
--
Michael Clemow
he/him/his
Artist/Composer/Sound Designer