# FMod C# API definition for FFT is completely wrong

**URL:** <https://qa.fmod.com/t/fmod-c-api-definition-for-fft-is-completely-wrong/23015>\
**Category:** FMOD Engine\
**Created:** [June 5, 2025, 1:15am UTC](https://qa.fmod.com/t/fmod-c-api-definition-for-fft-is-completely-wrong/23015 "2025-06-05T01:15:29Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![katelyngadd](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/katelyngadd/32/8597_2.png) [@katelyngadd](https://qa.fmod.com/u/katelyngadd)\
**Post date:** [June 5, 2025, 1:15am UTC](https://qa.fmod.com/t/fmod-c-api-definition-for-fft-is-completely-wrong/23015/1 "2025-06-05T01:15:29Z")

</div>

I might just be using it wrong, but the definition of FMOD\_DSP\_PARAMETER\_FFT in C# seems completely wrong. I can’t do anything but get it to crash.

By reading the docs I believe I’ve figured out roughly how it should actually look, which is this struct (followed by an example of how to use it):

```auto
        [StructLayout(LayoutKind.Sequential)]
        private unsafe struct ActualDspParameterFft {
            public int length;
            public int numchannels;
            // note: not float**, float[] or float[][]
            public float* spectrum;
        }

        private unsafe void FeedFModFFTOutputIntoWaveform (Span<Vector2> waveform) {
            AssertOk(FMod.FFTDsp.getParameterFloat((int)FMOD.DSP_FFT.RMS, out var rms));
            AssertOk(FMod.FFTDsp.getParameterData((int)FMOD.DSP_FFT.SPECTRUMDATA, out var pSpectrum, out var nSpectrum));
            var pFft = (ActualDspParameterFft*)pSpectrum;
            // if the fft hasn't processed enough input yet its length or channels will be 0
            if ((pFft->length <= 0) || (pFft->numchannels <= 0))
                return;
            var spectrumData = new Span<float>(pFft->spectrum, pFft->length);
            // spectrumData contains the data for the first channel
        }

```

---

<div class="post-metadata">

**Author:** ![Connor\_FMOD](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/connor_fmod/32/3685_2.png) [@Connor\_FMOD](https://qa.fmod.com/u/Connor_FMOD)\
**Post date:** [June 5, 2025, 3:32am UTC](https://qa.fmod.com/t/fmod-c-api-definition-for-fft-is-completely-wrong/23015/2 "2025-06-05T03:32:41Z")

</div>

Hi,

Thank you for bringing this to our attention.

I will pass it onto our development team to investigate further.

---

<div class="post-metadata">

**Author:** ![Connor\_FMOD](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/connor_fmod/32/3685_2.png) [@Connor\_FMOD](https://qa.fmod.com/u/Connor_FMOD)\
**Post date:** [June 30, 2025, 7:14am UTC](https://qa.fmod.com/t/fmod-c-api-definition-for-fft-is-completely-wrong/23015/3 "2025-06-30T07:14:50Z")

</div>

Hi, apologies for the delayed response. I completely missed our Unity scripting example here: [Unity Integration | Examples Spectrum Analysis](https://fmod.com/docs/2.02/unity/examples-spectrum-analysis.html).
