comparison TempogramPlugin.cpp @ 50:45ba1627d802

* Added m_cyclicTempogramReferenceBPM to initialiser list
author Carl Bussey <c.bussey@se10.qmul.ac.uk>
date Tue, 30 Sep 2014 15:00:23 +0100
parents b27e42b68c61
children c7cc649dc9b6
comparison
equal deleted inserted replaced
49:b27e42b68c61 50:45ba1627d802
38 m_tempogramMinLag(0), //set in initialise() 38 m_tempogramMinLag(0), //set in initialise()
39 m_tempogramMaxLag(0), //set in initialise() 39 m_tempogramMaxLag(0), //set in initialise()
40 m_cyclicTempogramMinBPM(30), //reset in initialise() 40 m_cyclicTempogramMinBPM(30), //reset in initialise()
41 m_cyclicTempogramNumberOfOctaves(0), //set in initialise() 41 m_cyclicTempogramNumberOfOctaves(0), //set in initialise()
42 m_cyclicTempogramOctaveDivider(30), //parameter 42 m_cyclicTempogramOctaveDivider(30), //parameter
43 m_cyclicTempogramReferenceBPM(60) 43 m_cyclicTempogramReferenceBPM(60) //parameter
44 44
45 // Also be sure to set your plugin parameters (presumably stored 45 // Also be sure to set your plugin parameters (presumably stored
46 // in member variables) to their default values here -- the host 46 // in member variables) to their default values here -- the host
47 // will not do that for you 47 // will not do that for you
48 { 48 {
237 d8.maxValue = 60; 237 d8.maxValue = 60;
238 d8.defaultValue = 30; 238 d8.defaultValue = 30;
239 d8.isQuantized = true; 239 d8.isQuantized = true;
240 d8.quantizeStep = 1; 240 d8.quantizeStep = 1;
241 list.push_back(d8); 241 list.push_back(d8);
242
243 ParameterDescriptor d9;
244 d9.identifier = "refBPM";
245 d9.name = "Cyclic Tempogram Reference BPM";
246 d9.description = "The reference BPM used when calculating the parameter \'s\' of the cyclic tempogram.";
247 d9.unit = "";
248 d9.minValue = 30;
249 d9.maxValue = 240;
250 d9.defaultValue = 60;
251 d9.isQuantized = true;
252 d9.quantizeStep = 1;
253 list.push_back(d9);
254 242
255 return list; 243 return list;
256 } 244 }
257 245
258 float 246 float
280 return m_tempogramMaxBPM; 268 return m_tempogramMaxBPM;
281 } 269 }
282 else if (identifier == "octDiv"){ 270 else if (identifier == "octDiv"){
283 return m_cyclicTempogramOctaveDivider; 271 return m_cyclicTempogramOctaveDivider;
284 } 272 }
285 else if (identifier == "refBPM"){
286 return m_cyclicTempogramReferenceBPM;
287 }
288 273
289 return 0; 274 return 0;
290 } 275 }
291 276
292 void 277 void
314 else if (identifier == "maxBPM"){ 299 else if (identifier == "maxBPM"){
315 m_tempogramMaxBPM = value; 300 m_tempogramMaxBPM = value;
316 } 301 }
317 else if (identifier == "octDiv"){ 302 else if (identifier == "octDiv"){
318 m_cyclicTempogramOctaveDivider = value; 303 m_cyclicTempogramOctaveDivider = value;
319 }
320 else if (identifier == "refBPM"){
321 m_cyclicTempogramReferenceBPM = value;
322 } 304 }
323 305
324 } 306 }
325 307
326 TempogramPlugin::ProgramList 308 TempogramPlugin::ProgramList
365 d1.hasKnownExtents = false; 347 d1.hasKnownExtents = false;
366 d1.isQuantized = false; 348 d1.isQuantized = false;
367 d1.sampleType = OutputDescriptor::FixedSampleRate; 349 d1.sampleType = OutputDescriptor::FixedSampleRate;
368 d_sampleRate = tempogramInputSampleRate/m_tempogramHopSize; 350 d_sampleRate = tempogramInputSampleRate/m_tempogramHopSize;
369 d1.sampleRate = d_sampleRate > 0.0 && !isnan(d_sampleRate) ? d_sampleRate : 0; 351 d1.sampleRate = d_sampleRate > 0.0 && !isnan(d_sampleRate) ? d_sampleRate : 0;
370 vector< vector<unsigned int> > logBins = calculateTempogramNearestNeighbourLogBins();
371 if (!logBins.empty()){
372 //assert((int)logBins[0].size() == m_cyclicTempogramOctaveDivider);
373 for(int i = 0; i < (int)m_cyclicTempogramOctaveDivider; i++){
374 //float s = binToBPM(logBins[0][i])/m_cyclicTempogramReferenceBPM;
375 //d1.binNames.push_back(floatToString(s));
376 }
377 }
378 d1.hasDuration = false; 352 d1.hasDuration = false;
379 list.push_back(d1); 353 list.push_back(d1);
380 354
381 OutputDescriptor d2; 355 OutputDescriptor d2;
382 d2.identifier = "tempogramDFT"; 356 d2.identifier = "tempogramDFT";