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.
この関数は、オーディオクリップに指定されたサンプリングレートではなく、 AudioSettings.outputSampleRate で指定されたサンプリングレートを使用します。
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); } } }
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.