<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    On 26/09/11 06:22 AM, Stefano D'Angelo wrote:
    <blockquote
cite="mid:CANtmRDh0GV2EiOPXTwRD2LO=oM4kNzdzZnWGnstzocjwKVUuNg@mail.gmail.com"
      type="cite">
      <pre wrap="">2011/9/26 David Robillard <a class="moz-txt-link-rfc2396E" href="mailto:d@drobilla.net"><d@drobilla.net></a>:
</pre>
      <blockquote type="cite">
        <pre wrap="">Here is a quick extension for "CV Ports", i.e. audio ports with control
semantics:

<a class="moz-txt-link-freetext" href="http://lv2plug.in/ns/ext/cv-port/">http://lv2plug.in/ns/ext/cv-port/</a>
</pre>
      </blockquote>
      <pre wrap="">
Argh.... sorry for not having followed the discussion when it took
place, but I have to say I really dislike this extension.
</pre>
    </blockquote>
    <br>
    Meh, no big deal, it's just a draft. Those big red letters aren't
    for nothing. :)<br>
    <br>
    <blockquote
cite="mid:CANtmRDh0GV2EiOPXTwRD2LO=oM4kNzdzZnWGnstzocjwKVUuNg@mail.gmail.com"
      type="cite">
      <pre wrap="">The problem is that it can easily go against the "graceful degrading
configuration" concept of LV2. E.g., suppose writing a varispeed
plugin that takes the amount of delay as a control input - you will
end up writing two versions, one using CV ports and another using
normal control ports, if you want to support both kinds of hosts.
</pre>
    </blockquote>
    <br>
    or just don't, and expect hosts to implement this trivial
    extension.  Backwards compatibility would be nice though...<br>
    <br>
    <blockquote
cite="mid:CANtmRDh0GV2EiOPXTwRD2LO=oM4kNzdzZnWGnstzocjwKVUuNg@mail.gmail.com"
      type="cite">
      <pre wrap="">IMO it could be better done like this: cv:CVPort to be a subclass of
lv2:ControlPort and a feature URI to be defined.
</pre>
    </blockquote>
    <br>
    I suppose this could work, since theoretically the port is still
    connected to a buffer with a single float as lv2:ControlPort
    dictates.  Subclass is academic since most hosts don't care anyway,
    the port would have to literally have both types listed.  The only
    way for this to be feasible is if the host supports said feature, it
    guarantees that such ports will ALWAYS be connected to a full
    audio-rate buffer (otherwise you need some mechanism to say which
    it's connected to and things get too complex). This is slightly more
    complex, but not too bad, and only complex for hosts that support
    CV... good idea.<br>
    <br>
    <pedantry><br>
    It's debatable whether or not this violates the spec:<br>
    <br>
    <span class="Apple-style-span" style="border-collapse: separate;
      color: rgb(0, 0, 0); font-family: sans-serif; font-size: 16px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-indent: 0px; text-transform: none; white-space: normal;
      widows: 2; word-spacing: 0px;">"Hosts that do not support a
      specific port class MUST NOT instantiate the plugin, unless that
      port has the connectionOptional property set"<br>
      <br>
      This is ambiguous. We might want to reword that slightly in the
      next revision to explicitly state that hosts can instantiate if
      they understand *some subset* of the port types that describes a
      port type they support, i.e. unknown additional types can be
      ignored. This implies new port types can't modify the definition
      of others, which is good and should be explicit anyway.<br>
    </span></pedantry><br>
    <br>
    -dr<br>
    <br>
  </body>
</html>