-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplugin_def.ttl
75 lines (73 loc) · 3.44 KB
/
plugin_def.ttl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# The full description of the plugin is in this file, which is linked to from
# `manifest.ttl`. This is done so the host only needs to scan the relatively
# small `manifest.ttl` files to quickly discover all plugins.
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix units: <http://lv2plug.in/ns/extensions/units#> .
# First the type of the plugin is described. All plugins must explicitly list
# `lv2:Plugin` as a type. A more specific type should also be given, where
# applicable, so hosts can present a nicer UI for loading plugins. Note that
# this URI is the identifier of the plugin, so if it does not match the one in
# `manifest.ttl`, the host will not discover the plugin data at all.
<urn:upachler:ebur128-compressor>
a lv2:Plugin ,
lv2:EBUR128CompressorPlugin ;
# Plugins are associated with a project, where common information like
# developers, home page, and so on are described. This plugin is part of the
# lv2rs-book project, which has URI <https://github.com/Janonard/lv2rs-book>, and is described
# elsewhere. Typical plugin collections will describe the project in
# manifest.ttl
lv2:project <https://github.com/Janonard/lv2rs-book> ;
# Every plugin must have a name, described with the doap:name property.
# Translations to various languages can be added by putting a language tag
# after strings as shown later.
doap:name "EBU R128 Dynamic Range Compressor" ;
doap:license <http://opensource.org/licenses/mit> ;
lv2:optionalFeature lv2:hardRTCapable ;
lv2:port [
# Every port must have at least two types, one that specifies direction
# (lv2:InputPort or lv2:OutputPort), and another to describe the data type.
# This port is a lv2:ControlPort, which means it contains a single float.
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 0 ;
lv2:symbol "threshold" ;
lv2:name "Threshold" ,
"Schwellwert"@de ,
"Threshold"@en-gb ;
# An lv2:ControlPort should always describe its default value, and usually a
# minimum and maximum value. Defining a range is not strictly required, but
# should be done wherever possible to aid host support, particularly for UIs.
lv2:default -5.0 ;
lv2:minimum -20.0 ;
lv2:maximum 0.0 ;
# Ports can describe units and control detents to allow better UI generation
# and host automation.
units:unit [
a units:Unit ;
rdfs:label "LUFS" ;
units:symbol "LUFS" ;
units:render "%f LUFS"
] ;
lv2:scalePoint [
rdfs:label "max" ;
rdf:value 0.0
] , [
rdfs:label "min" ;
rdf:value -20.0
]
] , [
a lv2:AudioPort ,
lv2:InputPort ;
lv2:index 1 ;
lv2:symbol "in" ;
lv2:name "In"
] , [
a lv2:AudioPort ,
lv2:OutputPort ;
lv2:index 2 ;
lv2:symbol "out" ;
lv2:name "Out"
] .