2

それで、処理を使用してオーディオプログラムを作成していますが、オーディオ出力からオーディオ信号(正弦波)を削除するようにminimに指示すると、小さなポップ音が発生するという小さな障害に遭遇しました。知っているのは、振幅がそうでなく、スピーカーがサウンドの振幅から0にジャンプしようとすべきだと考えているときにサウンドを削除するプログラムです。

信号が呼び出されるたびにではなく、振幅が0のときにオーディオ信号を削除するにはどうすればよいですか?

play 関数は、メイン プログラムによって 3 フレームごとに 1 回呼び出されます。outはポリフォニックです。ありがとう

public void play(int column){
    for (int i = 0; i < notes[column].length; i++){
      if (column == 0){ //special case when the current time indicator is 0
        if (notes[notes.length-1][i] == true && notes[column][i] == false){ // find previous notes on this row 
          out.removeSignal(sounds[i]);
        }
        if (notes[notes.length-1][i] == false && notes[column][i] == true){
          out.addSignal(sounds[i]);
        }
      }
      else{
        if (notes[column-1][i] == true && notes[column][i] == false){
          out.removeSignal(sounds[i]);
        }
        if (notes[column-1][i] == false && notes[column][i] == true){
          out.addSignal(sounds[i]);
        }
      }
    }
  }
4

1 に答える 1

1

同じ問題がありましたが、Minimを使用してmp3ファイルを再生しただけです。シグナルを削除する代わりに、Minims の stop() / mute() / pause() 関数を使用し、上記のコードを実行した数フレーム後にシグナルを削除しました。

于 2014-12-01T19:13:16.067 に答える