Skip to content
This repository has been archived by the owner on Aug 5, 2022. It is now read-only.

ResonaceAudio doesn't work with snapshots #1

Open
LutzSoundtek opened this issue Mar 22, 2018 · 10 comments
Open

ResonaceAudio doesn't work with snapshots #1

LutzSoundtek opened this issue Mar 22, 2018 · 10 comments

Comments

@LutzSoundtek
Copy link

ResonanceAudio plugin seems to work by having any events with a Source plugin output directly to where the Listener plugin sits. In the vast majority of cases, this is on the Master Bus.

So anything in between the Source and the Listener plugins do not apply. This means bus volumes, bus effects, and snapshots that affect buses are not being applied.

My workaround is to set the Listener plugin on an extra sub-group. So at least non-Resonance Sounds work in the mixer.
Any fixes for that? Is the base problem the same as in the Issue #19 of the UnitySDK thread?

@TheFunnyBrain
Copy link

TheFunnyBrain commented Aug 18, 2018

I've been battling with this for a little while too, and have gone for a "unique" approach that seems to work. :)

My workaround (using Unity) has been to have a script with static floats for what would be the fader values, and then having each individual sound source script refer to their appropriate value, and set a parameter linked to the pre volume of the fmod event.

Here's an example of how I'm storing the parameters, apologies for the messy code!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public static class staticParams {

    public static float masterVolume = 1;
    public static float adVolume = 1;
    public static float sfxVolume = 1;
    public static float ambienceVolume = 1;
    public static float characterSpeechVolume = 1;
}

The sound object's script is something to this effect (this one is for an event that would normally go to an SFX 'bus':

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using FMOD.Studio;

public class fmodSFXCustomEmitter : MonoBehaviour {

    public EventInstance soundEvent;
    public ParameterInstance volume;
    public float currentEventVolume;

    // Use this for initialization
    void Start() {
//setting up the event and parameter
        soundEvent = FMODUnity.RuntimeManager.CreateInstance("event:/object/soundmarker");
        soundEvent.getParameter("SfxVolume", out volume);
        soundEvent.start();
    }

        void Update () {
//checks if the static parameter has been changed elsewhere (settings menu etc)
        if (currentEventVolume != staticParams.sfxVolume)
            {
            volume.setValue(staticParams.sfxVolume);
            currentEventVolume = staticParams.sfxVolume;
            }
	}
}

This does mean having an extra update function for every sound object, and also a lot of extra code objects attached to gameobjects, but it works! If there is a method to achieve mixing more efficiently, I'd really welcome any ideas.

I hope this helps. :)

Edit: Here's a screengrab of my fmod event in case it helps. :)

image

@apkd
Copy link

apkd commented Oct 3, 2018

Is anyone looking into this? This is seriously limiting the mixing capabilities that are the whole point of using FMOD.

@fmod-mathew
Copy link

Nothing to report at this stage, due to the way the plugin was developed the signal chain will bypass most of the mixer. Snapshots can affect the final mix out of the Listener only.

We are hoping to introduce a feature that would allow the source plugins to apply the downstream attenuation caused by effects between the listener and the source but that has not been scheduled yet.

@LutzSoundtek
Copy link
Author

Then add it to the schedule, please. It is critical!
To be honest, it is kind of shabby that a native tool has that sort of issue.

@fmod-mathew
Copy link

I can understand your frustration but please be aware that this is a third party plugin that was until recently developed separately from FMOD. We have a lot of feature requests to balance and the changes I alluded to are not trivial. At this stage I cannot give an estimate for when the changes required will be implemented. Please also note that any DSP effects applied between the source and listener will not affect the Resonance signal, even with the planned improvements.

@HolleyGray
Copy link

I think the frustration comes from it being such a great sounding plugin!

It is frustrating as one of the main reasons for using middleware/fmod is for the enhanced mixing capabilities. I started a project using resonance, then a few weeks in I realised that I couldn't use groups or snapshots with it. I tried really hard to make it work, but to no avail! It was a real shame, as it was sounding fantastic.

I think it would be a good idea to update your FMOD documents so the limitations are clearly explained, so people don't waste time using the plugin and then finding out later. I think that's probably why people get angry!

I've ended up using the Oculus spatializer and although the plugin isn't as pretty, I've still got fantastic result with it.

@LutzSoundtek
Copy link
Author

LutzSoundtek commented Oct 11, 2018

@HolleyGray Yes, that is the point. Same happened to me.
I found an ok-ish workaround, by placing the listener on a subgroup. So my resonance objects are separated from the other sounds.

@HolleyGray
Copy link

@LutzSoundtek yeah, I tried that too, but I have ambisonic ambiences, ambisonic music and spatialised sound, so there is no way that I can have all of those on the same bus! Hopefully something will be done in the future as it really is a great sounding plugin, but can totally see the reasons why its such a huge undertaking to change it.

@Vvunlo
Copy link

Vvunlo commented Jun 9, 2022

@fmod-mathew @LutzSoundtek Does anyone know if there have been any updates or work arounds. Ive just encountered this issue and I may have to drop resonance in favor of native fmod.

@fmod-mathew
Copy link

There haven't been any significant developments in this area. There is a loose plan to allow the 3rd order ambisonics produced by the Resonance plugin to flow through the FMOD mixer (rather than teleporting to the listener), allowing effects and gain control but work has no begun on that yet.

Right now, global parameters are probably your best workaround, using them to control the fader levels of all Events using Resonance. For effects, they will need to be pre-spatializer and likely controlled with global parameters too.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants