c++/lv2-demo-modul/amp.ttl
author František Kučera <franta-hg@frantovo.cz>
Fri, 15 May 2020 20:32:37 +0200
changeset 59 d6614ad97bed
permissions -rw-r--r--
LV2: modul zesilovače, dle oficiálního příkladu, ale bez závislosti na Pythonu – stačí gcc a make
     1 # The full description of the plugin is in this file, which is linked to from
     2 # `manifest.ttl`.  This is done so the host only needs to scan the relatively
     3 # small `manifest.ttl` files to quickly discover all plugins.
     4 
     5 @prefix doap:  <http://usefulinc.com/ns/doap#> .
     6 @prefix lv2:   <http://lv2plug.in/ns/lv2core#> .
     7 @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
     8 @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
     9 @prefix units: <http://lv2plug.in/ns/extensions/units#> .
    10 
    11 # First the type of the plugin is described.  All plugins must explicitly list
    12 # `lv2:Plugin` as a type.  A more specific type should also be given, where
    13 # applicable, so hosts can present a nicer UI for loading plugins.  Note that
    14 # this URI is the identifier of the plugin, so if it does not match the one in
    15 # `manifest.ttl`, the host will not discover the plugin data at all.
    16 <http://lv2plug.in/plugins/eg-amp>
    17 	a lv2:Plugin ,
    18 		lv2:AmplifierPlugin ;
    19 # Plugins are associated with a project, where common information like
    20 # developers, home page, and so on are described.  This plugin is part of the
    21 # LV2 project, which has URI <http://lv2plug.in/ns/lv2>, and is described
    22 # elsewhere.  Typical plugin collections will describe the project in
    23 # manifest.ttl
    24 	lv2:project <http://lv2plug.in/ns/lv2> ;
    25 # Every plugin must have a name, described with the doap:name property.
    26 # Translations to various languages can be added by putting a language tag
    27 # after strings as shown.
    28 	doap:name "Simple Amplifier" ,
    29 		"简单放大器"@zh ,
    30 		"Einfacher Verstärker"@de ,
    31 		"Simple Amplifier"@en-gb ,
    32 		"Amplificador Simple"@es ,
    33 		"Amplificateur de Base"@fr ,
    34 		"Amplificatore Semplice"@it ,
    35 		"簡単なアンプ"@jp ,
    36 		"Просто Усилитель"@ru ;
    37 	doap:license <http://opensource.org/licenses/isc> ;
    38 	lv2:optionalFeature lv2:hardRTCapable ;
    39 	lv2:port [
    40 # Every port must have at least two types, one that specifies direction
    41 # (lv2:InputPort or lv2:OutputPort), and another to describe the data type.
    42 # This port is a lv2:ControlPort, which means it contains a single float.
    43 		a lv2:InputPort ,
    44 			lv2:ControlPort ;
    45 		lv2:index 0 ;
    46 		lv2:symbol "gain" ;
    47 		lv2:name "Gain" ,
    48 			"收益"@zh ,
    49 			"Verstärkung"@de ,
    50 			"Gain"@en-gb ,
    51 			"Aumento"@es ,
    52 			"Gain"@fr ,
    53 			"Guadagno"@it ,
    54 			"利益"@jp ,
    55 			"Увеличение"@ru ;
    56 # An lv2:ControlPort should always describe its default value, and usually a
    57 # minimum and maximum value.  Defining a range is not strictly required, but
    58 # should be done wherever possible to aid host support, particularly for UIs.
    59 		lv2:default 0.0 ;
    60 		lv2:minimum -90.0 ;
    61 		lv2:maximum 24.0 ;
    62 # Ports can describe units and control detents to allow better UI generation
    63 # and host automation.
    64 		units:unit units:db ;
    65 		lv2:scalePoint [
    66 			rdfs:label "+5" ;
    67 			rdf:value 5.0
    68 		] , [
    69 			rdfs:label "0" ;
    70 			rdf:value 0.0
    71 		] , [
    72 			rdfs:label "-5" ;
    73 			rdf:value -5.0
    74 		] , [
    75 			rdfs:label "-10" ;
    76 			rdf:value -10.0
    77 		]
    78 	] , [
    79 		a lv2:AudioPort ,
    80 			lv2:InputPort ;
    81 		lv2:index 1 ;
    82 		lv2:symbol "in" ;
    83 		lv2:name "In"
    84 	] , [
    85 		a lv2:AudioPort ,
    86 			lv2:OutputPort ;
    87 		lv2:index 2 ;
    88 		lv2:symbol "out" ;
    89 		lv2:name "Out"
    90 	] .