You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AudioUnit does not seem to report parameter updates to the host if audio is not running.
Easy to reproduce on Max/MSP, where the audio engine can be enabled or disabled separately.
Probably happens since the process callback that would enqueue the changes coming from the GUI does not get called. This would probably also be an issue with AAX if such wrapper was written.
Easiest fix would probably be to add a timer that calls the processing even when GUI is not running. However, CPLUG would likely benefit from having a mechanism for parameter updates that is decoupled from the processing loop, but it would be quite a large rethink and refactor. :)
The text was updated successfully, but these errors were encountered:
Interesting. A potential solution may look like this:
structCplugHostContext
{
// [Any thread] VST3 & AUv2 only. Send parameter update to hostvoid (*parameterChanged)(structCplugHostContext*ctx, uint32_teventType, uint32_tparamIndex, doublevalue);
// ... other features
};
CPLUG_APIvoid*cplug_createPlugin(structCplugHostContext*);
A plugin would simply keep a copy of the pointer and call the method from its GUI for example. This would only introduce a minor API change to the CPLUG API & wrapper implementations, and it would work well with other suggested features. See #3 (comment).
This change would be the second half to this existing function:
Unfortunately I won't test this any time soon because I don't own Max or plan on buying it any time soon. Their 30 day trial will force me to buy it if I choose to start promising support for the platform.
AudioUnit does not seem to report parameter updates to the host if audio is not running.
Easy to reproduce on Max/MSP, where the audio engine can be enabled or disabled separately.
Probably happens since the process callback that would enqueue the changes coming from the GUI does not get called. This would probably also be an issue with AAX if such wrapper was written.
Easiest fix would probably be to add a timer that calls the processing even when GUI is not running. However, CPLUG would likely benefit from having a mechanism for parameter updates that is decoupled from the processing loop, but it would be quite a large rethink and refactor. :)
The text was updated successfully, but these errors were encountered: