1
2<http://gareus.org/oss/lv2/fat1@URISUFFIX@>
3	a lv2:Plugin, doap:Project, lv2:PitchPlugin;
4	doap:license <http://usefulinc.com/doap/licenses/gpl>;
5	doap:maintainer <http://gareus.org/rgareus#me>;
6	doap:name "x42-Autotune@NAMESUFFIX@";
7	@VERSION@
8	@UITTL@
9	lv2:optionalFeature lv2:hardRTCapable, log:log;
10	lv2:requiredFeature urid:map;
11	@MODBRAND@
12	@MODLABEL@
13	@SIGNATURE@
14	lv2:port [
15		a atom:AtomPort, lv2:InputPort;
16		atom:bufferType atom:Sequence;
17		atom:supports midi:MidiEvent;
18		lv2:index 0;
19		lv2:symbol "midiin";
20		lv2:name "MIDI In";
21		lv2:portProperty lv2:isSideChain;
22	] , [
23		a lv2:AudioPort ,
24			lv2:InputPort ;
25		lv2:index 1 ;
26		lv2:symbol "in" ;
27		lv2:name "Input"
28	] , [
29		a lv2:AudioPort ,
30			lv2:OutputPort ;
31		lv2:index 2 ;
32		lv2:symbol "out" ;
33		lv2:name "Output"
34	] , [
35		a lv2:InputPort ,
36			lv2:ControlPort ;
37		lv2:index 3 ;
38		lv2:symbol "mode" ;
39		lv2:name "Mode";
40		lv2:default 0 ;
41		lv2:minimum 0 ;
42		lv2:maximum 2 ;
43		lv2:portProperty lv2:integer, lv2:enumeration;
44		lv2:scalePoint [ rdfs:label  "Auto"; rdf:value 0 ; ] ;
45		lv2:scalePoint [ rdfs:label  "MIDI"; rdf:value 1 ; ] ;
46		lv2:scalePoint [ rdfs:label  "Manual"; rdf:value 2 ; ] ;
47	] , [
48		a lv2:InputPort ,
49			lv2:ControlPort ;
50		lv2:index 4 ;
51		lv2:symbol "channelf" ;
52		lv2:name "Filter Channel";
53		lv2:minimum 0 ;
54		lv2:maximum 16 ;
55		lv2:default 0;
56		lv2:scalePoint [ rdfs:label "Any"; rdf:value 0 ];
57		lv2:scalePoint [ rdfs:label "01" ; rdf:value 1 ];
58		lv2:scalePoint [ rdfs:label "02" ; rdf:value 2 ];
59		lv2:scalePoint [ rdfs:label "03" ; rdf:value 3 ];
60		lv2:scalePoint [ rdfs:label "04" ; rdf:value 4 ];
61		lv2:scalePoint [ rdfs:label "05" ; rdf:value 5 ];
62		lv2:scalePoint [ rdfs:label "06" ; rdf:value 6 ];
63		lv2:scalePoint [ rdfs:label "07" ; rdf:value 7 ];
64		lv2:scalePoint [ rdfs:label "08" ; rdf:value 8 ];
65		lv2:scalePoint [ rdfs:label "09" ; rdf:value 9 ];
66		lv2:scalePoint [ rdfs:label "10" ; rdf:value 10 ];
67		lv2:scalePoint [ rdfs:label "11" ; rdf:value 11 ];
68		lv2:scalePoint [ rdfs:label "12" ; rdf:value 12 ];
69		lv2:scalePoint [ rdfs:label "13" ; rdf:value 13 ];
70		lv2:scalePoint [ rdfs:label "14" ; rdf:value 14 ];
71		lv2:scalePoint [ rdfs:label "15" ; rdf:value 15 ];
72		lv2:scalePoint [ rdfs:label "16" ; rdf:value 16 ];
73		lv2:portProperty lv2:integer, lv2:enumeration;
74		rdfs:comment "MIDI Channel (1..16) on which the filter is active; 0: any)." ;
75	] , [
76		a lv2:InputPort ,
77			lv2:ControlPort ;
78		lv2:index 5 ;
79		lv2:symbol "tuning" ;
80		lv2:name "Tuning";
81		lv2:default 440.0 ;
82		lv2:minimum 400.0 ;
83		lv2:maximum 480.0 ;
84		units:unit units:hz;
85		pprop:rangeSteps 401;
86		rdfs:comment "This sets the frequency corresponding to 'A' pitch, in other words the required tuning. This will be the default 440 Hz in most cases.";
87	] , [
88		a lv2:InputPort ,
89			lv2:ControlPort ;
90		lv2:index 6 ;
91		lv2:symbol "bias" ;
92		lv2:name "Bias";
93		lv2:default 0.5 ;
94		lv2:minimum 0.0 ;
95		lv2:maximum 1.0 ;
96		pprop:rangeSteps 271;
97		rdfs:comment "Normally the pitch estimator will select the enabled note closest to the measured pitch. The Bias control adds some preference for the current note - this allows it to go off-tune more than would be the case otherwise.";
98	] , [
99		a lv2:InputPort ,
100			lv2:ControlPort ;
101		lv2:index 7 ;
102		lv2:symbol "filter" ;
103		lv2:name "Filter";
104		lv2:default 0.1 ;
105		lv2:minimum 0.02 ;
106		lv2:maximum 0.5 ;
107		lv2:scalePoint [ rdfs:label  "Slow"; rdf:value 0.5 ; ] ;
108		lv2:scalePoint [ rdfs:label  "Med";  rdf:value 0.1 ; ] ;
109		lv2:scalePoint [ rdfs:label  "Fast"; rdf:value 0.02 ; ] ;
110		lv2:portProperty pprop:logarithmic;
111		pprop:rangeSteps 201;
112		rdfs:comment "This sets the amount of smoothing on the pitch correction while the current note does not change. If it does change the filter is bypassed and the correction jumps immediately to the new value.";
113	] , [
114		a lv2:InputPort ,
115			lv2:ControlPort ;
116		lv2:index 8 ;
117		lv2:symbol "corr" ;
118		lv2:name "Correction";
119		lv2:default 1.0 ;
120		lv2:minimum 0.0 ;
121		lv2:maximum 1.0 ;
122		pprop:rangeSteps 271;
123		rdfs:comment "Determines how much of the estimated pitch error gets corrected. Full correction may remove expression or vibrato.";
124	] , [
125		a lv2:InputPort ,
126			lv2:ControlPort ;
127		lv2:index 9 ;
128		lv2:symbol "offset" ;
129		lv2:name "Offset";
130		lv2:default 0.0 ;
131		lv2:minimum -2.0 ;
132		lv2:maximum  2.0 ;
133		pprop:rangeSteps 401;
134		units:unit units:semitone12TET;
135		rdfs:comment "Adds an offset in the range of +/- two semitones to the pitch correction. With the Correction control set to zero the result is a constant pitch change.";
136	] , [
137		a lv2:InputPort ,
138			lv2:ControlPort ;
139		lv2:index 10 ;
140		lv2:symbol "bendrange" ;
141		lv2:name "Pitch Bend Range";
142		lv2:default 2.0 ;
143		lv2:minimum 0.0 ;
144		lv2:maximum 7.0 ;
145		units:unit units:semitone12TET;
146		rdfs:comment "Configures the effect range of MIDI pitch-bend messages. Pitch-bend is added to the pitch correction offset.";
147	] , [
148		a lv2:InputPort ,
149			lv2:ControlPort ;
150		lv2:index 11 ;
151		lv2:symbol "fastmode" ;
152		lv2:name "Fast Correction";
153		lv2:default 0 ;
154		lv2:minimum 0 ;
155		lv2:maximum 1 ;
156		lv2:portProperty lv2:integer, lv2:toggled;
157		rdfs:comment "Reduces latency by allowing initially uncorrected signal. This can be useful in live situations.";
158	] , [
159		a lv2:InputPort ,
160			lv2:ControlPort ;
161		lv2:index 12 ;
162		lv2:symbol "scale" ;
163		lv2:name "Scale";
164		lv2:default 0 ;
165		lv2:minimum 0 ;
166		lv2:maximum 24 ;
167		lv2:scalePoint [ rdf:value  0; rdfs:label "Chromatic"; ] ;
168		lv2:scalePoint [ rdf:value  1; rdfs:label "C Major"; ] ;
169		lv2:scalePoint [ rdf:value  2; rdfs:label "Db Major"; ] ;
170		lv2:scalePoint [ rdf:value  3; rdfs:label "D Major"; ] ;
171		lv2:scalePoint [ rdf:value  4; rdfs:label "Eb Major"; ] ;
172		lv2:scalePoint [ rdf:value  5; rdfs:label "E Major"; ] ;
173		lv2:scalePoint [ rdf:value  6; rdfs:label "F Major"; ] ;
174		lv2:scalePoint [ rdf:value  7; rdfs:label "F# Major"; ] ;
175		lv2:scalePoint [ rdf:value  8; rdfs:label "G Major"; ] ;
176		lv2:scalePoint [ rdf:value  9; rdfs:label "Ab Major"; ] ;
177		lv2:scalePoint [ rdf:value 10; rdfs:label "A Major"; ] ;
178		lv2:scalePoint [ rdf:value 11; rdfs:label "Bb Major"; ] ;
179		lv2:scalePoint [ rdf:value 12; rdfs:label "B Major"; ] ;
180		lv2:scalePoint [ rdf:value 13; rdfs:label "C Minor"; ] ;
181		lv2:scalePoint [ rdf:value 14; rdfs:label "Db Minor"; ] ;
182		lv2:scalePoint [ rdf:value 15; rdfs:label "D Minor"; ] ;
183		lv2:scalePoint [ rdf:value 16; rdfs:label "Eb Minor"; ] ;
184		lv2:scalePoint [ rdf:value 17; rdfs:label "E Minor"; ] ;
185		lv2:scalePoint [ rdf:value 18; rdfs:label "F Minor"; ] ;
186		lv2:scalePoint [ rdf:value 19; rdfs:label "F# Minor"; ] ;
187		lv2:scalePoint [ rdf:value 20; rdfs:label "G Minor"; ] ;
188		lv2:scalePoint [ rdf:value 21; rdfs:label "Ab Minor"; ] ;
189		lv2:scalePoint [ rdf:value 22; rdfs:label "A Minor"; ] ;
190		lv2:scalePoint [ rdf:value 23; rdfs:label "Bb Minor"; ] ;
191		lv2:scalePoint [ rdf:value 24; rdfs:label "B Minor"; ] ;
192		lv2:portProperty lv2:integer;
193		lv2:portProperty lv2:enumeration ;
194	] , [
195		a lv2:OutputPort ,
196			lv2:ControlPort ;
197		lv2:index 13 ;
198		lv2:symbol "nmask" ;
199		lv2:name "Note Mask";
200		lv2:minimum 0 ;
201		lv2:maximum 4096 ;
202		lv2:portProperty lv2:integer;
203	] , [
204		a lv2:OutputPort ,
205			lv2:ControlPort ;
206		lv2:index 14 ;
207		lv2:symbol "nset" ;
208		lv2:name "Note Set";
209		lv2:minimum 0 ;
210		lv2:maximum 4096 ;
211		lv2:portProperty lv2:integer;
212	] , [
213		a lv2:OutputPort ,
214			lv2:ControlPort ;
215		lv2:index 15 ;
216		lv2:symbol "bend" ;
217		lv2:name "Pitch Bend";
218		lv2:minimum -1.0 ;
219		lv2:maximum  1.0 ;
220	] , [
221		a lv2:OutputPort ,
222			lv2:ControlPort ;
223		lv2:index 16 ;
224		lv2:symbol "error" ;
225		lv2:name "Pitch Error";
226		lv2:minimum -1.0 ;
227		lv2:maximum  1.0 ;
228	] , [
229		a lv2:OutputPort ,
230			lv2:ControlPort ;
231		lv2:index 17 ;
232		lv2:symbol "latency" ;
233		lv2:name "latency";
234		lv2:minimum 0 ;
235		lv2:maximum 4096;
236		lv2:portProperty lv2:reportsLatency, lv2:integer;
237		units:unit units:frame;
238	];
239	rdfs:comment "AT1 is an 'autotuner', normally used to correct the pitch of a voice singing (slightly) out of tune. The 'expected' pitch can be controlled by MIDI, or be a fixed set of notes. AT1 can probably be used on some instruments as well, but is primarily designed to cover the vocal range.";
240	.
241