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.
Additional resources: 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.