2012/5/25 Jeremy Salwen <jeremysalwen(a)gmail.com>om>:
Hi all,
The LV2 spec says that on a call to activate(), "the plugin instance MUST
reset all state information dependent on the history of the plugin instance
except for any data locations provided by connect_port()"
I am not certain whether MIDI CC parameters are included in this category of
"data locations provided by connect_port()". The CC parameters are sent
through port buffers provided by connect_port(), but because they are event
buffers, all information passed through them is necessarily part of the
history of the plugin instance.
I could imagine cases where you would want to reset all internal state of
the plugin, but since CC values are very much like port values, they would
be kept. On the other hand, I could also imagine cases where you would want
to reset all internal data including the CC parameters.
I'm assuming MIDI note on/off status certainly should be reset.
<personal opinion>
I have always interpreted activate()/deactivate() as a real-time safe
alternative to instantiate()/cleanup(), so I'd say restart fresh, wipe
out everything.
I do not necessarily agree that MIDI CC is like a port value, since
when the first run() after the first activate() is called and there's
no incoming CC event, however you probably need to be in a certain
"initial state".
</personal opinion>
Concrete use case would help.
Stefano