Version: 2021.2
言語: 日本語
public void GetSpectrumData (float[] samples, int channel, FFTWindow window);

パラメーター

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

説明

現在再生されている Audio source のスペクトラムデータのブロックを提供します。

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

Number of values (the length of the samples array provided) 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: AudioSource.GetOutputData, AudioListener.GetSpectrumData, AudioListener.GetOutputData.

using UnityEngine;

[RequireComponent(typeof(AudioSource))] public class AudioSourceGetSpectrumDataExample : 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 float[] GetSpectrumData (int numSamples, int channel, FFTWindow window);

パラメーター

numSamples 検索するサンプル数。その長さは 2 のべき乗でなければなりません。
channel サンプルする元のチャンネル
window サンプリング時に使用する FFTWindow のタイプ

説明

廃止されたバージョン。現在再生されているソースのスペクトラムデータのブロックを返します。

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

Number of values (numSamples) 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.