Audiokinetic's Community Q&A is the forum where users can ask and answer questions within the Wwise and Strata communities. If you would like to get an answer from Audiokinetic's Technical support team, make sure you use the Support Tickets page.

0 votes

I want to create sounds of a circular area or volumetric sound.

in General Discussion by Guillaume R. (Audiokinetic) (5.8k points)

1 Answer

+2 votes
 
Best answer

The situation of a circular area or volumetric sound:

First, In the attenuation settings, you can set a curve for spreading sound amongst speakers based on distance.

Go in the attenuation view, and select the Spread curve.
By default there is no spreading curve, simply add one.

(Spreading will be efficient for all sounds to diffuse directionality, not only "surface" sounds, but generally, you will use less spreading for point emitter source.)

Now you have a graph for this sound allowing to set spread parameter according to distance from sound.

When you are in a distance that sets a spread of 100%, the sound will simply ignore the directionality of the sound and play the sound equally in each speakers (based on speaker configuration and platform). At 0%, the sound is coming from one single direction.

So edit the graph for that spreading is 100%( you can try 90% too so you still have a little directionality ) from 0 distance unit to X distance units ( X could be a little less that the radius of the source).
Then you can linearly pass from 90-100% to 0 % over distance, based on how far your river is going to be heard (it will vary based on the type of sound).

Now, you just created a circular surface sound, where you can cross near or on the emitter without the sound jumping from front speakers to rear speakers. Also, when the player steps in the lake, it really feels like the river is surrounding the player.


This solution works perfectly for a round lake, but what if we have a river?

Here are three possible solutions.

First: 
You can put multiple emitters in the river with equal distance from one to another. Each of these sources will consume CPU (you should always enable virtual voices for ambiance sounds in order to save CPU when the sound is too low to be heard anyway; virtual voices are very cheap in CPU and in memory, especially when they are in mode PlayFromBeginning).
You will also want to adjust volume attenuation curve so that it sound good when walking along the river and making sure the emitters are not too close one from the other so that volumes don't add up. Doing this you will get something that is not mathematically perfect, but the user will not notice it unless it is moving really fast along the river.

Second: 
This method is similar to the first one, but much better. Instead of laying multiple game objects on the river, set multiple positions on a single game object, using the multi-directions mode. Using this mode, you won't have to be preoccupied by having points too close next to each other, as volumes don't add up. Refer to this article for more details about multi-positioning. Furthermore, only one voice will be playing in the Wwise sound engine, which is much more efficient.

Third:
In the case the river is really long and putting multiple emitters is not a viable option, then again, using the spread curve concept, make the game update the position of the river single emitter when the player is moving so that the position of the emitter is the position perpendicular to the river Vs player position.
This last solution might seem a little more complex to implement, but will be the most accurate solution and cheaper in CPU usage as only one sound will be played.

by Guillaume R. (Audiokinetic) (5.8k points)
selected by Guillaume R. (Audiokinetic)
Bumping for a valid link!
Here is the content of the linked KB article:

"When it comes to using multiple emitters, you may either create multiple game objects that play the same sound (or not), or you can use the multi-positioning feature of the Wwise sound engine.

There are two types of multi-positioning: multi-sources and multi-directions.

Multi-source multi-positioning is similar to using multiple game objects: the resulting sound is the sum of the contribution of all positions, exactly like if there were many game objects. Use multi-source mostly as a performance optimization device. When you have many objects that emit the same sound, but which don't overlap too much, use multi-source multiple positions instead of multiple identical sounds playing in different game objects. At the end of the day, there will be one and only one voice playing, with volumes accurately computed, instead of as many voices as there are positions. For more details, read the "torches" example in the SDK documentation.
Multi-directions multi-positioning is the preferred method for simulating big objects. The resulting sound is positioned at the position that is the closest to the listener. Thus, in the methods described in the articles mentionned above, you don't have to bother about not having your emitters overlapping each other. Simply put as much "positions" as you want in order to "cover up" all the surface. The listener will always hear the sound as if it was coming from the closest of these positions. Again, only one voice is processed in the sound engine, so this is very efficient.
You should use multi-directions multi-positioning to simulate big objects instead of multiple game objects whenever possible, as they are easier to manage in code and level design, and much more efficiently processed in Wwise.

However, using multi-positioning means that you can only set multiple positions on a game objects. Whenever you wish to change the volume (or any other property) of one of these "virtual sources", or play a different sound, you need to use multiple game objects."
...