Possible Event Cone Angle bug

Hi! This is the X-Plane flight simulator and we’re running into what we suspect is a bug into the Event Cone Angle parameter handling in FMOD.

There is this event that corresponds to the engine of an aircraft (let’s say a 737 passenger airliner) as heard from inside and it’s modulated in pitch by the N1 parameter (the engine fan speed) and by the Event Cone Angle to provide a timbre variation when you hear it from different parts of the aircraft. When you are near the cockpit, you’re at maybe around 2~5 degrees cone angle, and when you’re standing in the aisle seats over the wing you’re approximately at 90 degrees. The listener is attached to the camera.

When the aircraft is stationary on the ground everything seems to work perfectly, and as you move back and forth in the aircraft aisle, you hear the expected changes in modulation based on the Cone Angle paramenter.

But when the aircraft is flying, you hear fluctuations in the event modulation AS IF the event cone angle parameter was fluctuating as well. Here’s a video showing 1) the event setup 2) the bug while flying 3) the stationary on ground situation: https://www.youtube.com/watch?v=rADGhx30lvE

I say “as if the event cone angle parameter was fluctuating” because we recorded a fragment on the Profiler and we see no such variation. We also analyzed the data that X-Plane is sending to the engine: at the beggining of the frame we update the listener 3D vectors, then on the rest of the frame we set the event modulation parameters and set the event 3D vectors, and they stay stable as expected (so no fluctuation in position that might vary the cone angle).

At your disposal we have the stripped down sound bank and reproduction steps where you can download the product demo and install the bank on the default 737 aircraft so you can test. Thank you!

PS: Running 2.02.29 engine.

I’ll leave repro steps and sound bank here just in case.

  1. Go to https://www.x-plane.com/ and download and install the free X-Plane 12 demo.
  2. Once installed, find the “/X-Plane/Aircraft/Laminar Research/Boeing 737-800” folder.
  3. Delete the “fmod” folder and replace with the provided one.
  4. Start X-Plane, skip the introductory flight.
  5. On the main menu click “New Flight”, select the 737-8000, click “Customize” then check “Start with engines running”.
  6. Select “Location” Salzburg (LOWS) runway 15 and click “Start flight”.
  7. You should be in the 737 cockpit hearing the event tones.
  8. Use the right mouse button to point the camera where you want to move, and press the SHIFT + . and SHIFT + , keys to move forward and backwards.
  9. You’ll have to click on the cockpit door knob to open it and step into the passenger cabin.
  10. Move into the row that’s over the wing, pointing the camera towards the right engine.
  11. You can also use the SHIFT + arrow keys to move the camera up/down/left/right as well.
  12. Press M to bring up the Map window, use the scroll wheel to zoom into your aircraft, click on it and you’ll see its altitude/groundspeed/etc.
  13. Press P to pause, move the Altitude slider to around 35000 ft, groundspeed to 280, press P to unpause.
  14. You’ll hear the fluctuating sounds. Move freely into the cabin to hear the changes.

You can start X-Plane from the command line with the --fmod_live_updateparameter to connect Studio to it.

Bank:

https://www.dropbox.com/scl/fi/5vn45qov7pfnc0fb9oel4/fmod-737-demo-bug.zip?rlkey=n30hh6u6cyrrtcu7hqe79cbl1&dl=1

Thanks for such detailed repro steps! I’ll take a look at the issue and get back to you soon.

1 Like

Thank you! Let me know if you need any help setting that up.

Hi, @Leah_FMOD were you able to reproduce the bug?

Apologies for the delayed response! We’re currently a little swamped preparing for the next Studio release. I’ve been able to reproduce the issue, and I’ll get back to you on it with some more details shortly.

Oh thank you @Leah_FMOD, that’s good news, in the sense it means we’re not doing something wrong! We’ll keep tuned.

Thanks for your patience.

Generally issues like this tend to stem from the listener and event instance positions updating out of lockstep at runtime, but the Event Cone Angle value for the parent event being stable while the referenced event’s value jitters is definitely extremely strange, especially given that their 3D attributes appear to be identical. It likely wouldn’t be possible to cause this difference between parent and referenced event from the API, since a handle to the referenced event is never exposed.

I unfortunately don’t have any workaround to offer you at the moment given how obscure this is, but I’ve passed this issue and your repro along to the development team to dig into further. I’ll get back to you with more info when I have it!