From 8de1a3f5e38c7c8bc02f8e1efe59e680d0349ee2 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 25 Sep 2011 21:46:02 +0000 Subject: Add CV Port extension. --- ext/cv-port.lv2/cv-port.ttl | 78 ++++++++++++++++++++++++++++++++++++++++++++ ext/cv-port.lv2/manifest.ttl | 9 +++++ ext/cv-port.lv2/waf | 1 + ext/cv-port.lv2/wscript | 33 +++++++++++++++++++ 4 files changed, 121 insertions(+) create mode 100644 ext/cv-port.lv2/cv-port.ttl create mode 100644 ext/cv-port.lv2/manifest.ttl create mode 120000 ext/cv-port.lv2/waf create mode 100644 ext/cv-port.lv2/wscript (limited to 'ext/cv-port.lv2') diff --git a/ext/cv-port.lv2/cv-port.ttl b/ext/cv-port.lv2/cv-port.ttl new file mode 100644 index 0000000..c9582df --- /dev/null +++ b/ext/cv-port.lv2/cv-port.ttl @@ -0,0 +1,78 @@ +# 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 ; + doap:license ; + doap:name "LV2 CV Port" ; + doap:maintainer [ + a foaf:Person ; + foaf:name "David Robillard" ; + foaf:homepage ; + rdfs:seeAlso + ] ; + 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" ;
+	] .
+
+""" . diff --git a/ext/cv-port.lv2/manifest.ttl b/ext/cv-port.lv2/manifest.ttl new file mode 100644 index 0000000..e5fa145 --- /dev/null +++ b/ext/cv-port.lv2/manifest.ttl @@ -0,0 +1,9 @@ +@prefix lv2: . +@prefix rdfs: . + + + a lv2:Specification ; + lv2:minorVersion 0 ; + lv2:microVersion 1 ; + rdfs:seeAlso . + diff --git a/ext/cv-port.lv2/waf b/ext/cv-port.lv2/waf new file mode 120000 index 0000000..59a1ac9 --- /dev/null +++ b/ext/cv-port.lv2/waf @@ -0,0 +1 @@ +../../waf \ No newline at end of file diff --git a/ext/cv-port.lv2/wscript b/ext/cv-port.lv2/wscript new file mode 100644 index 0000000..9823edd --- /dev/null +++ b/ext/cv-port.lv2/wscript @@ -0,0 +1,33 @@ +#!/usr/bin/env python +from waflib.extras import autowaf as autowaf +import waflib.Logs as Logs + +# Variables for 'waf dist' +APPNAME = 'lv2-event' +VERSION = '1.2' + +# Mandatory variables +top = '.' +out = 'build' + +def options(opt): + autowaf.set_options(opt) + +def configure(conf): + autowaf.configure(conf) + autowaf.display_msg(conf, "LV2 bundle directory", + conf.env['LV2DIR']) + print('') + +def build(bld): + bld.install_files('${LV2DIR}/event.lv2', + bld.path.ant_glob('*.*')) + + bld.add_post_fun(warn_lv2config) + +def warn_lv2config(ctx): + if ctx.cmd == 'install': + Logs.warn(''' +* LV2 Extension Installed +* You need to run lv2config to update extension headers +''') -- cgit v1.2.1