# HG changeset patch # User Chris Cannam # Date 1402667264 -3600 # Node ID b176ea403ee8a2e11cd75ab23b3baf19245926fe # Parent ef75afbe4c67847751bdbad98373c8a97f6a19c6 Connect up the auto-analysis and precision analysis settings diff -r ef75afbe4c67 -r b176ea403ee8 .hgsubstate --- a/.hgsubstate Fri Jun 13 14:36:30 2014 +0100 +++ b/.hgsubstate Fri Jun 13 14:47:44 2014 +0100 @@ -1,6 +1,6 @@ e32a354434aa5fa7440efa17b716aacd761049fa chp 236814e07bd07473958c1ff89103124536a0c3c8 dataquay -b8ce40de83c25bf4585b3a03ddc67d215df31899 pyin +27eee0f7a4f66b3dc39bc3c83d9c3f93f3845cc1 pyin 553a5f65ef64811747a6613f759622d655db63c1 sv-dependency-builds 5302c548adadd5e3ddb5fd2eafa45ce3033183e7 svapp 4c7b4040bd2daac3883a9def0279fae7104ad9a2 svcore diff -r ef75afbe4c67 -r b176ea403ee8 src/Analyser.cpp --- a/src/Analyser.cpp Fri Jun 13 14:36:30 2014 +0100 +++ b/src/Analyser.cpp Fri Jun 13 14:47:44 2014 +0100 @@ -78,7 +78,12 @@ connect(doc, SIGNAL(layerAboutToBeDeleted(Layer *)), this, SLOT(layerAboutToBeDeleted(Layer *))); - return doAllAnalyses(); + QSettings settings; + settings.beginGroup("Analyser"); + bool autoAnalyse = settings.value("auto-analysis", true).toBool(); + settings.endGroup(); + + return doAllAnalyses(autoAnalyse); } QString @@ -97,11 +102,11 @@ m_layers[Notes] = 0; } - return doAllAnalyses(); + return doAllAnalyses(true); } QString -Analyser::doAllAnalyses() +Analyser::doAllAnalyses(bool withPitchTrack) { m_reAnalysingSelection = Selection(); m_reAnalysisCandidates.clear(); @@ -123,8 +128,10 @@ error = addWaveform(); if (error != "") return error; - error = addAnalyses(); - if (error != "") return error; + if (withPitchTrack) { + error = addAnalyses(); + if (error != "") return error; + } loadState(Audio); loadState(PitchTrack); @@ -301,8 +308,15 @@ m_layers[PitchTrack] = existingPitch; m_layers[Notes] = existingNotes; return ""; - } else if (existingPitch || existingNotes) { - return "One (but not both) of pitch and note track found in session"; + } else { + if (existingPitch) { + m_document->removeLayerFromView(m_pane, existingPitch); + m_layers[PitchTrack] = 0; + } + if (existingNotes) { + m_document->removeLayerFromView(m_pane, existingNotes); + m_layers[Notes] = 0; + } } TransformFactory *tf = TransformFactory::getInstance(); @@ -334,11 +348,24 @@ return notFound.arg(base + noteout).arg(plugname); } + QSettings settings; + settings.beginGroup("Analyser"); + bool precise = settings.value("precision-analysis", false).toBool(); + settings.endGroup(); + Transform t = tf->getDefaultTransformFor (base + f0out, m_fileModel->getSampleRate()); t.setStepSize(256); t.setBlockSize(2048); + if (precise) { + cerr << "setting parameters for precise mode" << endl; + t.setParameter("precisetime", 1); + } else { + cerr << "setting parameters for vague mode" << endl; + t.setParameter("precisetime", 0); + } + transforms.push_back(t); t.setOutput(noteout); diff -r ef75afbe4c67 -r b176ea403ee8 src/Analyser.h --- a/src/Analyser.h Fri Jun 13 14:36:30 2014 +0100 +++ b/src/Analyser.h Fri Jun 13 14:47:44 2014 +0100 @@ -229,7 +229,7 @@ int m_currentCandidate; bool m_candidatesVisible; - QString doAllAnalyses(); + QString doAllAnalyses(bool withPitchTrack); QString addVisualisations(); QString addWaveform(); diff -r ef75afbe4c67 -r b176ea403ee8 src/MainWindow.cpp --- a/src/MainWindow.cpp Fri Jun 13 14:36:30 2014 +0100 +++ b/src/MainWindow.cpp Fri Jun 13 14:47:44 2014 +0100 @@ -869,7 +869,7 @@ settings.setValue("precision-analysis", set); settings.endGroup(); - analyseNow(); + // don't run analyseNow() automatically -- it's a destructive operation } void