Can someone point me to an in-depth explanation of these attributes in spatialized? I kind of understand what they do at a high level, but am having trouble grasping what behavior to expect from stereo files in 3d events. Thank you!
This is a rather complex question, and so my answer will be a little long.
The first thing you need to know is that “extent” is the audible breadth of a sound, expressed as an angle, and defines the extent to which that sound is spread across multiple speakers. If you drag the emitter around the 3D preview, you’ll see an arc form and move around the edge of the 3D Preview’s circle: That arc represents the extent.
By default, extent is automatically calculated based on the sound size and the current distance between the emitter and listener: At 0 distance from the listener, extent is 360 (because a sound isn’t directional when it’s coming from the same location as the listener); and at max distance it’s close to 0 (because being so far away that it’s barely audible normally makes a sound as directional as it can possibly get). The rate of transition between those extremes is determined by the “sound size” property.
The sound size property represents the diameter (which is to say, twice the distance) at which the extent is exactly 180 degrees. By default, sound size is 2, meaning that the extent is 180 degrees when distance is 1. The vast majority of events can use this default without needing to change it, for reasons that I’ll explain a little lower down this page.
“Min extent” defines the lowest value extent can be. If something would cause extent to be lower than min extent, extent is instead clamped to the value of min extent.
As I mentioned above, this is a fairly complex system, so you might be asking yourself what it’s all for. The answer is fairly simple: It prevents event instances from “flipping” suddenly from one speaker to another when they move past the listener. Flipping sounds very unnatural - if you want to hear it, you can do so by setting envelopment to “off” and dragging the emitter past the center of the the 3D preview while auditioning the event - but is easily solved by spreading the event over multiple speakers so that it seems to transition gradually from one speaker to another rather than suddenly.
There is one other niche use for sound size that I’m aware of. Occasionally, if you have an event that you want to “fill the room” and sound close to omnidirecitonal when the listener is in close proximity, you might want to set sound size to a higher value than the default. However, it’s usually easier to achieve this effect by automating the pan override mix property on a distance built-in parameter, so it’s fairly rare that anyone uses sound size for that purpose.
As for the question of stereo files in 3D events, that’s only tangentially related: The spatializer effect automatically upmixes any signal it receives to your platform’s surround channel format; once that’s done, the signal is handled in exactly the same way it would be if it came from an instrument originally in that channel format.
Thanks for such a great answer! Your explanation is very enlightening.
There’s a few things you wrote that explicated things for me, and in my opinion, may be a great addition to the documentation. Thanks!
“At 0 distance from the listener, extent is 360, and at max distance it’s close to 0. The rate of transition between those extremes is determined by the ‘sound size’ property.”
“The sound size property represents the diameter (which is to say, twice the distance) at which the extent is exactly 180 degrees. By default, sound size is 2, meaning that the extent is 180 degrees when distance is 1.”
" ‘Min extent’ defines the lowest value extent can be. If something would cause extent to be lower than min extent, extent is instead clamped to the value of min extent."
Don’t worry, we plan to add this information to the FMOD Studio User Manual as part of our ongoing documentation improvements.