# Rough frequency analysis

**URL:** <https://qa.fmod.com/t/rough-frequency-analysis/21760>\
**Category:** FMOD Engine\
**Created:** [June 13, 2024, 1:38pm UTC](https://qa.fmod.com/t/rough-frequency-analysis/21760 "2024-06-13T13:38:14Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jbat100](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/jbat100/32/6843_2.png) [@jbat100](https://qa.fmod.com/u/jbat100)\
**Post date:** [June 13, 2024, 1:38pm UTC](https://qa.fmod.com/t/rough-frequency-analysis/21760/1 "2024-06-13T13:38:14Z")

</div>

Hello. I want to drive visuals using energy in different frequency bands for a given unity event instance. I only need very rough granularity (lows, mids, highs). Typically, frequency analysis would be done using FFT, but this overkill and not really feasible given performance constraints. I’m looking into using a set of three simple (biquad or similar) DSP filters, then use getMeteringInfo to have an estimate for each frequency band. A few questions:

- Is there a better way of doing this?

- Is routing the signal to analysis DSP nodes as well as keeping the normal playback route (to keep playback unchanged) reasonable?

- If I have N sounds I want to analyse, does this mean creating N\*3 channels (three bands for each)

- The simple high/low pass filters are marked as obsolete  
[https://www.fmod.com/docs/2.00/api/effects-reference.html#high-pass-simple](https://www.fmod.com/docs/2.00/api/effects-reference.html#high-pass-simple)  
[https://www.fmod.com/docs/2.00/api/effects-reference.html#low-pass-simple](https://www.fmod.com/docs/2.00/api/effects-reference.html#low-pass-simple)  
is there a way to get separate signals for the different filters is a 3EQ

Thanks for any help or guidance

---

<div class="post-metadata">

**Author:** ![Leah\_FMOD](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/leah_fmod/32/3685_2.png) [@Leah\_FMOD](https://qa.fmod.com/u/Leah_FMOD)\
**Post date:** [June 19, 2024, 1:42am UTC](https://qa.fmod.com/t/rough-frequency-analysis/21760/2 "2024-06-19T01:42:52Z")

</div>

> [@jbat100](#):
>
> Is there a better way of doing this?

If you only need low granularity, filtering the signal and obtaining metering info for each band would probably be the best option.

> [@jbat100](#):
>
> Is routing the signal to analysis DSP nodes as well as keeping the normal playback route (to keep playback unchanged) reasonable?

Yes, you can do this by either by using [Send DSPs](https://fmod.com/docs/2.02/api/effects-reference.html#send), or by outputting to multiple DSPs using [`DSPConnection`](https://fmod.com/docs/2.02/api/core-api-dspconnection.html)s. You can then connect the filter DSP for each band back to the signal chain at a later point, but mute their output with [`DSP::setWetDryMix`](https://fmod.com/docs/2.02/api/core-api-dsp.html#dsp_setwetdrymix) to ensure they don’t contribute to the mix.

The `dsp_effect_per_speaker` Core API example included with the FMOD Engine installer should serve as an example of how to go about outputting to multiple DSPs like this.

> [@jbat100](#):
>
> If I have N sounds I want to analyse, does this mean creating N\*3 channels (three bands for each)

You won’t need to create 3 channels for each sound, but you will need to create the 3 filtering DSPs, and set each of them up to receive a signal, filter, and so on for a given sound.

> [@jbat100](#):
>
> The simple high/low pass filters are marked as obsolete  
> [https://www.fmod.com/docs/2.00/api/effects-reference.html#high-pass-simple](https://www.fmod.com/docs/2.00/api/effects-reference.html#high-pass-simple)  
> [https://www.fmod.com/docs/2.00/api/effects-reference.html#low-pass-simple](https://www.fmod.com/docs/2.00/api/effects-reference.html#low-pass-simple)  
> is there a way to get separate signals for the different filters is a 3EQ

3EQ or Multiband EQ should both work for your purposes - 3EQ is probably a little simpler to interact with and match crossovers, while Multiband is more flexible.

---

<div class="post-metadata">

**Author:** ![jbat100](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/jbat100/32/6843_2.png) [@jbat100](https://qa.fmod.com/u/jbat100)\
**Post date:** [June 19, 2024, 3:59pm UTC](https://qa.fmod.com/t/rough-frequency-analysis/21760/3 "2024-06-19T15:59:13Z")

</div>

Thanks for all this info, really useful. Got it working with the send/return and using wet/dry mix to avoid the filtered signals contributing the the mix.
