title: Audio Loop Processing.org (Java/Minim sound Library)
body: <p>I'm trying to create a long piece of audio which is a collection of recorded audio clips that are, in time, merged into one large collage of sounds. I am using the Minim sound library, but at the moment I'm having a hard time getting this to work. This works exactly the same as  My programming skills are fairly basic but I was thinking this would be a very easy task! I :ant it to work just exactly as the 'RecordAndPlayback' in the examples folder of Minim but to have the events triggered by clicks done autonamously.</p>
  
  <p>Here's the code I have so far:</p>
  
  <pre><code>import ddf.minim.*;
  Minim minim;
  AudioInput in;
  AudioRecorder recorder;
  AudioPlayer player;
  Timer timer;
  class Timer {
  
    int savedTime; // When Timer started
    int totalTime; // How long Timer should last
  
    Timer(int tempTotalTime) {
      totalTime = tempTotalTime;
    }
  
    // Starting the timer
     void start() {
      // When the timer starts it stores the current time in milliseconds.
      savedTime = millis();
    }
  
    // The function isFinished() returns true if 5,000 ms have passed.
    // The work of the timer is farmed out to this method.
    boolean isFinished() {
      // Check how much time has passed
      int passedTime = millis()- savedTime;
      if (passedTime &gt; totalTime) {
        return true;
      } else {
        return false;
      }
    }
  }
  void setup()
  {
    size(512, 200, P3D);
    textMode(SCREEN); 
    minim = new Minim(this);
    timer = new Timer(5000);
    timer.start();
    in = minim.getLineIn(Minim.STEREO, 2048);
    recorder = minim.createRecorder(in, "myrecording.wav", true);
  
    textFont(createFont("Arial", 12));
  }
  void draw()
  {
    background(0);
    player =  minim.loadFile("myrecording.wav");
    player.play();
    player.loop();
  //GUI
    stroke(255);
    for(int i = 0; i &lt; in.left.size()-1; i++)
    {
      line(i, 50 + in.left.get(i)*50, i+1, 50 + in.left.get(i+1)*50);
      line(i, 150 + in.right.get(i)*50, i+1, 150 + in.right.get(i+1)*50);
    }
    //-- end of GUI
  //recorder switching
    if (timer.isFinished())
    {
      text("not..", 5, 15);
      if(recorder.isRecording() == true){
       recorder.endRecord();
       recorder.save();
       timer.start();
      }
    }else
    {
      text("recording...", 5, 15);
      recorder.beginRecord();
     println(recorder.isRecording());
    }
    ///--- end recorder switching
  
  }
  void stop()
  {
    // always close Minim audio classes when you are done with them
    in.close();
    if ( player != null )
    {
      player.close();
    }
    minim.stop();
  
    super.stop();
  }
  </code></pre>
  
  <p>Please any help would be much welcomed as this is driving me mad!</p>
  
  <p>Thanks</p>
  
  <p>Daniel</p>