free-audio / clap

Audio Plugin API
https://cleveraudio.org/
MIT License
1.73k stars 98 forks source link

Document the relationship between the params and state extensions #294

Closed robbert-vdh closed 1 year ago

robbert-vdh commented 1 year ago

As discussed. Making this behavior explicit is necessary because some plugins are already relying on host-specific implementation details.

baconpaul commented 1 year ago

I agree with these changes.

robbert-vdh commented 1 year ago

The motivation behind forbidding manually persisting parameter values (or at least kindly asking hosts not to) is that unless it is mandatory, plugins can't rely on this behavior and need to implement state anyways (and they'd lose their parameter values if they need to implement state later, but that's beside the point). And if every plugin with parameters thus needs to implement the state extension, then there's no reason for hosts to have this manual persisting behavior. So in the end it's either not necessary or a source of potential confusion when plugins do start relying on one host's behavior only to the realize that their plugin doesn't work as expected with most other hosts.

Bremmers commented 1 year ago

I agree with this too!

abique commented 1 year ago

@robbert-vdh excellent work!