How to modify the cutoff for a lowpass effect on a mixer group using a global parameter of continuous type?

Hi there. Fmod beginner here. I have added a Lowpass Simple effect to 3 mixer groups. I want to modify the values on these filters based on the value of a global parameter (continuous from 0 to 1). The values would apply based on a curve.

I tried using a snapshot but I believe a snapshot only allows me to apply one set of values to the filters. So for example, if the value of my global parameter is 0.5, I can set the “scoped in” values for the lowpass filters via the snapshot to a certain value but I need the snapshot to accept a curve, if that makes sense.

Edit: I found a video of someone demonstrating something along the lines of what i am trying to do: https://www.youtube.com/watch?v=w-JCrQmXYSo
Trying to figure out how to add an automation curve to my event. I should mention that my event is not linked to any audio asset (there is no timeline sheet). I only need to modify the filter on the mixer group

Snapshots are the tool for this. They can accept automation curves based on global parameters, just as you want, though you’ll have to set the mixer window to tracks view (using the button in the transport bar) first in order to see them.

Automation curves in events won’t help you in this case, as your effects are on group buses, and effects in the mixer can only be automated in mixer snapshots, not in events.

Hey Joseph. Thanks for your response. I have created my FMOD event and snapshot as follows.

The value of all the parameters range from 0 to 1 (continuous). I am trying to set the value for the Voice0 parameter in Unity but it is not working. I have created one event instance each for the event and the snapshot in Unity and am setting the parameter by name

That all sounds correct, so the problem must lie elsewhere.

Is the event routed into the bus that’s controlled by the snapshot? (I can’t entirely make out the bus’ name, but it looks like it might be called “Player0.”)

Is the Voice0 parameter a local or global parameter?

How exactly are you setting the parameter’s value in Unity? What code or other method are you using?

What value are you setting the parameter to?

It’s working for me now. The parameter was not being set correctly in Unity. If I may ask another question in the same topic -

I’ve modified my mixer setup in FMOD since my last reply. This is what I have now:

I have many mixer buses called Player{Index}. That’s because I am working on a first person multiplayer game that uses dissonance voice chat. Dissonance has an FMOD integration that pipes voice audio through FMOD and assigns each player a mixer bus.

I had to create a parent mixer bus to hold the low pass filter for each player so I can muffle individual players if they are behind walls. My concern is that my overriding snapshot is going to override distance-based attenuation Dissonance does to facilitate proximity chat.

I don’t know if this would be considered best practice for this scenario…

I’m glad to hear you were able to resolve the issue.

We don’t make or maintain Dissonance, so I’m afraid we can’t tell you what the best practices for using it are. Have you tried contact its developers, Placeholder Software?

I have been speaking to someone from Placeholder Software all this while. I am experiencing an issue where voice audio from a player is becoming virtualized. The documentation describes virtualization as " A virtualized event instance is an event instance that is playing but produces no audio." However, if I understand this correctly, voice audio is not an instance of an event. I will share a link to this forum topic with the helpful individual at Placeholder Software and they might be able to answer questions regarding the dissonance side of things.

In that case, you are likely experiencing channel virtualization rather than event instance virtualization. Information on this topic can be found in the relevant section of the FMOD Engine User Manual.

Hi Joseph. Thank you for your response. It turns out I was not calling set3DAttributes on the channel. The emitter was likely past the max distance set on the channel and was thus getting virtualised. This is fixed now.

I am now onto the next problem :smiley:

I am trying to achieve a 3D spatial effect for the voice audio. FMOD has a spatializer effect but if I understand correctly, I can only use that on Events. If I wanted to have spatial voice chat, what approach would you recommend?

I have been trying to utilize the Resonance Audio plugin today. I have added a Resonance Audio Listener effect to all my player voice mixer groups. However, now I cannot hear any voice audio :frowning:
Even when using the FmodResonanceAudioRoom component.

When i use LiveUpdate, I can see the “in” bar on the Resonance Audio Listener visualizing the amplitude of my voice when i speak through one Unity client, but it’s somehow not making it’s way to the master bus, i think. I believe I am missing something…

Let me know if I should create a new topic for this, by the way.

There are a few different ways you could do this.

The “correct” way - which is to say, the one that would have the fewest side effects to worry about - would be to apply spatialization directly to the relevant channels. This isn’t something you can do through FMOD Studio, however; you would have to use the FMOD Core API to attach the DSP to the relevant channel or channelgroup and feed it 3D attributes from your game’s code.

There is an easier way, however, and one which can be done in FMOD Studio. I notice your mixer contains one group bus for each of your players. You can’t put a spatializer effect on a bus because buses don’t have 3D locations in the FMOD Studio AI, so they don’t have 3D attributes to pass to a spatializer effect. However, if you add a pre-fader transceiver effect to each of these buses, set them to transmit mode and set each one to a different transceiver channel, you could then create a series of events corresponding to those buses and containing transceiver effects set to receive, each of which is set to the same channel as the transmitting effect in the associated bus. Because instances of those events would have 3D locations, they would have 3D attributes to pass to spatializers, allowing you to spatialize those signals. (You would, of course, also need to set the outputs of the buses to -oo dB, or you’d get a duplicate of the signal that isn’t spatialized as well.)

Creating a new topic is preferred, but not required.

This is expected. The Resonanace Audio Listener replaces all audio at its position with a mix of the signals it receives from Resonance Audio Source and Resonance Audio Soundfield effects throughout your project. It does not mix them with the signal at its position.

Incidentally, you should usually have exactly one Resonance Audio Listener effect in your FMOD Studio project. Every such effect produces exactly the same output and replaces the signal at its position with that output, so putting one on every mixer group will A) prevent your project from producing any audio other than from events and buses containing Resonance Audio Source and Resonance Audio Soundfield effects, and B) will be redundant, as you will be adding many identical copies of the same mixed signal to your game’s mix.

I strongly reccomend reading the documentation on using these effects in FMOD Studio before attempting to use them in a project.

Thank you for your reply, Joseph. The transceivers are working well for me. Cheers!