Wwise SDK
Importing Audio Files and Creating Structures
|
Wwise SDK 2024.1.10
|
There are several ways of creating Wwise objects with the Wwise Authoring API.
- Creating Wwise Objects
- Create and modify Wwise objects with ak.wwise.core.object.set
- Create Wwise objects with ak.wwise.core.object.create
- Importing Audio Files
- Create Wwise objects while importing audio files with ak.wwise.core.audio.import
- Create Wwise objects while importing tab delimited files with ak.wwise.core.audio.importTabDelimited
Creating Wwise Objects
It is possible to create most Wwise Objects using ak.wwise.core.object.set and ak.wwise.core.object.create. To learn more about the limitations, refer to Limitations with ak.wwise.core.object.create and Limitations with ak.wwise.core.object.create and ak.wwise.core.object.set.
![]() | Note: ak.wwise.core.object.set offers a superset of the functionalities offered in ak.wwise.core.object.create. We recommend using ak.wwise.core.object.set. |
Advantages of ak.wwise.core.object.set over ak.wwise.core.object.create :
- Support for creating and modifying objects
- Support for batch operations
- Support for importing audio files
Understanding the name conflict modes
When calling ak.wwise.core.object.create, or ak.wwise.core.object.set, it is possible to specify one of the four name conflict modes.
If an object already exists at destination with the same name:
- fail: The create function returns an error. (default)
- replace: The object at destination is deleted (including its children), and a new object is created.
- rename: A new unique name is automatically assigned for the new object, appending numbers to it.
- merge: The object at destination is re-used, and the specified properties, references and children are merged to the destination leaving untouched the rest of the object.
Understanding lists and list modes
Lists are generic containers for storing objects. The objects in a given list are typically of the same type. Lists provide a convenient mechanism for populating and retrieving objects through WAAPI that are "owned" by another object. For example, the RTPCs for a given object are contained in the "RTPC" list of that object.
When calling ak.wwise.core.object.set, it is possible to specify one of two list modes.
If a list already contains objects:
- append: Add the new objects to the list if possible, keeping existing objects. Some lists might not permit duplicate equivalent objects: e.g., some properties of RTPCs in the RTPC list are exclusive so there can only be one RTPC with that property.
- replaceAll: Remove all existing objects and add the new objects, with the duplicate restriction.
For empty lists the behavior is to append.
Limitations with ak.wwise.core.object.create
Sounds
It is possible to create Sound objects using ak.wwise.core.object.create. However, there are significant limitations:
- It is not possible to associate an original WAV or MIDI file with a child Audio File Source object.
- It is not possible to associate a language with a child Audio File Source object.
For this reason, we don't recommend using ak.wwise.core.object.create to create Sound objects that use WAV or MIDI files.
Instead, refer to:
- ak.wwise.core.object.set, which supports importing audio files
- Importing Audio Files
- ak.wwise.core.audio.import
Plug-ins
It is not possible to create plug-ins of the type Source, Effect, or Metadata with ak.wwise.core.object.create. Use ak.wwise.core.object.set instead.
Limitations with ak.wwise.core.object.create and ak.wwise.core.object.set
Work Units
Creating Work Units with ak.wwise.core.object.create and ak.wwise.core.object.set requires the undo/redo history and the clipboard to be cleared. The Work Unit will also be saved upon creation, effectively creating a corresponding WWU file in the project.
- The
onNameConflictargument must be either'fail','merge'or'rename'. The'replace'mode is not supported.
Queries
It is possible to create Query objects with ak.wwise.core.object.create and ak.wwise.core.object.set. However, the criteria objects need to be created with a specific GUID as the name. The name of the criteria must contain the GUID of the SearchOperationID attribute as found in the WWU files. Each criteria type has a unique GUID.
To find the correct GUID to use in the name, you will need to reverse engineer the WWU files:
- Create a Query object in the Query Editor
- Add the Criteria you wish from the Criteria Browser
- Modify the property fields in the Criteria Editor
- Save the project
- Open the Work Unit in a text editor
- Look for
SearchOperationIDand use it for theSearchCriterianamein ak.wwise.core.object.set. - Look for the properties in the WWU file as examples and set them in ak.wwise.core.object.set.
Lists
It is not possible to create objects to populate the "Metadata" and "Clips" lists with ak.wwise.core.object.set.
- Metadata are plug-ins which cannot be created.
- Clips require an AudioSourceRef which cannot be specified.
Due to the limitations below we do not recommend creating objects in the "Sequences" and "Stingers" lists with ak.wwise.core.object.set.
- Without the ability to assign a Segment to a stinger through WAAPI we do not recommend creating a Stinger in the "Stingers" list.
- Without the ability to create a MusicClip through WAAPI we do not recommend creating a MusicSequence in the "Sequences" list.
Using ak.wwise.core.object.set to import audio files and create a hierarchy of objects
Refer to ak.wwise.core.object.set for more information.
![]() | Note: The object field indicates where to create the object in the project. The object field, like most Wwise object fields, supports object IDs (GUID) and object paths. To retrieve an object ID, refer to ak.wwise.core.object.get. You could, for example, retrieve the object ID by its project path. |
![]() | Note: To retrieve an object ID from a Wwise project, you can hold the Shift key while right-clicking an object, then select Copy GUID(s) to clipboard. |
More examples using ak.wwise.core.object.set to import audio files:
- Creating multiple child hierarchies of objects in batch
- Creating new Source Plug-ins for a Voice
- Importing a WAV file into a new Sound SFX and creating the associated Event
- Importing a WAV file to create a Sound SFX object
- Importing Base64 content to create a Sound SFX object
- Importing two WAV files to create two Sound SFX objects
- Importing a WAV file into a Sound Voice
- Importing a WAV file into an Audio File Source
- Importing a MIDI file into a Music Segment to create a Music Track
- Importing two WAV files into a Music Segment to create two Music Tracks
- Importing a WAV file into a Music Track to create a Music Clip
Importing Audio Files
Audio files can be imported using the Wwise Authoring API by means of the same import processor available through the Tab Delimited import in the Audio File Importer.
Using the Wwise Authoring API allows complete automation of the import process and provides direct control in the programming language of your choice.
The import format allows great flexibility. You can import:
- Using ak.wwise.core.object.set, along with the object structures
- Using ak.wwise.core.audio.import with JSON content
- Using ak.wwise.core.audio.importTabDelimited with Tab delimited TXT files
At a glance, the audio file importation allows:
- Importation and localization of audio files
- Automatic creation of actor mixer hierarchies
- Creation of Events
- Property Value assignation, such as Volume
- Reference assignation, such as the Output Bus
For more information about it, refer to https://www.audiokinetic.com/library/edge/?source=Help&id=importing_media_files_from_tab_delimited_text_file.
![]() | Note: ak.wwise.core.audio.importTabDelimited and ak.wwise.core.audio.import are the preferred ways to create Sound objects and import audio files at the same time. We do not recommend using ak.wwise.core.object.create or \ ref ak_wwise_core_object_set because it is currently not possible to associate an audio file and a language to created objects. |
Examples:
- Creating a new SFX with no file and setting a value to a property
- Importing audio files and creating multiple Sound SFX
- Importing an audio file to create a Sound SFX using a relative object path
- Importing an audio file to create a Sound SFX using an absolute object path
- Importing audio files to create Sound SFX and Audio File Sources
- Importing an audio file to create a Sound Voice for English
- Importing an audio file to create a Sound Voice for French
- Importing an audio files to create Sound Voices for English and French
![]() | Note: Make sure the language exists in your project, and make sure the case is also matching. |
Was this page helpful?
Need Support?
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageTell us about your project. We're here to help.
Register your project and we'll help you get started with no strings attached!
Get started with Wwise