0

録音されたオーディオ クリップのコレクションである長いオーディオを作成しようとしています。これは、やがて 1 つの大きなサウンド コラージュにマージされます。Minim サウンド ライブラリを使用していますが、現時点ではこれを機能させるのに苦労しています。これはまったく同じように機能します。私のプログラミング スキルはかなり基本的なものですが、これは非常に簡単な作業だと思っていました。Minim のサンプル フォルダにある 'RecordAndPlayback' とまったく同じように動作することを望んでいますが、クリックによってイベントが自動的にトリガーされるようにする必要があります。

これまでのコードは次のとおりです。

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 > 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 < 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();
}

これは私を怒らせているので、どんな助けも大歓迎です!

ありがとう

ダニエル

4

1 に答える 1