Attenuation not working on events with Transceivers?

Hi there!

I’m having an issue with the attenuation curve on some diegetic music in our game, if anyone has ideas!

We’re basically making a speakeasy, with different performers who will/won’t be present depending on player’s actions. Each performer is playing a different part of the same track, and is a 3D sound within the space (so as you approach the player piano, if it’s been activated, you’ll hear the piano part, or the oboe player, or someone playing the spoons, etc, all in different places in the room).

The way we’ve set this up is by creating one event with every instrument track in it, and then sending each individual track through a transceiver to a separate event just for that instrument. The “main” event with all tracks is 2D, while all the “receiving” events are 3D. So the oboe part in the main event gets routed through a (pre-fader) transceiver into a separate event called “music_oboe” let’s say, and that’s the event that gets put on the oboe player if they’re present.

Problem is, no matter what I set the attenuation curve to on the receiving event, I don’t seem to be able to adjust it. You hear the oboe player (or the piano, or whatever), but the falloff for the sound is super short, only a few in-game footsteps away, and no matter how much I lengthen it or increase the size of the emitter, no change, even if I change it so there’s no falloff to the sound at all, just to test.

Any ideas? I’ll include some pics of my set up for these below. Thanks so much!

I can see a number of possible problems with the events in your screenshots. Unfortunately, these problems should result in behavior that differs both from the behavior you want and the behavior you say you’re getting, so I’m not sure what’s going on.

  • In your “getaway… spoons” and “getaway_sticks_piano” events, the spatializer effects’ attenuation modes are “off.” This should result in your events not being subject to distance-based attenuation, i.e.: being equally loud at all distances from the listener.
  • I also notice that, in your “getaway… spoons” and “getaway_sticks_piano” events, the spatializer effects are located to the left of the transceiver effects. Because the signal flows through the deck from left to right, this should cause the transceiver’s signal to be added to the track’s submix only after the signal is spatialized, meaning that the transceiver’d signal shouldn’t be affected by the spatializer in any way. This should also result in your events not being subject to distance-based attenuation, i.e.: being equally loud at all distances from the listener.
  • The spatializer effect in your “getaway_sticks_piano” event has its max distance set to 0. This should result in your event being completely inaudible unless the distance between the listener and the emitter is 0, i.e.: the event should only be audible when the listener and event emitter share the exact same position, and should be silent at all greater distances.

In short: As far as I can tell, your events do not have any distance-based attenuation, so I do not understand why you are able to hear some in-game.

Incidentally, I notice you’ve set the “sound size” envelopment property of your “getaway_sticks_piano” event to 10.0k, but that the evelopment of your “getaway… spoons” event is set to its default value of twice the event’s minimum distance. This seems like an odd choice, and makes me suspect you may have adjusted this property in the hopes that it affects distance-based attenuation in some way. It does not. The sound size envelopment property affects how distance affects extent (i.e.: how “wide” the event sounds, in terms of how it is spread across multiple speakers), and had no effect on distance-based attenuation.

Have you read the Spatializer Effect glossary entry in the FMOD Studio User Manual? It describes the function of most properties of the spatializer effect.

Hi, Joseph! Thanks for reaching out about this!

Yeah, sorry, a lot of those odd settings (attenuation being off on some things, sound size being massive, etc) were me running tests just to see if I’m able to affect attenuation at all on these music layers. And you’re right, when I tried these settings in-engine, I still heard falloff on all the emitters in that room, despite the fact that I shouldn’t have heard any attenuation at all. Weird!

Maybe it’s something on our end? I’ll speak more with our programmer and see if he has any ideas about it possibly being related to how our side of things is talking to FMOD.

Also thanks for the tip on sound size - while I’ve been in game audio for some time, I’m still relatively new to FMOD itself, so that’s very helpful.

Cheers

Well, as I continue to try to troubleshoot this issue, things only get weirder. In another attempt to see if I can get the transceiver emitters to respond to me at all (the ones placed on individual musicians on the room, each carrying one instrument’s part from the main track), I turned the volume on the “receiving” transceiver on the piano event all the way down, as you can see in the pics attached. I’ve reloaded the game data multiple times after uploading the bank with that change, and checked the timestamps to make sure it took, but the piano still makes sound.

When I test the transceiver in FMOD, things work as they should - the piano event makes no sound unless I turn the volume back up on it’s receiving transceiver.

If anyone has any ideas why these individual instrument events don’t seem to be responding to changes I make to their attenuation or even volume, that would be wonderful. This thing is getting more confusing the deeper into it I go.

Cheers!

If you are building banks and those banks don’t appear to have the changes made, could you please try the following:

  • Check by renaming a parameter or event so you can see if the metadata is being updated correctly
  • If you are using Unity, there is an issue currently where metadata changes are not being picked up as updated banks. Try making some changes like adding a new event or a new asset to the project and see if building new banks is being picked up.
  • On the above, you can also try deleting the last built banks from where the game is loading the banks from, building new ones and placing them in the bank directory.
  • If all else fails, you can try using a Distance built in parameter automating the volume of the receiving transmitter.

Also check if the transmitter events are behaving as expected using the FMOD Studio sandbox window. If it works in this window then it is likely something in the game code that might not be right.

We figured out this was an internal problem with our game’s proprietary engine/structure. Because of the way the game was fetching the banks, unbeknownst to us, it was actually taking upwards of an hour to register any changes I made in-game. So what I thought was the game failing to see my changes in FMOD was actually just a huge delay in how long it took to update.

We’ve since changed how and where FMOD banks are fetched and changes I make now appear in game within 2-3 minutes. Thanks for the help!