Mercurial > hg > tony
changeset 326:b176ea403ee8
Connect up the auto-analysis and precision analysis settings
author | Chris Cannam |
---|---|
date | Fri, 13 Jun 2014 14:47:44 +0100 |
parents | ef75afbe4c67 |
children | 67987c108807 |
files | .hgsubstate src/Analyser.cpp src/Analyser.h src/MainWindow.cpp |
diffstat | 4 files changed, 37 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- 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);