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