samples | オーディオサンプルと格納する配列。その長さは 2 のべき乗でなければなりません。 |
channel | サンプルするチャネル |
window | サンプリング時に使用する FFTWindow の型 |
現在再生されている Audio source のスペクトラムデータのブロックを提供します。
サンプルのパラメーターに指定された配列は要求されたデータでいっぱいになります。
値の数( 提供されるサンプルの配列の長さ )は常に 2 のべき乗である必要があります。(例えば 128/256/512 )最小が 64 で最大が 8192 です。
bins/bands 周波数の間での漏れを軽減するために window を使用します。
より複雑なウィンドウタイプやよりよい品質を出す場合は減速に注意してください。
この関数はオーディオクリップの指定したサンプリングレートではなく、 AudioSettings.outputSampleRate で指定したサンプリングレートを使います。
See Also: AudioSource.GetOutputData, AudioListener.GetSpectrumData, AudioListener.GetOutputData.
using UnityEngine; using System.Collections;
public class GetSpectrumDataExample : MonoBehaviour { AudioSource audio; float[] spectrum = new float[256];
void Start() { audio = GetComponent<AudioSource>(); }
void Update() { audio.GetSpectrumData(spectrum, 0, FFTWindow.BlackmanHarris); int i = 1; while (i < spectrum.Length-1) { 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.yellow); i++; } } }
廃止されたバージョン。現在再生されているソースのスペクトラムデータのブロックを返します。
この関数のバリエーションはそれが呼び出されるたびに新しい配列を割り当てます。パフォーマンス向上のため Non-alloc バージョンを代わりに使用します。
値の数( numSamples )は常に 2 のべき乗である必要があります。(例えば 128/256/512 )最小が 64 で最大が 8192 です。
bins/bands 周波数の間での漏れを軽減するために window を使用します。
より複雑なウィンドウタイプやよりよい品質を出す場合は減速に注意してください。