summaryrefslogtreecommitdiff
path: root/rotord/src
diff options
context:
space:
mode:
authorTim Redfern <tim@eclectronics.org>2013-12-12 13:01:58 +0000
committerTim Redfern <tim@eclectronics.org>2013-12-12 13:01:58 +0000
commitee687726561e2520459c4cb4876700db2de5096f (patch)
tree52fd034de672877a1d6f5589423989b6a1f886bb /rotord/src
parent33ffa11a2661b82b8d300a3df731de812d590153 (diff)
fix for audio viz fill
Diffstat (limited to 'rotord/src')
-rw-r--r--rotord/src/nodes_audio_analysis.cpp11
-rw-r--r--rotord/src/nodes_drawing.h8
-rw-r--r--rotord/src/vampHost.cpp10
3 files changed, 16 insertions, 13 deletions
diff --git a/rotord/src/nodes_audio_analysis.cpp b/rotord/src/nodes_audio_analysis.cpp
index 96244d0..eff7a37 100644
--- a/rotord/src/nodes_audio_analysis.cpp
+++ b/rotord/src/nodes_audio_analysis.cpp
@@ -330,6 +330,7 @@ nned to retrieve total intensity by segment
for (int j=1;j<diffs.size();j++) if (diffs[j]<diffs[smallest]) smallest=j;
for (int j=0;j<seggrps[smallest].second.size();j++) {
seggrps[smallest+1].second.push_back(seggrps[smallest].second[j]);
+ cerr<<"copied segment "<<(seggrps[smallest].second[j].second)<<" from group "<<smallest<<" to group "<<(smallest+1)<<endl;
}
//recalculate intensity average
double avg=0.0f;
@@ -338,9 +339,11 @@ nned to retrieve total intensity by segment
seggrps[smallest+1].first=avg;
seggrps.erase(seggrps.begin()+smallest);
+ cerr<<"removed group "<<smallest<<endl;
}
cerr<<"intensities merged, "<<seggrps.size()<<" levels remain"<<endl;
}
+ //cerr<<seggrps.size()<<" groups, "<<(int)parameters["levels"]->value<<" levels requested, "<<(int)totalsmap.size()<<" original segments"<<endl;
if (seggrps.size()<min((int)parameters["levels"]->value,(int)totalsmap.size())){
while (seggrps.size()<min((int)parameters["levels"]->value,(int)totalsmap.size())) {
//split groups
@@ -386,12 +389,12 @@ nned to retrieve total intensity by segment
//add the new group
seggrps.push_back(newgroup);
}
-
+ cerr<<"similaritity groups split, "<<seggrps.size()<<" levels total"<<endl;
+ //seggrps are now out of order
+ std::sort(seggrps.begin(),seggrps.end(),sortseggrps);
}
- cerr<<"similaritity groups split, "<<seggrps.size()<<" levels total"<<endl;
- //seggrps are now out of order
- std::sort(seggrps.begin(),seggrps.end(),sortseggrps);
+
}
map<int,int> outputvalues;
diff --git a/rotord/src/nodes_drawing.h b/rotord/src/nodes_drawing.h
index ec70b96..5a8937f 100644
--- a/rotord/src/nodes_drawing.h
+++ b/rotord/src/nodes_drawing.h
@@ -258,11 +258,11 @@ namespace Rotor {
//cairo_translate(cr, 0, frame.h/2);
cairo_translate(cr,-frame.w/2,0);
cairo_scale(cr,1.0,parameters["height"]->value);
- //cairo_line_to(cr, 0, 0);
+ cairo_line_to(cr, 0, 0);
for (int i=0;i<frame.w;i++){
cairo_line_to(cr,i,(((int16_t)frame.audio->samples[i*frame.audio->channels]+channel)*frame.h)>>16);
}
- //cairo_line_to(cr, frame.w/2, 0);
+ cairo_line_to(cr, frame.w/2, 0);
cairo_close_path(cr);
cairo_restore (cr);
@@ -274,11 +274,11 @@ namespace Rotor {
cairo_translate(cr,-frame.w/2,0);
cairo_scale(cr,1.0,parameters["height"]->value);
cairo_set_line_width (cr, parameters["width"]->value);
- cairo_line_to(cr, 0, 0);
+ //cairo_line_to(cr, 0, 0);
for (int i=0;i<frame.w;i++){
cairo_line_to(cr,i,(((int16_t)frame.audio->samples[i*frame.audio->channels+channel])*frame.h)>>16);
}
- cairo_line_to(cr, frame.w, 0);
+ //cairo_line_to(cr, frame.w, 0);
cairo_restore (cr);
cairo_stroke(cr);
}
diff --git a/rotord/src/vampHost.cpp b/rotord/src/vampHost.cpp
index 3f18473..a70e795 100644
--- a/rotord/src/vampHost.cpp
+++ b/rotord/src/vampHost.cpp
@@ -383,11 +383,11 @@ void vampHost::Analyser::cleanup(){
featureNo++;
}
- //make a final feature at the end
- //feature f;
- //f.number=featureNo;
- //f.values={0};
- //features[((double)rt.sec)+(((double)rt.nsec)*.000000001f)]=f;
+ //always make a final blank feature at the end
+ feature f;
+ f.number=featureNo;
+ f.values={};
+ features[((double)rt.sec)+(((double)rt.nsec)*.000000001f)]=f;
//cerr<<plugin->getIdentifier()<<" found "<<(features.size()-1)<<" features"<<endl;
//deal with left over data?