Mercurial > hg > tony
comparison src/Analyser.cpp @ 14:7ab5ed737788 tonioni
fixed flexi note layer and propagated model selection to analyser
author | gyorgyf |
---|---|
date | Sat, 13 Apr 2013 13:39:17 +0100 |
parents | b7b5eddfd2c7 |
children | 50ab01b77262 |
comparison
equal
deleted
inserted
replaced
13:b7b5eddfd2c7 | 14:7ab5ed737788 |
---|---|
15 | 15 |
16 #include "Analyser.h" | 16 #include "Analyser.h" |
17 | 17 |
18 #include "transform/TransformFactory.h" | 18 #include "transform/TransformFactory.h" |
19 #include "transform/ModelTransformer.h" | 19 #include "transform/ModelTransformer.h" |
20 #include "transform/FeatureExtractionModelTransformer.h" | |
20 #include "framework/Document.h" | 21 #include "framework/Document.h" |
21 #include "data/model/WaveFileModel.h" | 22 #include "data/model/WaveFileModel.h" |
22 #include "view/Pane.h" | 23 #include "view/Pane.h" |
23 #include "view/PaneStack.h" | 24 #include "view/PaneStack.h" |
24 #include "layer/Layer.h" | 25 #include "layer/Layer.h" |
25 #include "layer/TimeValueLayer.h" | 26 #include "layer/TimeValueLayer.h" |
26 #include "layer/NoteLayer.h" | 27 #include "layer/NoteLayer.h" |
27 #include "layer/FlexiNoteLayer.h" | 28 #include "layer/FlexiNoteLayer.h" |
28 #include "layer/ColourDatabase.h" | 29 #include "layer/ColourDatabase.h" |
30 #include "layer/LayerFactory.h" // GF: added so we can access the FlexiNotes enum value. | |
29 | 31 |
30 Analyser::Analyser() : | 32 Analyser::Analyser() : |
31 m_document(0), | 33 m_document(0), |
32 m_fileModel(0), | 34 m_fileModel(0), |
33 m_pane(0) | 35 m_pane(0) |
44 { | 46 { |
45 m_document = doc; | 47 m_document = doc; |
46 m_fileModel = model; | 48 m_fileModel = model; |
47 m_pane = pane; | 49 m_pane = pane; |
48 | 50 |
49 TransformId f0 = "vamp:yintony:yintony:f0"; | 51 // TransformId f0 = "vamp:yintony:yintony:f0"; |
52 TransformId f0 = "vamp:cepstral-pitchtracker:cepstral-pitchtracker:f0"; | |
50 TransformId notes = "vamp:cepstral-pitchtracker:cepstral-pitchtracker:notes"; | 53 TransformId notes = "vamp:cepstral-pitchtracker:cepstral-pitchtracker:notes"; |
51 | 54 |
52 // We don't want a waveform in the main pane. We must have a | 55 // We don't want a waveform in the main pane. We must have a |
53 // main-model layer of some sort, but the layers created by | 56 // main-model layer of some sort, but the layers created by |
54 // transforms are derived layers, so we'll create a time ruler for | 57 // transforms are derived layers, so we'll create a time ruler for |
72 } | 75 } |
73 | 76 |
74 layer = addLayerFor(notes); | 77 layer = addLayerFor(notes); |
75 | 78 |
76 if (layer) { | 79 if (layer) { |
77 NoteLayer *nl = qobject_cast<NoteLayer *>(layer); | 80 FlexiNoteLayer *nl = qobject_cast<FlexiNoteLayer *>(layer); |
78 if (nl) { | 81 if (nl) { |
82 // GF: delete this later ! | |
83 std::cerr << "NOTE: layer type cast successful...." << std::endl; | |
79 nl->setBaseColour(ColourDatabase::getInstance()-> | 84 nl->setBaseColour(ColourDatabase::getInstance()-> |
80 getColourIndex(QString("Bright Blue"))); | 85 getColourIndex(QString("Bright Blue"))); |
81 } | 86 } |
82 } | 87 } |
83 | 88 |
99 | 104 |
100 transform.setStepSize(512); | 105 transform.setStepSize(512); |
101 transform.setBlockSize(2048); | 106 transform.setBlockSize(2048); |
102 | 107 |
103 ModelTransformer::Input input(m_fileModel, -1); | 108 ModelTransformer::Input input(m_fileModel, -1); |
109 | |
110 FeatureExtractionModelTransformer::PreferredOutputModel preferredModel; | |
111 | |
112 // preferredModel = FeatureExtractionModelTransformer::NoteOutputModel; | |
113 preferredModel = FeatureExtractionModelTransformer::FlexiNoteOutputModel; | |
114 | |
115 // preferredLayer = LayerFactory::Notes ; | |
116 preferredLayer = LayerFactory::FlexiNotes ; | |
117 std::cerr << "NOTE: Trying to create layer type(" << preferredLayer << ")" << std::endl; | |
104 | 118 |
105 Layer *layer; | 119 Layer *layer; |
106 layer = m_document->createDerivedLayer(transform, m_fileModel); | 120 layer = m_document->createDerivedLayer(transform, m_fileModel, preferredLayer, preferredModel); |
121 | |
107 if (layer) { | 122 if (layer) { |
108 m_document->addLayerToView(m_pane, layer); | 123 m_document->addLayerToView(m_pane, layer); |
109 } | 124 } else { |
125 std::cerr << "ERROR: Cound not create layer type(" << preferredLayer << ")" << std::endl; | |
126 } | |
110 | 127 |
111 return layer; | 128 return layer; |
112 } | 129 } |
113 | 130 |