# HG changeset patch # User gyorgyf # Date 1365856757 -3600 # Node ID 7ab5ed73778825cf2551b94a8f266efbea31a770 # Parent b7b5eddfd2c78995ff48a1ecc1b209325c767586 fixed flexi note layer and propagated model selection to analyser diff -r b7b5eddfd2c7 -r 7ab5ed737788 .hgsubstate --- a/.hgsubstate Tue Mar 26 20:15:38 2013 +0000 +++ b/.hgsubstate Sat Apr 13 13:39:17 2013 +0100 @@ -1,3 +1,3 @@ -40a0fa9af6b4b9782a78b2c7b6829492e0d1a593 svapp -cb587575bc0d15c54b48172b488290dd0bc8f711 svcore -49afde2dd7048a9ed3fe2e9544fc8f21d2911a88 svgui +776e1aae635a468d6b2bcb5b21d2cb63e22faeac svapp +5295bdb588400e0b2d1a64604b57dfdecfcc0720 svcore +1336439dc05523f28073bbe2e443a1cebef3bbaf svgui diff -r b7b5eddfd2c7 -r 7ab5ed737788 src/Analyser.cpp --- a/src/Analyser.cpp Tue Mar 26 20:15:38 2013 +0000 +++ b/src/Analyser.cpp Sat Apr 13 13:39:17 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" // GF: added so we can access the FlexiNotes enum value. Analyser::Analyser() : m_document(0), @@ -46,7 +48,8 @@ m_fileModel = model; m_pane = pane; - TransformId f0 = "vamp:yintony:yintony:f0"; + // TransformId f0 = "vamp:yintony:yintony:f0"; + 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 @@ -74,8 +77,10 @@ layer = addLayerFor(notes); if (layer) { - NoteLayer *nl = qobject_cast(layer); + FlexiNoteLayer *nl = qobject_cast(layer); if (nl) { + // GF: delete this later ! + std::cerr << "NOTE: layer type cast successful...." << std::endl; nl->setBaseColour(ColourDatabase::getInstance()-> getColourIndex(QString("Bright Blue"))); } @@ -101,12 +106,24 @@ 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); + layer = m_document->createDerivedLayer(transform, m_fileModel, preferredLayer, preferredModel); + if (layer) { - m_document->addLayerToView(m_pane, layer); - } + m_document->addLayerToView(m_pane, layer); + } else { + std::cerr << "ERROR: Cound not create layer type(" << preferredLayer << ")" << std::endl; + } return layer; } diff -r b7b5eddfd2c7 -r 7ab5ed737788 src/Analyser.h --- a/src/Analyser.h Tue Mar 26 20:15:38 2013 +0000 +++ b/src/Analyser.h Sat Apr 13 13:39:17 2013 +0100 @@ -19,12 +19,15 @@ #include #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,8 @@ Pane *m_pane; Layer *addLayerFor(TransformId); + LayerFactory::LayerType preferredLayer; + }; #endif