# LV2 CV Port Extension # Copyright 2011 David Robillard # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. @prefix cv: . @prefix doap: . @prefix foaf: . @prefix lv2: . @prefix rdf: . @prefix rdfs: . a lv2:Specification ; rdfs:seeAlso <../../people/people.ttl> ; doap:license ; doap:name "LV2 CV Port" ; doap:shortdesc "Control Voltage ports for LV2 plugins." ; doap:developer ; lv2:documentation """

This extension defines Control Voltage (CV) ports, which are audio-rate control ports like those used on classical voltage-controlled synthesizers. These ports serve as control ports like lv2:ControlPort but can also be used for audio-rate modulation of control signals. This enables many types of processing and synthesis which are not possible with a lower control rate.

""" . cv:CVPort a rdfs:Class ; rdfs:label "CV Port" ; rdfs:subClassOf lv2:Port ; lv2:documentation """

Ports of this type have identical semantics to lv2:AudioPort in terms of buffer format and connection/input/output logistics. However, rather than the buffer representing audio, the buffer represents audio-rate control data. A CVPort SHOULD have the same properties a lv2:ControlPort typically has to describe appropriate control values (e.g. lv2:minimum, lv2:maximum, lv2:default)

Hosts SHOULD take care to prevent data from a CVPort port from being used as audio except in cases where this is known to be safe.

Example:

<http://example.org/some-plugin>
    lv2:port [
        a cv:CVPort, lv2:InputPort ;
        lv2:index 0 ;
        lv2:minimum -1.0 ;
        lv2:maximum 1.0 ;
        lv2:default 0.0 ;
        lv2:symbol "modulation" ;
        lv2:name "Modulation" ;
    ] .
""" .