this does right counting
(I couldn’t run ToneInstrument)
import ddf.minim.*;
import ddf.minim.ugens.*;
Minim minim;
AudioOutput out;
SeisData seisData;
//float freqValues;
void setup() {
size(640, 360, P3D);
background(0);
seisData = new SeisData();
seisData.loadData();
minim = new Minim(this);
out = minim.getLineOut(Minim.STEREO, 2048);
println("End of setup() at millis: "
+ millis() );
seisData.timer = millis();
}
void draw() {
background(0);
// ----
if (seisData.seisCsv==null)
return;
// ----
stroke(255);
seisData.iterate(); //Calling iteration/timing method from object(contains i)
// println(seisData.i); //When I run println(i) from here I get crazy timing/ iteration
//float freqValues = seisData.freqValuesLoaded;
// freqValues = freqValuesLoaded;
// ToneInstrument myNote = new ToneInstrument(freqValues, 0.5, out);
// println(seisData.i);
text(seisData.i
+" : "
+seisData.freqValuesLoaded, 33, 33);
// out.playNote(0.5, 2.6, myNote);
}
// ==================================================================================
class SeisData {
// Start of class
Table seisCsv;
TableRow row;
// float freqValues;
float freqValuesLoaded;
boolean load = true;
int i = 0;
float interval = 5000;
long timer=0;
SeisData() {
//constr
}
public void loadData() {
seisCsv = loadTable("CU.SDDR.1_HOUR_BHZ.ascii_SLIST.csv", "header");
}
void iterate() {
if (millis() - timer > interval ) {
timer = millis();
i++; //When I run println(i) from here I get correct timing.
load=true;
}
if (load) {
row = seisCsv.getRow(i);
freqValuesLoaded = row.getFloat(0);
load = false;
}
}//method
//
}//class
//