Open lewloiwc opened 1 month ago
Which version of live?
Confirmed on 11.3.10 and 12.0
Thanks!
When the processes are arranged in chronological order, they look like this: init() activate() start_processing() save() load() save() deactivate() activate() start_processing() process() PluginSyncMainToAudio(plugin, process->out_events); (sends parameter values to the host using try_push()) c99dist_process_event(plug, hdr); (for some reason, the default parameter value is sent from the host, which causes issues)
By making these changes, parameters can be successfully loaded:
bool is_ignore;
to clap_c99_distortion_plug
.plug->is_ignore = true;
to c99dist_state_load()
.if (hdr->space_id == CLAP_CORE_EVENT_SPACE_ID && plug->is_ignore == false)
.plug->is_ignore = false;
here.However, since this CLAP does not perform try_push()
, the parameters loaded will not be displayed accurately in the host's simple UI, but if you actually apply the effect to the sound, you'll find that the state itself is being loaded correctly.
so basically the first process block after a load has the entire set of params as defaults set into the input queue it sounds like?
@defiantnerd did you test in live much with the wrapper? I have not. but it sounds like we should!
That’s exactly right!
I believe the actual problem is on Ableton Live's side rather than with the clap-wrapper, but I'd like to hear everyone's opinions.
After load(), even if we send the current parameter values to the host using try_push() in process(), for some reason Live then sends default values back to CLAP, resulting in all parameters being reset to their default values.
Live sends incorrect values to CLAP only during the first sample of process() after load(), so we've managed to successfully load parameters by ignoring it only at that time.