I’d like to build an app that processes an audio stream in real time, with processing parameters controlled from a GUI. I’m looking for suggestions on how to approach this, or better yet, pointers to examples if they exist.
My first thought is:
the real-time loop runs in a separate thread, using PortAudio.jl for i/o, with Julia code in the middle to process the stream.
the GUI runs in the main Julia thread, and sends control information (eg, “stop”) and changes to processing parameters to the real-time loop through some safe mechanism (RingBuffers.jl looks like a good candidate).
Thanks @jar1. They don’t have a GUI front end so it doesn’t solve my immediate problem. However, they address some questions I will be asking soon so thanks for pointing me to it.
Thanks. What I was primarily looking for is an example of the multithreading with one thread running a tight real time loop and one (or more) much lower priority such as, but not necessarily, graphics. Sorry I wasn’t more clear.