Mercurial > hg > tony
changeset 18:43ef22a44402
merged tonioni to default
author | gyorgyf |
---|---|
date | Sat, 13 Apr 2013 17:27:53 +0100 |
parents | b7b5eddfd2c7 (current diff) f97399f18564 (diff) |
children | 21ded8515849 |
files | |
diffstat | 3 files changed, 62 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgsubstate Tue Mar 26 20:15:38 2013 +0000 +++ b/.hgsubstate Sat Apr 13 17:27:53 2013 +0100 @@ -1,3 +1,3 @@ -40a0fa9af6b4b9782a78b2c7b6829492e0d1a593 svapp -cb587575bc0d15c54b48172b488290dd0bc8f711 svcore -49afde2dd7048a9ed3fe2e9544fc8f21d2911a88 svgui +94bf7d7f2d6f38061fac106602b574ff33e0d40b svapp +4faea021b5c178c4475210e7ee26f6534360194c svcore +640c3792977f90ddff69552ddd50ae23da98e57a svgui
--- a/src/Analyser.cpp Tue Mar 26 20:15:38 2013 +0000 +++ b/src/Analyser.cpp Sat Apr 13 17:27:53 2013 +0100 @@ -17,6 +17,7 @@ #include "transform/TransformFactory.h" #include "transform/ModelTransformer.h" +#include "transform/FeatureExtractionModelTransformer.h" #include "framework/Document.h" #include "data/model/WaveFileModel.h" #include "view/Pane.h" @@ -26,6 +27,7 @@ #include "layer/NoteLayer.h" #include "layer/FlexiNoteLayer.h" #include "layer/ColourDatabase.h" +#include "layer/LayerFactory.h" Analyser::Analyser() : m_document(0), @@ -47,7 +49,10 @@ m_pane = pane; TransformId f0 = "vamp:yintony:yintony:f0"; - TransformId notes = "vamp:cepstral-pitchtracker:cepstral-pitchtracker:notes"; + TransformId notes = "vamp:yintony:yintony:notes"; + + // TransformId f0 = "vamp:cepstral-pitchtracker:cepstral-pitchtracker:f0"; + // TransformId notes = "vamp:cepstral-pitchtracker:cepstral-pitchtracker:notes"; // We don't want a waveform in the main pane. We must have a // main-model layer of some sort, but the layers created by @@ -65,16 +70,16 @@ if (layer) { TimeValueLayer *tvl = qobject_cast<TimeValueLayer *>(layer); if (tvl) { - tvl->setPlotStyle(TimeValueLayer::PlotDiscreteCurves); + tvl->setPlotStyle(TimeValueLayer::PlotPoints); tvl->setBaseColour(ColourDatabase::getInstance()-> getColourIndex(QString("Black"))); } } - layer = addLayerFor(notes); + layer = addLayerForNotes(notes); if (layer) { - NoteLayer *nl = qobject_cast<NoteLayer *>(layer); + FlexiNoteLayer *nl = qobject_cast<FlexiNoteLayer *>(layer); if (nl) { nl->setBaseColour(ColourDatabase::getInstance()-> getColourIndex(QString("Bright Blue"))); @@ -104,10 +109,52 @@ Layer *layer; layer = m_document->createDerivedLayer(transform, m_fileModel); + if (layer) { - m_document->addLayerToView(m_pane, layer); - } + m_document->addLayerToView(m_pane, layer); + } else { + std::cerr << "ERROR: Analyser::addLayerFor: Cound not create layer. " << std::endl; + } return layer; } +Layer * +Analyser::addLayerForNotes(TransformId id) +{ + TransformFactory *tf = TransformFactory::getInstance(); + + if (!tf->haveTransform(id)) { + std::cerr << "ERROR: Analyser::addLayerFor(" << id << "): Transform unknown" << std::endl; + return 0; + } + + Transform transform = tf->getDefaultTransformFor + (id, m_fileModel->getSampleRate()); + + transform.setStepSize(512); + transform.setBlockSize(2048); + + ModelTransformer::Input input(m_fileModel, -1); + + FeatureExtractionModelTransformer::PreferredOutputModel preferredModel; + + // preferredModel = FeatureExtractionModelTransformer::NoteOutputModel; + preferredModel = FeatureExtractionModelTransformer::FlexiNoteOutputModel; + + // preferredLayer = LayerFactory::Notes ; + preferredLayer = LayerFactory::FlexiNotes ; + + // std::cerr << "NOTE: Trying to create layer type(" << preferredLayer << ")" << std::endl; + Layer *layer; + layer = m_document->createDerivedLayer(transform, m_fileModel, preferredLayer, preferredModel); + + if (layer) { + m_document->addLayerToView(m_pane, layer); + } else { + std::cerr << "ERROR: Analyser::addLayerForNotes: Cound not create layer type(" << preferredLayer << ")" << std::endl; + } + + return layer; +} +
--- a/src/Analyser.h Tue Mar 26 20:15:38 2013 +0000 +++ b/src/Analyser.h Sat Apr 13 17:27:53 2013 +0100 @@ -19,12 +19,15 @@ #include <QObject> #include "transform/Transform.h" +#include "layer/LayerFactory.h" // GF: added so we can access the FlexiNotes enum value. + class WaveFileModel; class Pane; class PaneStack; class Document; class Layer; +class LayerFactory; class Analyser : public QObject { @@ -43,6 +46,9 @@ Pane *m_pane; Layer *addLayerFor(TransformId); + Layer *addLayerForNotes(TransformId); + LayerFactory::LayerType preferredLayer; + }; #endif