[BUG?] Sometimes calling add group created two signal paths

, ,

image
We have a feature that requires routing channel groups to different buses on the fly with calling add channel group.

According to this post, looks like channel group can only have 1 output and that is the case we’ve been observing for most of the time.

However from time to time, we see the behavior shown in the screenshot where the same group gets piped into another channel group twice.

Here’s how we do the routing:

// Lock all channel groups for buses beforehand
	FMOD::ChannelGroup* pChannelGroup = nullptr;
	verifyfmod(pEventInstance->getChannelGroup(&pChannelGroup));
        pChannelGroupForTargetBus->addGroup(pChannelGroup);

We’ve also noticed normally when calling an event configured in Studio, FMOD creates a channel group fader for all the event instances for that event, then connect that fader to other buses, and we can include that fader by calling getParentGroup again. However in our case we only want certain instances of the event to be routed to non-default specific buses in the fly.

Apologies for the delayed response.

The behavior you’re observing is likely a side-effect of diving into Core API functionality when using the Studio API, which depending on what’s being done often runs the risk obscure and hard-to-diagnose errors since usually the Studio system automatically manages its underlying Core system.

First up, what version of FMOD Studio and the FMOD Engine/API are you using?

Have you been able to identify any specific contexts where this occurs more frequently? Or is seemingly random even when the context is simple, and there’s not much FMOD-related going on besides the reroute?

I may be misunderstanding exactly what you mean, but there’s not really any way around this besides manually enumerating and then disconnecting/reconnecting the event instances you want to reroute.

Funny enough I am not seeing this anymore now the project is more complicated since I posted the question…

First up, what version of FMOD Studio and the FMOD Engine/API are you using?

We are using 2.03.5 (early access), will try to update to the latest stable version see if it still happens.

Have you been able to identify any specific contexts where this occurs more frequently? Or is seemingly random even when the context is simple, and there’s not much FMOD-related going on besides the reroute?

Yup, the context was simple. I was able to repro in a minimal project as well before handing the system to our sound designers.

I may be misunderstanding exactly what you mean, but there’s not really any way around this besides manually enumerating and then disconnecting/reconnecting the event instances you want to reroute.

image
^ The left most fader in the screenshot seems to get created when creating a new event configured from FMOD Studio. When I used getparentgroup on the event instance and move the group, the dotted line box gets moved, but the fader on the left doesn’t. (And this is when the bug sometimes happen. When I call getparentgroup again and move all 3 nodes in the screenshot together, the bug doesn’t happen but all subsequent instances of the same event get piped into the same left most fader, which is not what we want.)

We do have access to FMOD source code in our license, is there documentation on how to include / link it to the UE solution? (gonna try repro in a minimal scene to see if I can find anything)