There are many plugins on the market these days that can “talk” to each other when inserted on multiple tracks and buses (plugins that show EQ conflicts, etc.). How is this cross plugin communication being done - and, most importantly - is there any way to do it with iPlug2?
#include <atomic>
namespace MyGroups {
inline std::atomic<int> gCount[4] {0};
inline std::atomic<double> gParamLink[3][19] {0};
inline PresetDef gClipboard;
inline std::atomic<bool> gClipboardValid;
inline std::atomic<bool> gBlockGang {false};
}
I put this at the top of MyPlugin.h, to link all 19 parameters across all instances of MyPlugin (with 3 separate gang groups) and to enable custom CopyPaste logic.
In short, use global variables.