I have actually a lot of questions regarding your code…
-
e.g. why do you have two out?
-
what is fm ?
maybe like this:
import ddf.minim.*;
import ddf.minim.ugens.*;
SeisData seisData;
void setup() {
size(640, 360, P3D);
background(0);
seisData = new SeisData();
seisData.loadData();
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)
text(seisData.i
+" : "
+seisData.freqValuesLoaded, 33, 33);
}
// ==================================================================================
class SeisData {
// Start of class
ToneInstrument myNote ;
Table seisCsv;
TableRow row;
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++;
load=true;
}
if (load) {
row = seisCsv.getRow(i);
freqValuesLoaded = row.getFloat(0);
if (myNote!=null)
myNote.noteOff();
myNote = new ToneInstrument(seisData.freqValuesLoaded*44, 1.194);
myNote.noteOn( 0 );
load = false;
}
}//method
//
}//class
//======================================================================================
class ToneInstrument implements Instrument {
// Start of Instrument class
Minim minim;
Oscil sineOsc;
// Oscil fm;
AudioOutput out;
// constructor for this instrument
ToneInstrument( float frequency, float amplitude ) {
minim = new Minim(this);
// equate class variables to constructor variables as necessary
out = minim.getLineOut(Minim.STEREO, 2048);
// create new instances of any UGen objects as necessary
sineOsc = new Oscil( frequency, amplitude, Waves.SINE); //sine aqui
// fm = new Oscil(10, 0.3, Waves.TRIANGLE); //tri aqui ( 10, 2, Waves.SINE ) ex: frequencyModulation
// fm.offset.setLastValue(40); //have to adjust values was 10 was 40 was 15
// fm.patch(sineOsc.frequency);
}
// every instrument must have a noteOn( float ) method
void noteOn( float dur ) {
// and patch to the output
sineOsc.patch( out );
}
// every instrument must have a noteOff() method
void noteOff() {
// and unpatch the output
// this causes the entire instrument to stop calculating sampleframes
// which is good when the instrument is no longer generating sound.
sineOsc.unpatch( out );
// fm.unpatch( out);
}
}//class
//