# Using Wwise {{< callout context="caution" title="IMPORTANT!" icon="outline/alert-triangle" >}} If you have previously used Wwise to create sounds for Microsoft Flight Simulator 2020, then you should see the following page for information about changes and additions for Microsoft Flight Simulator 2024 before continuing: [Audio Migration And Updating](aircraft-audio/audio-migration-and-updating/). {{< /callout >}} This page outlines how to use [Wwise](https://www.audiokinetic.com/products/wwise/) along with the **WwiseSampleProject\_MFS2024** supplied with the Microsoft Flight Simulator 2024 SDK (for information related to the legacy version of the sample, also included in the SDK, please see the MSFS 2020 documentation).   This sample project can be found from the following folder: <SDK ROOT>\(MSFS SDK\)Samples\(Wwise\)   It is important to note that **you can't create a Wwise Project from scratch and use it to generate audio content for Microsoft Flight Simulator 2024**. Even if you create the same buses in the Master-mixer Bus hierarchy, they won't be recognized by the simulation. To create new content, use *only* the shared **WwiseSampleProject** as your base. {{< callout context="caution" title="IMPORTANT!" icon="outline/alert-triangle" >}} The **WwiseSampleProject** is regularly updated and so you always should ensure that you are using the latest version supplied with the current SDK. {{< /callout >}}   If you are unfamiliar with Wwise then we recommend that you go through the tutorial supplied by AudioKinetic, available from the following link, before going any further: - [Wwise 101 Certification](https://www.audiokinetic.com/courses/wwise101/?source=wwise101 "Using Wwise Tutorial")   It is also strongly recommended that you review the following page to get full details on licencing Wwise before continuing: - [Wwise Licence Information](wwise-licence-information/)   Finally, while this page gives an *overview* of how to create your sound effects packages and how to integrate them with your aircraft package, it is not a comprehensive step-by-step guide on using Wwise and the `sound.xml`/`soundai.xml` files. However we have created a full tutorial that covers the entire process of creating both simple and complex sound effects as part of the Aircraft Tutorial, which you can find here: - [Audio Tutorial](aircraft-audio/aircraft-audio/)     ### Before Getting Started Before you start doing anything, it's important to know what you can and cannot do with the supplied Wwise project, so we've compiled the following list to help you:   - You *can* create your own **Soundbanks** and **Packages**, - You *can* edit the **Actor-Mixer Hierarchy** and the **Event Hierarchy**, in order to create and integrate your own audio content - You *can* create your own **SimVar Game Parameters** if [the ones that are shared](rtpc-and-simulation-variables/) do not include the ones you need - You *can* create your own **Attenuation Shareset** - You *can* create your own **Effects Shareset** and use it in your **Actor-Mixer Hierarchy** (please keep in mind that moderate use of these effects is recommended, as they may have a significant impact on game performance)   However:   - You *can't* make any edits to the **Master-Mixer Hierarchy** (creating new output buses or auxiliary buses, adding some effects, etc...), but you *can* use it to route your sounds. Please visit the [Master Mixer Hierarchy](master-mixer-hierarchy/) page in order to find out how to route your sounds. - You *can't* edit or create new **States** and **Switches**, but you *can* use all the shared States and Switches game syncs. Please visit the [Shared states and switches](shared-states-and-switches/) page in order to find out how to use the shared `game_sync`.   Note that the base structure of the project is included in the initialisation soundbank of Microsoft Flight Simulator 2024. This structure will be maintained over time and it won't be subject to any changes.   Finally, here are a couple of very common mistakes that people can make and that should be avoided:   - **Mixing too low or too high**: Microsoft Flight Simulator 2024 is mixed in compliance with the [ITU-R BS 1770-3](https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.1770-3-201208-S!!PDF-E.pdf) recommendations. Every audio content provider should follow these guidelines, so that together we ensure a consistent mix of all community audio content. Please visit the [Audio Mixing Standards](audio-mixing-standards/) page in order to find out how to deal with your aircraft loudness mix in Microsoft Flight Simulator 2024. - **Incorrect routing**: please make sure to send your sounds to the right bus, so that the in-game mixer will apply to your aircraft. The [Master Mixer Hierarchy](master-mixer-hierarchy/) page will help you find out how to route your sounds. - Do not exceed the clip distance in your attenuation shareset: - *Aircraft player*: clipping distance is set up to 10,000 meters, - *AI Aircraft*: clipping distance is set up to 5,000 meters.   We invite you to explore the WwiseSampleProject and the aircraft samples so you can have an overview and a better understanding of the implementation process.     ### Workflow Quicktart Guide The rest of this page comprises a "quick start guide" of the general workflow when using the sample project, but it is by no means meant as an in-depth description of how to create audio for MSFS 2024. There is an entire sub-section of documentation regarding this, which can be found here: - [Sound](sound/)   With all that in mind, let's go ahead and create the required [SimObject](../content-configuration/modular-simobjects/simobjects/simobjects/) workflow and packages. We'll start by creating our SimObject **work units**: {{< callout context="caution" title="IMPORTANT!" icon="outline/alert-triangle" >}} Because the Microsoft Flight Simulator 2024 SDK is constantly being updated, you will need to build your work space by creating several WorkUnits in the WwiseSampleProject in order to avoid your work being overwritten by future SDK updates. {{< /callout >}} - Start by creating your Actor-Mixer workunit, by going to the "Audio" tab in the Project explorer window. Name it with your company name, followed by your aircraft name. For an AI aircraft, just add an "\_AI" suffix: {{< image-center src="images/4_Sound/Wwise/wwise_actor_mixer_structure.png" alt="Actor-Mixer Structure" >}}   - Create your Event workunit by going to the "Event" tab, and also name it like your previous actor-mixer workunit. Do the same for AI aircraft, just add "\_AI" suffix: {{< image-center src="images/4_Sound/Wwise/wwise_event_structure.png" alt="Event Structure" >}}   - You'll then need to create your own workunit for all the content you'll create: - ShareSets - Game Parameters - Sessions - Queries   #### Create Player And AI Soundbanks In the Wwise **Project Explorer** window go to the **Soundbanks** tab, and create your workunit and your own aircraft soundbank. The name of the soundbank *must be the one described in the `sound.xml`* in the `Wwisepackage` element. For more information about the WwisePackage element, please see the `sound.xml` page. We recommend that you also name it just like you Actor-Mixer & Event workunit, eg: : **YourCompanyName\_YourAircraftName**. And the same for an AI aircraft, just add "\_AI" suffix to your AI soundbank: {{< image-center src="images/4_Sound/Wwise/wwise_sounbank_structure.png" alt="Soundbank Structure" >}} Once the creation is completed, simply drag and then drop your freshly created event `*.wwu` onto your soundbank from the Wwise Soundbank layout: ![Soundbank Gen](images/4_Sound/Wwise/wwise_sounbank_gen.png)You now need to generate the Wwise **Soundbanks** using the with the "Generate" button in Wwise.   #### Create your Simobject package (PC.PCK) You now have everything required to create your `SimObject.PC.PCK` file. To do so: - Launch the `FilePackager.App.exe` from your Wwise installation path. - Open the `PCK_PC.wfpproj` located in the Wwise Project directory. - Create you own package, naming it as your Soundbank and adding the "`PC.PCK`" extension: Your AI packages also require the "`_AI`" suffix. - Simply drag and drop your Soundbank into your packages. - Generate - Copy and paste the Package from the *GeneratedSoundbanks* folder in the WwiseSampleProject into the `sound` (or `soundai`) folder of your SimObject. {{< callout context="note" title="NOTE" icon="outline/bulb" >}} A version of Microsoft Flight Simulator higher than 1.3 is required to load the soundbank. {{< /callout >}} {{< image-center src="images/4_Sound/Wwise/wwise_filepackager.png" alt="Wwise Sound Packager" >}} Your `PC.PCK` file must now be referenced in your `sound.xml` to be loaded in Microsoft Flight Simulator 2024: ``` xml ``` Your `soundai.xml` must also reference its package : ``` xml ``` For more information about the WwisePackage XML element, please see the [`sound.xml`](../content-configuration/sounds/sound-xml/) page.   Your soundbank and audio package are now ready to be loaded in Microsoft Flight Simulator 2024. Keep in mind that you will need to generate your soundbanks and packages using the "Generate" button in Wwise, each time you modify or create new content in Wwise.   The last step, to listen and test your audio content in the game, is to load your package at runtime using the build button in the Microsoft Flight Simulator 2024 **Project Editor**. For that you need to enable developer mode ([see here](../introduction/sdk-overview/) if you aren't sure how to do that), then open your project from the `File` menu. Select your aircraft, and click on the **Build Package** button: {{< image-center src="images/4_Sound/Wwise/wwise_build_package.png" alt="Build Package In The Project Inspector" >}}     ### Event Naming Convention The Wwise event naming convention is simple, but *must* be respected otherwise the sounds will not play properly. Every Wwise event using the `wwisedata=true` attribute must be named following this convention: ``` xml Play_[SoundbankName]_[WwiseEvent] ``` Where: - `[SoundbankName]`: the name of your Soundbank or your `PC.PCK` file. - `[WwiseEvent]`: the name value that is set up in the `sound.xml` for your audio event in the `WwiseEvent` attribute (if you haven't already done so, go and see [`sound.xml` introduction](../content-configuration/sounds/sounds/) page) For instance, with a Soundbank and PC.PCK file called "*MyAircraft*" you would first set up the XML like so: ``` xml ``` The resulting event name in Wwise for "`wind_sound`" would be: "`Play_MyAircraft_wind_sound`".   AI aircraft events must be named by adding the "`_ai_`" suffix between `SoundbankName` name and the `WwiseEvent`. The resulting event name for that AI sound in Wwise would be like this: "`Play_MyAircraft_ai_wind_sound`" **.** {{< callout context="caution" title="IMPORTANT!" icon="outline/alert-triangle" >}} The naming rules described above apply to all sounds **except** `EngineSoundPresets` which have their own specificity, allowing us to ensure backward compatibility with legacy systems. This convention is described in detail below. {{< /callout >}}   #### Naming convention for EngineSoundPresets Below is the naming convention for `EngineSoundPresets`:  
Sound.xml WwiseEventEvent Name in Wwise [SBName] = SoundBankName [Index] = EngineIndexExample
JetWhinePlay_[SBName]_eng[Index]_jet_whinePlay_MyAircraft_eng1_jet_whine
NonCombustionPlay_[SBName]_eng[Index]_non_combustionPlay_MyAircraft_eng1_non_combustion
StarterPlay_[SBName]_eng[Index]_starterPlay_MyAircraft_eng1_starter
CombustionStartPlay_[SBName]_eng[Index]_combustion_startPlay_MyAircraft_eng1_combustion_start
CombustionPlay_[SBName]_eng[Index]_combustionPlay_MyAircraft_eng1_combustion
PropellerPlay_[SBName]_eng[Index]_propPlay_MyAircraft_eng1_prop
RotorPlay_[SBName]_rotor[Index]_rotorPlay_MyAircraft_rotor1_rotor
ShutdownPlay_[SBName]_eng[Index]_shutdownPlay_MyAircraft_eng1_shutdown
  And for AI aircraft:  
Sound.xml WwiseEventEvent Name in Wwise [SBName] = SoundBankName [Index] = EngineIndexExample
JetWhinePlay_[SBName]_ai_eng[Index]_jet_whinePlay_MyAircraft_ai_eng1_jet_whine
NonCombustionPlay_[SBName]_ai_eng[Index]_non_combustionPlay_MyAircraft_ai_eng1_non_combustion
StarterPlay_[SBName]_ai_eng[Index]_starterPlay_MyAircraft_ai_eng1_starter
CombustionStartPlay_[SBName]_ai_eng[Index]_combustion_startPlay_MyAircraft_eng1_combustion_start
CombustionPlay_[SBName]_ai_eng[Index]_combustionPlay_MyAircraft_ai_eng1_combustion
PropellerPlay_[SBName]_ai_eng[Index]_propPlay_MyAircraft_eng1_prop
RotorPlay_[SBName]_ai_rotor[Index]_rotorPlay_MyAircraft_ai_rotor1_rotor
ShutdownPPlay_[SBName]_ai_eng[Index]_shutdownPlay_MyAircraft_ai_eng1_shutdown
    ### Final Notes To end this introduction on using Wwise to generate sounds for your add-ons, we'd like to give you some tips on positioning your sounds in 3D space:   - The `EngineIndex` that you set up in the `sound.xml` positions the engine sound to the coordinates of the corresponding engine(defined in the [`engines.cfg`](../content-configuration/cfg-files/engines.cfg/) file). There is thus no need to set up a `NodeName` on engine sounds. - The `RotorIndex` attribute for EngineSounds works like the `EngineIndex` which allows you to position the audio emitter on the corresponding Engine. For exemple: `RotorIndex = 1` is the Main Rotor, `RotorIndex = 2` is the Secondary Rotor (note that the limit is 2). - For `AnimationSounds`, the sound automatically plays on the animation node, so there is no need for a `NodeName` to be set up either. - For other sounds, if no `NodeName` is set up through `sound.xml`, the sound will play at the **center** of the plane. But it's always better to set up a `NodeName` so your sounds will play in the right place. See the [sound.xml](../content-configuration/sounds/sound-xml/) page for more information about the sound attributes in `sound.xml`. - Pay attention to the `ConeHeading` attribute in `sound.xml` especially for engine sound if you want to emphasize its perspective. By default, the engine node is facing forward. So if you want the exhaust sounds to be facing backwards, you'll need to set up the cone heading using `ConeHeading`=180 and attenuate the outer angle in Wwise: {{< image-center src="images/4_Sound/Wwise/wwise_attenuation_editor.png" alt="Wwise Atenuation Editor" >}} - You can also set up a position for your sounds using the Wwise Emitter with Automation feature. It can be really useful for cockpit loops, like buzz, fans, etc...: {{< image-center src="images/4_Sound/Wwise/wwise_emitter_with_automation.png" alt="Wwise Emitter With Automation" >}}   Finally, some tips on handling **SimVars**: - The [**SimVar Watcher**](../samples-tutorials/samples/visualstudio/simvarwatcher/) is a very useful tool, and can be found in the SDK tool kit: <SDK ROOT>\(Samples\)SimvarWatcher\\ As the name suggests, it allows to watch simvar values in real-time so it's easier to setup your game parameter and your {{< glossterm >}}rtpc{{< /glossterm >}}. - The [**Wwise Profiler**](https://www.audiokinetic.com/learn/videos/qPB7j00KN40/) can be a great ally to track errors and mistakes in the implementation process.