@prefix atom:  <http://lv2plug.in/ns/ext/atom#>.
@prefix doap:  <http://usefulinc.com/ns/doap#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@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 ui:    <http://lv2plug.in/ns/extensions/ui#>.
@prefix units: <http://lv2plug.in/ns/extensions/units#>.
@prefix urid:  <http://lv2plug.in/ns/ext/urid#>.
@prefix param: <http://lv2plug.in/ns/ext/parameters#>.
@prefix patch: <http://lv2plug.in/ns/ext/patch#>.
@prefix state: <http://lv2plug.in/ns/ext/state#>.
@prefix work:  <http://lv2plug.in/ns/ext/worker#>.
@prefix mod: <http://moddevices.com/ns/mod#>.

<http://github.com/mikeoliphant/neural-amp-modeler-lv2#model>
        a lv2:Parameter;
	mod:fileTypes "nammodel";
        rdfs:label "Neural Model";
        rdfs:range atom:Path.

<http://github.com/mikeoliphant/neural-amp-modeler-lv2>
	a lv2:Plugin, lv2:SimulatorPlugin;
	doap:name "Neural Amp Modeler";
	lv2:project <http://github.com/mikeoliphant/neural-amp-modeler-lv2>;
	lv2:minorVersion 0;
	lv2:microVersion 1;
	doap:license <http://opensource.org/licenses/gpl-3-0>;

	doap:maintainer [
		foaf:name "Mike Oliphant";
		foaf:homepage <http://github.com/mikeoliphant>;
	];

	lv2:requiredFeature urid:map, work:schedule;
	lv2:optionalFeature lv2:hardRTCapable;
	lv2:extensionData work:interface, state:interface;

	rdfs:comment """
An LV2 implementation of Neural Amp Modeler.

NAM accepts Neural Amp Modeler .nam files.

A large collection of .nam files is available at https://tonehunt.org/
""";

	patch:writable <http://github.com/mikeoliphant/neural-amp-modeler-lv2#model>;

	# Control
	lv2:port [
		a atom:AtomPort, lv2:InputPort;
		atom:bufferType atom:Sequence;
		atom:supports patch:Message;
		lv2:designation lv2:control;
		lv2:index 0;
		lv2:symbol "control";
		lv2:name "Control"
	], [
		a atom:AtomPort, lv2:OutputPort;
		atom:bufferType atom:Sequence;
		atom:supports patch:Message;
		lv2:designation lv2:control;
		lv2:index 1;
		lv2:symbol "notify";
		lv2:name "Notify"
	];

	# Audio Ports
	lv2:port [
		a lv2:InputPort, lv2:AudioPort;
		lv2:index 2;
		lv2:symbol "input";
		lv2:name "Input";
	], [
		a lv2:OutputPort, lv2:AudioPort;
		lv2:index 3;
		lv2:symbol "output";
		lv2:name "Output";
	];

	# Parameters
	lv2:port [
		a lv2:ControlPort, lv2:InputPort;
		lv2:index 4;
		lv2:symbol "input_level";
		lv2:name "Input Lvl";
		lv2:default 0.0;
		lv2:minimum -20.0;
		lv2:maximum 20.0;
		units:unit units:db;
	], [
		a lv2:ControlPort, lv2:InputPort;
		lv2:index 5;
		lv2:symbol "output_level";
		lv2:name "Output Lvl";
		lv2:default 0.0;
		lv2:minimum -20.0;
		lv2:maximum 20.0;
		units:unit units:db;
	];
    state:state [
            <http://github.com/mikeoliphant/neural-amp-modeler-lv2#model> <click.wav> ;
    ].
