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