Files
kaiju/Assets/TripsitterAve.cs
T
2022-03-29 13:45:47 +11:00

42 lines
1.1 KiB
C#

using System.Collections.Generic;
using Assets.WasapiAudio.Scripts.Unity;
using UnityEngine;
public abstract class TripsitterAve : MonoBehaviour
{
public WasapiAudioSource source;
[SerializeReference]
[SerializeReferenceButton]
public List<SpectrumTransformer> Transformers = new List<SpectrumTransformer>();
[SpectrumDataPreview]
public SpectrumData Preview;
protected int SpectrumSize { get; private set; }
public virtual void Awake() {
SpectrumSize = source.SpectrumSize;
Preview = new SpectrumData();
}
protected float[] GetSpectrumData()
{
// Get raw / unmodified spectrum data
var spectrumData = source.GetSpectrumData();
// Run spectrum data through all configured transformers
if (Transformers != null && Transformers.Count > 0)
{
foreach (var transformer in Transformers)
{
spectrumData = transformer.Transform(spectrumData);
}
}
Preview.Values = spectrumData;
return spectrumData;
}
}