最終更新:2010-11-21 (日) 02:39:34 (4895d)  

SoundMixer.computeSpectrum()
Top / SoundMixer.computeSpectrum()

http://help.adobe.com/ja_JP/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d17.html

computeSpectrum(outputArray:ByteArray, FFTMode:Boolean = false, stretchFactor:int = 0):void

SoundMixer?.computeSpectrum() メソッドを使用すると、アプリケーションは再生中の波形の未処理のサウンドデータを読み取ることができます。複数の SoundChannel? オブジェクトが再生中であれば、SoundMixer?.computeSpectrum() メソッドはすべての SoundChannel? オブジェクトを合成したサウンドデータを示します。

サウンドデータは、512 バイトのデータを含む ByteArray? オブジェクトとして返されます。このデータはそれぞれ -1 から 1 までの浮動小数点値を持ちます。これらの値は、再生中のサウンド波形のポイントの振幅を示します。 値は 256 バイトずつ 2 グループに分けて送信されます。うち 1 つめのグループは左ステレオチャンネル用、そしてもう 1 つのグループは右ステレオチャンネル用です。

FFTMode パラメータが true に設定されている場合は、SoundMixer?.computeSpectrum() メソッドは、波形データではなく周波数スペクトルデータを返します。周波数スペクトルとは、最も低い周波数から最も高い周波数までのサウンド周波数で配列した振幅を示します。 波形データを周波数スペクトルデータに変換するために、高速フーリエ変換 (FFT) が使用されます。 その結果として生成される周波数スペクトルの値の範囲は、0 からおよそ 1.414 (2 の平方根) までです。

メモ

  • ByteArray?はfloat(32bit=4byte)*512=2048byte
    • 先頭の1024byteが左
    • その次の1024byteが右
  • readFloatすると4バイト分読み込んでポインタがその分進む

stretchFactor

stretchFactor 値に 0 を設定した場合、データは 44.1 KHz でサンプリングされ、1 の場合は 22.05 KHz、2 の場合は 11.025 KHz となる

  • 0 - 44.1KHz -

関連

参考