处理最小值:当幅度为0时删除信号

时间:2014-12-01 15:27:44

标签: processing minim

所以我正在制作一个使用处理的音频程序,我遇到了一个小路障,因为当我告诉minim从音频输出中移除音频信号(正弦波)时,它最终会得到一个我知道的小弹出声是当声音没有振动时发出声音的程序,扬声器认为它应该尝试从声音的振幅跳到0。

如果音频信号的幅度为0而不是在信号被调用时,我该如何去除音频信号?

主程序每3帧调用一次播放功能。 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]);
        }
      }
    }
  }

1 个答案:

答案 0 :(得分:1)

我只使用Minim播放mp3文件,尽管我遇到了同样的问题。 我没有删除信号,而是使用Minims stop()/ mute()/ pause()函数,并在执行上面的代码后删除了几帧信号。