Var not iterating problem • Use all row values to iterate CSV column with for loop to playNote()

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 
//
1 Like