Clarification about kCanAutomate

Hi,

I’m confused about kCanAutomate, and I would like to clarify some points:

  • kCanAutomate can’t be used for an attribute which changes other attributes, but it is unclear for program change?
  • Is it allowed to pass automation data to a parameter which do not have the flag kCanAutomate to the IAudioProcessor?
  • Should the DAW expose to the user parameters which do not have the flag kCanAutomate?
  • Should the DAW let the user create automation for parameters which do not have the flag kCanAutomate?
  • Can the DAW record automation if the parameter do not have the flag kCanAutomate?
  • If the DAW exposes a parameter without kCanAutomate to the user, should the the parameter changes be sent exclusively to the IEditController and not the IAudioProcessor?

Thank you for the clarifications, any additional information would be welcome.

Regards,
Alexandre

Hi Alexandre,
it really just means that the parameter is able to be automated by the DAW without side-effects.

kCanAutomate can’t be used for an attribute which changes other attributes, but it is unclear for program change?

Don’t use for program change.

Is it allowed to pass automation data to a parameter which do not have the flag kCanAutomate to the IAudioProcessor?

No, you should not even record automation for it.

Should the DAW expose to the user parameters which do not have the flag kCanAutomate?

Yes

Should the DAW let the user create automation for parameters which do not have the flag kCanAutomate?

No

Can the DAW record automation if the parameter do not have the flag kCanAutomate?

No

If the DAW exposes a parameter without kCanAutomate to the user, should the the parameter changes be sent exclusively to the IEditController and not the IAudioProcessor?

The parameter changes by the user should be treated equally for all parameters. So don’t do any differentiations.

Does it makes sense ?
Cheers,
Arne

The only way to update a parameter to the IAudioProcessor is to create an automation point right?

There’s no automation point definition in the API. The API just knows “parameter changes”. The kCanAutomate is a hint to the host that this parameter can be automated. If this is not present, the parameter changes should not be recorded or played back in the host. User changes to a parameter are not a recorded automation.

I hope this makes it clearer,
Arne

I meant that we sent the parameter update to the IAudioProcessor using IParameterChanges as we do for processing automation.

I think it is clear now. Thank you :slight_smile: