AS3中的FFT和卷积

时间:2013-08-24 23:42:12

标签: actionscript-3 audio

我正在尝试加载一个MP3和一个HRTF文件(wav),然后通过Convolution来产生另一个输出音频信号,但我有点卡住了怎么做。

sound1 = new Sound;
sound1.addEventListener (Event.COMPLETE, completeHandler);
sound1.load (new URLRequest ("test.mp3"));
channel1 = sound1.play (0, int.MAX_VALUE);

function completeHandler (event:Event):void 
  {  bytes1 = new ByteArray; 
     samples1 = new <Number> []; 
     fft1 = new FFT;
     addEventListener (Event.ENTER_FRAME, enterFrameHandler);
  }

function enterFrameHandler (event:Event):void 
  {  // get bytes of 512 samples
     bytes1.position = 0;
     sound1.extract (bytes, 1024, channel1.position * 44.1);
     // get samples of left or right channel
     bytes1.position = 0;
     while (bytes1.bytesAvailable > 0) 
       {  samples1 [int (bytes1.position / 8)] = bytes1.readFloat (); bytes1.readFloat();
       }

     // analyze samples1
     fft1.analyze (samples1);
     var limitHz:Number = 5000;
     var i:int=0;
     var n1:int = fft1.magnitudes.length * limitHz / (44100 / 2);

     // And then here I should somehow multiply the signal1*signal2?
     for (i = 0; i < n1; i++) 
       {  var sound1Mag:int = fft1.magnitudes [i];
          var sound2Mag:int = fft2.magnitudes [i];

        //......?????

       }
  }

非常感谢任何帮助。

好的,我编辑提到第二个文件不是wav而是MP3(我将wav转换为MP3)

0 个答案:

没有答案