Version

menu_open
Wwise SDK 2023.1.4
Importing Audio Files and Creating Structures

There are several ways of creating Wwise objects with the Wwise Authoring API.

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:

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 onNameConflict argument 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 SearchOperationID and use it for the SearchCriteria name in 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.

{
"objects": [
{
"object": "\\Actor-Mixer Hierarchy\\Default Work Unit",
"children": [
{
"type": "ActorMixer",
"name": "FootSteps",
"@Volume": "-2",
"children": [
{
"type": "RandomSequenceContainer",
"name": "FootStep_Concrete",
"@RandomOrSequence": "1",
"children": [
{
"type": "Sound",
"name": "FootStep_Concrete_01",
"import":{ "files":[ { "audioFile":"C:\\wave\\cues\\FootStep_Concrete_01.wav" } ],}
},
{
"type": "Sound",
"name": "FootStep_Concrete_02",
"import":{ "files":[ { "audioFile":"C:\\wave\\cues\\FootStep_Concrete_02.wav" } ],}
}
]
}
]
}
]
}
]
}
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:

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:

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:

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 page

Tell 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