Mercurial > hg > match-vamp
comparison src/MatchVampPlugin.cpp @ 156:d6df9fe7b12f refactors
Implement distance metric selection (euclidean or cosine)
author | Chris Cannam |
---|---|
date | Thu, 29 Jan 2015 10:25:47 +0000 |
parents | 246de093f0f1 |
children | d6c1556fadd0 |
comparison
equal
deleted
inserted
replaced
151:246de093f0f1 | 156:d6df9fe7b12f |
---|---|
212 desc.minValue = 0; | 212 desc.minValue = 0; |
213 desc.maxValue = 1; | 213 desc.maxValue = 1; |
214 desc.defaultValue = m_defaultFcParams.silenceThreshold; | 214 desc.defaultValue = m_defaultFcParams.silenceThreshold; |
215 desc.isQuantized = false; | 215 desc.isQuantized = false; |
216 list.push_back(desc); | 216 list.push_back(desc); |
217 | |
218 desc.identifier = "metric"; | |
219 desc.name = "Distance metric"; | |
220 desc.description = "Metric for distance calculations."; | |
221 desc.minValue = 0; | |
222 desc.maxValue = 1; | |
223 desc.defaultValue = (int)m_defaultDParams.metric; | |
224 desc.isQuantized = true; | |
225 desc.quantizeStep = 1; | |
226 desc.valueNames.clear(); | |
227 desc.valueNames.push_back("Euclidean"); | |
228 desc.valueNames.push_back("Cosine"); | |
229 list.push_back(desc); | |
230 desc.valueNames.clear(); | |
217 | 231 |
218 desc.identifier = "noise"; | 232 desc.identifier = "noise"; |
219 desc.name = "Mix in Noise"; | 233 desc.name = "Mix in Noise"; |
220 desc.description = "Whether to mix in a small constant white noise term when calculating feature distance. This can improve alignment against sources containing cleanly synthesised audio."; | 234 desc.description = "Whether to mix in a small constant white noise term when calculating feature distance. This can improve alignment against sources containing cleanly synthesised audio."; |
221 desc.minValue = 0; | 235 desc.minValue = 0; |
291 return (float)m_params.blockTime; | 305 return (float)m_params.blockTime; |
292 } else if (name == "smooth") { | 306 } else if (name == "smooth") { |
293 return m_smooth ? 1.0 : 0.0; | 307 return m_smooth ? 1.0 : 0.0; |
294 } else if (name == "silencethreshold") { | 308 } else if (name == "silencethreshold") { |
295 return m_fcParams.silenceThreshold; | 309 return m_fcParams.silenceThreshold; |
310 } else if (name == "metric") { | |
311 return (int)m_dParams.metric; | |
296 } else if (name == "noise") { | 312 } else if (name == "noise") { |
297 return m_dParams.noise; | 313 return m_dParams.noise; |
298 } | 314 } |
299 | 315 |
300 return 0.0; | 316 return 0.0; |
321 m_params.blockTime = value; | 337 m_params.blockTime = value; |
322 } else if (name == "smooth") { | 338 } else if (name == "smooth") { |
323 m_smooth = (value > 0.5); | 339 m_smooth = (value > 0.5); |
324 } else if (name == "silencethreshold") { | 340 } else if (name == "silencethreshold") { |
325 m_fcParams.silenceThreshold = value; | 341 m_fcParams.silenceThreshold = value; |
342 } else if (name == "metric") { | |
343 m_dParams.metric = (DistanceMetric::Metric)(int(value + 0.1)); | |
326 } else if (name == "noise") { | 344 } else if (name == "noise") { |
327 m_dParams.noise = (DistanceMetric::NoiseAddition)(int(value + 0.1)); | 345 m_dParams.noise = (DistanceMetric::NoiseAddition)(int(value + 0.1)); |
328 } | 346 } |
329 } | 347 } |
330 | 348 |