2009-11-26 6 views
2

Как рассчитать частоту & Амплитуда в As3 с FP9. Я получил все необработанные байты, используяКак рассчитать частоту и амплитуду во Flash AS3 с помощью Flash Player 9

SoundMixer.computeSpectrum(_testbytes, false, 0); 
var g:Graphics = this.graphics; 
g.clear();  
g.lineStyle(0, 0x6600CC); 
g.moveTo(0, PLOT_HEIGHT);    
var m:Number = 0; 
for (var i:int = 0; i < 256; i++) { 
    m = (_testbytes.readFloat() * 100); 
    g.lineTo(i*2 , 100 - m); 
} 
g.lineTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT); 

Теперь я могу получить частоту & амплитудных данные из него?

ответ

2

Если вы подробно рассмотрели документацию computeSpectrum(), вы увидите , второй параметр устанавливает режим FFT.

FFT означает FastFourierTransform, в основном, если вы используете FFT по форме волны, которую вы переходите в частотную область, что означает вместо необработанных значений, у вас есть значения, которые сортируются по вашей частоте.

Все, что нужно изменить в коде:

SoundMixer.computeSpectrum(_testbytes, true); 

Сейчас в _testbytes у вас будет 512 значений, 256 для левого канала и 256 для правого канала. Для каждого канала номера сортируются по частотам, от низкого до высокого (низкий, средний, средний, высокий, я думаю).

Вот и все, у вас есть частоты сейчас. SoundTransform имеет громкость, что является еще одним способом сказать амплитуду, я думаю. Если вам нравится делать Math.max() на некоторых из этих частот или leftPeak и rightPeak, идите на это.

Если вы хотите получить отвращение к этому, просто посмотрите FFT на википедию или DSP (обработка цифровых сигналов) или обработку звука, в противном случае должна быть достаточно документация as3 для computeSpectrum.

Что касается частоты дискретизации, this cool as library, похоже, для вас тяжелая работа.

НТН, Джордж

+0

Привет Джордж, Спасибо за предоставленную мне направление. В амплитуде я пытаюсь вычислить пиковое значение из Sound Channel, это неправильно? Другое дело, как можно получить частоту дискретизации любого mp3-файла? Еще раз спасибо. Tanmoy –

+0

Я вижу, обновленный ответ кажется подходящим сейчас^_ ^ –