Version: 2020.3
言語: 日本語
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.

This function will use the sampling rate specified in AudioSettings.outputSampleRate, and NOT the sampling rate specified for the audio clip.

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 バージョンを使用してください。