Hey Gang,
I’ve been working on SoundSync, a licensing system for audio software developers.
I was sick a fiddling around with different options as licensing tends to become its own side-project. You start with a serial check, then need activation, restore, machine limits, refunds, revoked licenses, offline behavior, account login, support flows, blah blah blah and suddenly there is a lot of non-audio code living inside an audio product.
For the JUCE side, I wanted the integration to follow one BIG rule, licensing work should NOT belong in processBlock.
The approach is a JUCE package with a licensing component/runtime that handles activation, validation, restore, deactivation, and local machine state away from the audio callback. The plugin reads a small public state and uses that to decide whether protected features should be available.
That is the idea of SoundSync in a nutshell. Give plugin developers licensing and customer access control without turning every plugin project into a custom licensing backend. That means its SUPER easy to set up.
I’m sharing this here because the architecture is specifically aimed at JUCE plugin developers and I thought the audio-thread boundary was worth explaining.
If you have any questions or concerns, feel free to reach out.
More information about Soundsync can be found HERE.
Best and Happy Developments,
Aaron