How to access and manipulate effects in an event at runtime?

I have a Transceiver effect on an Event in my FMOD Unity project. I’d like to make a reference to this event’s Transceiver effect and change the FMOD_DSP_TRANSCEIVER_CHANNEL at game runtime.

I’ve read through the documentation for the built in Effects but I haven’t found any documentation on how to reference existing effects on an event. Anyone have tips? I’m in FMOD 2.01.

Thanks!
Kurt

You can get existing dsps on an event by searching through the channel group of the event for a dsp with that name, for example:

    public void GetDSPByName(FMOD.Studio.EventInstance eventInstance, string name, out FMOD.DSP dsp)
    {
        dsp = new FMOD.DSP();

        eventInstance.getChannelGroup(out FMOD.ChannelGroup cg);
        cg.getNumDSPs(out int numDSPs);

        for (int i = 0; i < numDSPs; ++i)
        {
            cg.getDSP(i, out FMOD.DSP tmpDsp);

            tmpDsp.getInfo(out string dspName, out uint version, out int channels, out int configwidth, out int configheight);

            if (dspName.Contains(name))
            {
                dsp = tmpDsp;
            }
        }
    }

In this case your dsp’s name would be “FMOD Transceiver”. After getting the dsp you can set the parameters as you usually would. Note this particular way of accessing the dsp would have to be done on a playing event instance.

Amazing. Thank you Jeff!!! Happy Holidays!

1 Like