スペクトラム
FFT を使って現在時刻における音声の周波数スペクトラムを可視化します。周波数軸は線形・対数・メルから選択できます。
ライブラリでの場所
「ライブラリ」 → オーディオビジュアライザー → スペクトラム
プロパティ
形状 (Shape)
各周波数ビンの描画形状。
- 型:
SpectrumShape? - 既定値: バー (
BarSpectrumShape) - アニメーション: 不可
バー数 (BarCount)
表示する周波数バーの数。
- 型:
int - 既定値:
128 - アニメーション: 不可
- 範囲:
[1, 10000]
FFTサイズ (FftSize)
FFT サイズ(2 の冪。大きいほど周波数分解能が上がります)。
- 型:
int - 既定値:
1024 - アニメーション: 不可
- 範囲:
[64, 16384]
周波数軸 (FrequencyScale)
周波数軸のスケール(線形 / 対数 / メル)。
- 型:
FrequencyScale - 既定値:
FrequencyScale.Logarithmic - アニメーション: 不可
下限(dB) (FloorDb)
表示レベルの下限(dB)。これより低い値はクリップされます。
- 型:
float - 既定値:
-80 - アニメーション: 可
- 範囲:
[-200, 0]
スムージング (Smoothing)
時間方向のスムージング係数(0 でスムージング無し、大きいほど平滑化)。
- 型:
float - 既定値:
85 - アニメーション: 可
- 範囲:
[0, 99]
スペクトラム形状
以下は 形状 プロパティに設定できるスペクトラムの種類です。
バー
各周波数ビンを縦棒として描画します。
- バーの幅 (BarWidth):
float、既定値6、範囲[0.5, 10000]、アニメーション可。 - 角の丸み (CornerRadius):
CornerRadius、既定値(0, 0, 0, 0)、アニメーション可。
折れ線
スペクトラムの包絡線を折れ線として描画します。
- 太さ (Thickness):
float、既定値2、範囲[0.5, 50]、アニメーション可。 - 滑らかさ (Smoothness):
float、既定値0、範囲[0, 100]、アニメーション可。値が大きいほど角が丸くなります。
塗りつぶし
包絡線下の領域を塗りつぶします。
- 滑らかさ (Smoothness):
float、既定値0、範囲[0, 100]、アニメーション可。
上下対称バー
各バーを水平中心線の上下に対称に描画します。
- バーの幅 (BarWidth):
float、既定値6、範囲[0.5, 10000]、アニメーション可。
放射状
バーを円周上に放射状に配置します。
- 内側半径 (InnerRadius):
float、既定値40、範囲[0, 10000]、アニメーション可。 - 開始角度 (StartAngle):
float、既定値-90、アニメーション可。最初のバーの角度(度)。 - バーの幅 (BarWidth):
float、既定値4、範囲[0.5, 100]、アニメーション可。 - 方向 (Direction):
RadialSpectrumDirection(Outward/Inward)、既定値Outward、アニメーション可。
共通プロパティ
このオブジェクトは オーディオビジュアライザー を継承しているため、基底クラスで宣言された共通プロパティも利用できます。
使い方
ソース にシーン参照(音声)を設定し、現在のシーンを設定することで、音声と同期したスペクトラムを表示できます。
ソース
src/Beutl.Engine/Graphics/AudioVisualizers/AudioSpectrumDrawable.cs