I would like to synchronise some control data across multiple plugin instances. After some research i found there are multiple solutions:
Shared Memory (Static / Singleton)
This is the simplest solution and works well for plugin instances within the same process. However, it fails in sandboxed environments or when plugins run in separate processes.
Sockets / Named Pipe
More complex, but this approach allows for communication across processes, making it suitable even in sandboxed or isolated plugin environments.
To support as many hosts as possible and to keep it future proof i think sockets or named pipes are the better option. Now i’m curious to what would be the best solution for implementing this.
There is the JUCE InterprocessConnection class, which looks like it’s an easy solution.
I’ve also watched Peter Sciri’s talk on ADC24, where he explains how they use ZeroMQ.
I’m wondering, what would be the (dis)advantages of using ZeroMQ over JUCE? Also i’m quite new to interprocess communication, would it be better to use sockets or named pipes?
