Version: 2017.4
public static void GetSpectrumData (float[] samples, int channel, FFTWindow window);

パラメーター

samplesオーディオサンプルとともに格納する配列です。その長さは 2 の累乗でなければなりません。
channelサンプルする元のチャンネル
windowサンプリング時に使用する FFTWindow のタイプ

説明

リスナー(マスター)のスペクトルデータのブロックを取得します。

サンプルのパラメーターで指定された配列は、リクエストされたデータで埋められます。

Number of values (the length of the samples array) must be a power of 2. (ie 128/256/512 etc). Min = 64. Max = 8192. Use window to reduce leakage between frequency bins/bands. Note, the more complex window type, the better the quality, but reduced speed.

この関数は、オーディオクリップに指定されたサンプリングレートではなく、 AudioSettings.outputSampleRate で指定されたサンプリングレートを使用します。

See Also: AudioListener.GetOutputData, AudioSource.GetSpectrumData, AudioSource.GetOutputData.

using UnityEngine;

[RequireComponent(typeof(AudioListener))] public class GetSpectrumDataExample : MonoBehaviour { void Update() { float[] spectrum = new float[256];

AudioListener.GetSpectrumData(spectrum, 0, FFTWindow.Rectangular);

for (int i = 1; i < spectrum.Length - 1; i++) { Debug.DrawLine(new Vector3(i - 1, spectrum[i] + 10, 0), new Vector3(i, spectrum[i + 1] + 10, 0), Color.red); Debug.DrawLine(new Vector3(i - 1, Mathf.Log(spectrum[i - 1]) + 10, 2), new Vector3(i, Mathf.Log(spectrum[i]) + 10, 2), Color.cyan); Debug.DrawLine(new Vector3(Mathf.Log(i - 1), spectrum[i - 1] - 10, 1), new Vector3(Mathf.Log(i), spectrum[i] - 10, 1), Color.green); Debug.DrawLine(new Vector3(Mathf.Log(i - 1), Mathf.Log(spectrum[i - 1]), 3), new Vector3(Mathf.Log(i), Mathf.Log(spectrum[i]), 3), Color.blue); } } }

Obsolete public static float[] GetSpectrumData (int numSamples, int channel, FFTWindow window);

パラメーター

numSamples値の数 (サンプル配列の長さ) は常に 2 のべき乗である必要があります。最小が 64 で最大が 8192 です。
channelサンプルする元のチャンネル
windowサンプリング時に使用する FFTWindow のタイプ

説明

非推奨バージョン リスナー (マスター) のスペクトルデータのブロックを取得します。

この関数のバリエーションは、呼び出されるたびに新しい配列を割り当てます。パフォーマンスを向上させるには、代わりに Non-alloc バージョンを使用してください。