Currently, a plugin writer is in a bit of a sticky situation: if the plugin supports MIDI CC events, then the internal parameters are hidden from the host.  You can do something where you have a switch which toggles between MIDI CC control, and Control Port control, but this is not a fun thing to do, and I think it is additionally confusing for the user.<br>

<br>I was thinking about the ideal behavior from the user's point of view, and a realize that a knob which sends midi CC events to the plugin would be ideal.  It would be bonus if this knob listened to the MIDI stream and adjusted its value to match.  If there were an extension which specifies "virtual ports" in the .ttl which are actually just refences to a midi port + a CC index, and the host just displays a knob which generates events for the MIDI port, then the plugin would be relieved of the duty of having "duplicate" inputs.  I think this is simple enough that it could be easily be transparently implemented in lilv or whatever successor library.<br>

<br>On top of the nice behavior for CC controls, this sort of extension could easily use the atom:sequence extension to allow control ports which are event based (again transparent to the host application if desired).  I know some people on the mailing list consider such a mechanism superior, and this could be a stepping stone towards widespread LV2 support for this sort of control (with plugins getting parameter changes before they happen, etc), while still providing perfect backwards compatibility for hosts who don't want that fine level of control.<br>

<br>As always, I may be far off track, so let me know where I'm wrong.  I'm happy to help with code, etc, and I'm currently working on a host and synthesizer in tandem, so they could easily become a proof-of-concept for this sort of extension.<br>

<br>Jeremy<br>