@prefix atom: . @prefix doap: . @prefix lv2: . @prefix param: . @prefix patch: . @prefix plug: . @prefix rdfs: . @prefix state: . @prefix urid: . @prefix xsd: . # An existing parameter or RDF property can be used as a parameter. The LV2 # parameters extension defines many # common audio parameters. Where possible, existing parameters should be used # so hosts can intelligently control plugins. # If no suitable parameter exists, one can be defined for the plugin like so: plug:int a lv2:Parameter ; rdfs:label "int" ; rdfs:range atom:Int . plug:long a lv2:Parameter ; rdfs:label "long" ; rdfs:range atom:Long . plug:float a lv2:Parameter ; rdfs:label "float" ; rdfs:range atom:Float . plug:double a lv2:Parameter ; rdfs:label "double" ; rdfs:range atom:Double . plug:bool a lv2:Parameter ; rdfs:label "bool" ; rdfs:range atom:Bool . plug:string a lv2:Parameter ; rdfs:label "string" ; rdfs:range atom:String . plug:path a lv2:Parameter ; rdfs:label "path" ; rdfs:range atom:Path . plug:lfo a lv2:Parameter ; rdfs:label "LFO" ; rdfs:range atom:Float ; lv2:minimum -1.0 ; lv2:maximum 1.0 . plug:spring a lv2:Parameter ; rdfs:label "spring" ; rdfs:range atom:Float . # Most of the plugin description is similar to the others we have seen, but # this plugin has only two ports, for receiving and sending messages used to # manipulate and access parameters. a lv2:Plugin , lv2:UtilityPlugin ; doap:name "Example Parameters" ; doap:license ; lv2:project ; lv2:requiredFeature urid:map ; lv2:optionalFeature lv2:hardRTCapable , state:loadDefaultState ; lv2:extensionData state:interface ; lv2:port [ a lv2:InputPort , atom:AtomPort ; atom:bufferType atom:Sequence ; atom:supports patch:Message ; lv2:index 0 ; lv2:symbol "in" ; lv2:name "In" ] , [ a lv2:OutputPort , atom:AtomPort ; atom:bufferType atom:Sequence ; atom:supports patch:Message ; lv2:index 1 ; lv2:symbol "out" ; lv2:name "Out" ] ; # The plugin must list all parameters that can be written (e.g. changed by the # user) as patch:writable: patch:writable plug:int , plug:long , plug:float , plug:double , plug:bool , plug:string , plug:path , plug:spring ; # Similarly, parameters that may change internally must be listed as patch:readable, # meaning to host should watch for changes to the parameter's value: patch:readable plug:lfo , plug:spring ; # Parameters map directly to properties of the plugin's state. So, we can # specify initial parameter values with the state:state property. The # state:loadDefaultState feature (required above) requires that the host loads # the default state after instantiation but before running the plugin. state:state [ plug:int 0 ; plug:long "0"^^xsd:long ; plug:float 0.1234 ; plug:double "0.0"^^xsd:double ; plug:bool false ; plug:string "Hello, world" ; plug:path ; plug:spring 0.0 ; plug:lfo 0.0 ] .