Blog homepage

Connecting Wwise and REAPER: Part 1 - WAAPI Transfer

Audio Programming / Sound Design

WAAPI Transfer is not new, but I feel like there is not enough talk about it. It is an open source REAPER expansion plugin which allows you to export audio assets from REAPER directly into your Wwise project. This tool is designed to give you features similar to Nuendo’s Game Audio Connect plugin. It is still in development and, to be fair, the user experience can be improved. That doesn’t mean that it’s not worth a try, on the contrary, it’s a great tool for every sound designer working with REAPER and Wwise. I’d like to familiarize you with its capabilities.

DISCLAIMER: At the time of writing this article this is the best possible open source way to connect REAPER and Wwise. That doesn’t mean that it can’t or won’t be replaced with something better. REAPER community is huge and it is constantly active. Lots of members are always testing new stuff and writing custom scripts and plugins, myself included. With that in mind, let me present you WAAPI Transfer by Karl Davis aka KarlTechno.

WARNING: Unfortunately, WAAPI Transfer works only on PC.

WAAPI Transfer features

  • Export large number of audio assets directly to Wwise

  • Export items, regions, stems and master mixes

  • Export sound effects, sound voices and music tracks

  • Export from multiple projects at the same time

  • Open Source (free)


Limitations

  • No MIDI support

  • Poor Interactive Music Hierarchy support

  • Minor bugs

  • Primitive UI/UX


Installing WAAPI Transfer

NOTE: In order to use this plugin you need to have Wwise version that supports WAAPI (2017.1+)

  • Open Wwise and go to Project->User Preferences

  • Check Enable Wwise Authoring API  option and click OK

 

Picture1
  • Close Wwise

  • Go to Waapi Transfer Github page and download latest plugin release (v0.1.9-beta at the time) with the architecture that matches your REAPER installation (x86/x64)

  • Open REAPER

  • Go to Options->Show REAPER resources path

  • Open UserPlugins folder

  • Place your WAAPI Transfer .dll  file in here

  • Restart REAPER

  • Open Wwise


Now you should be ready to start using the plugin. Two new options should appear in Extensions menu inside REAPER: WAAPI Transfer and WAAPI Recall.

 

Basic parts of WAAPI Transfer

 

Picture2
  1. About info - You can inspect data about the current version here

  2. Audio assets list - List of audio files that will be imported to Wwise

  3. Wwise objects list - List of Wwise objects which will be populated by audio files

  4. Render settings - Here you can customize all asset properties and start rendering

  5. Wwise objects manager - Allows you to add and remove objects from Wwise project

 

Preparing your assets

Using WAAPI Transfer requires you to first create all container objects in Wwise before importing sounds from REAPER. The next step is to assign all your sounds to corresponding Wwise objects. When everything is prepared you can export the sounds with one click. WAAPI Transfer works by detecting everything inside REAPER’s render queue. This means that you can export items, regions, stems or master mix. If you didn’t know, using render queue for exporting has its advantages but also some drawbacks. You should be aware of those because they are not that obvious.

The main advantage of exporting with render queue is the fact that you can load multiple projects and close them after you add the assets  to render queue list. Even after closing and restarting REAPER the render queue list will be saved. This means that you have freedom to go through all of your game audio projects and choose specifically what you want to export from each one. When you are done , you can export all those assets at once.

The drawback is the fact that every time you click Add to render queue button inside REAPER, a new render queue list entry is created. To explain why this  is a problem you must know the basic principle of render queue logic. Everything you put inside render queue is going to be rendered from the temp copy of your project that contains just the assets that you selected, but all the plugins. If your project is processing-heavy it can take some time for REAPER to do the rendering because for every entry in the list REAPER creates and loads that temp copy on the fly, even if you created multiple queue entries from the same project.

 

Picture3

In the image above you can see that there are three queue entries. One for Gunshots, one for Footsteps and one for Explosions. Even though they are all coming from MyProject.rpp, for each entry the unique temp project will be created. So, for optimizing your render time my advise to you is to select all assets from one project at once and then add them to render queue. You can also use subprojects and freezing to avoid having large number of active plugins inside your project. I cannot emphasize strongly enough the importance of thinking ahead about this because it really adds up in total render time when you have a large number of processor/ram intensive plugins and a large number of queue entries from various projects.

Exporting SFX and VOICE assets to Wwise

Standard procedure

The basic principle is to get all objects of interest from Wwise and assign to them every asset that you want to export from REAPER. To do this follow these steps:

  • Populate REAPER’s render queue list with your sounds

  • Open WAAPI Transfer by clicking Extensions - > WAAPI Transfer (you can also set a keyboard shortcut for this)

  • Make sure that you can see info text that says Connected on port 8080… If this is not the case click on WAAPI Re-connect

    • NOTE: You can change the port value in User Preferences inside Wwise, but I’m not sure if that is recommended. If you are already using that port (8080) for some other OSC in REAPER there is a possibility of having connection issues.

  • Select the objects in your Wwise project  which you want populate 

 

Picture4
  • Click Add Selected Wwise Objects in WAAPI Transfer 

 

Picture5
  • If everything goes ok, you should see a newly created list

 

Picture6
  • Select one of the Wwise objects from the list (i.e. Gunshot)

  • Then select all audio assets which you want to place inside this object (i.e Gunshot 001,Gunshot 002,Gunshot 003)

  • Click Set Wwise Import Location

  • Repeat these steps until you assign all sounds from the list to Wwise objects

 

In the end your window should look something like the image below.

Picture7

NOTE: Alphabet sorting of list objects by certain criteria (like Filename, Wwise parent…) is not working yet. Bear in mind that the order in which you are adding files to render queue can’t be changed inside the plugin.


Property settings

Every sound asset in the list has couple of properties: Filename, Wwise Parent, Import Type, Language, Import Operation, Originals Subpath. You can customize settings for each sound asset separately or change properties on multiple assets at once. Let’s go through all properties to understand them better:

  • File - Name of the audio file that will be created when asset is exported

  • Wwise parent - Wwise object in which asset will be placed

                 Suported objects types are:

    • Actor-Mixer Hierarchy

    • Actor-Mixer Workunit

    • Virtual folder (Actor-Mixer Hierarchy)

    • Random container

    • Switch container

    • Sequence container

    • Blend container

    • Music Segment

                Wwise parent objects that are not supported:

    • Music Playlist container

    • Music Switch container

  • Import Type

    • SFX - Set this for Sound SFX  objects

    • Dialog - Set this for Sound Voice objects

  • Language

    • Determines the language for Sound Voice objects, ignored for SFX

  • Import Operation

    • CreateNew - Creates new sound file and new Wwise sounds object

    • UseExisting - This option will replace existing sound file but will keep all of the Wwise object properties like volume, attenuation, effects etc.

    • ReplaceExisting - Setting this option will completely replace existing Wwise object including audio file and all the setting (personally, I think that this option is redundant and that you will never feel the need to use it)

  • Originals subpath - Allows you to define specific subfolder inside Originals path in Wwise. I never change this, but maybe you will.

 

Changing the properties

All of the properties are changed by clicking Import Settings button and then selecting one or more options from the dialogue window.

 

Picture8

There are dropdown menus for Language and Import Operation. Be aware that you first need to choose the property from the list and then click the Set…  button below. It’s not quite intuitive but you’ll get used to it. New property values will be applied to selected list entries only so make sure to have a valid selection.

There is a faster way of changing Import Operation and Import Type properties and that is by right-clicking  selected list entries and choosing from a context menu.

 

Picture9

 

Rendering

When you are done with all your settings inside the asset list there is a couple of more things to consider.

Let’s say that your project render path is  D:\BouncedSounds. You have a choice to choose what will happen to your files after importing them into Wwise. By default, WAAPI Transfer will copy files from this location to Wwise Originals folder. I always choose to move the files instead of copying them because Wwise Project is the only place where I need to store my game’s original audio files. If you are like me, you should uncheck the option Copy Files to WwiseOriginals.

 

Picture10

Make sure that Wwise Profiler is disabled because it’s not possible to import new assets in Wwise while it is active.

Now you can simply click RENDER AND IMPORT ALL button which will do all the work. When rendering is completed you will see new objects in your Wwise project. When you complete this procedure a couple of times it will become your second nature. It’s actually fairly simple and easy. 

NOTE: If you have Source control enabled inside your Wwise project, you will have a little, but very annoying problem to deal with. If you try to export a large number of audio files at once you will get a dialogue box for every ten files that need to be imported. You will be asked whether you want to add these new files to your source control repository.

 

Picture11

As far as I know, there is no other way to disable this dialog box than to turn off source control completely. So, if you are highly dependent on source control inside Wwise you will have to click that YES button a lot.

 

Exporting MUSIC assets to Wwise 

As I have mentioned before, support for handling interactive music hierarchy objects is limited. The plugin was not designed for composers, but mainly for sound designers. Even though this is the case, you can still do some sort of music exporting.

You can export your sounds to Music Segment objects and they will be populated with one Music Track for each sound file.

Picture12

WAAPI Transfer will automatically detect that Import Type is Music, regardless of what you choose manually.

Picture13

But, if you try to export sounds to a Virtual Folder inside Interactive Music Hierarchy, WAAPI Transfer will not detect the Import Type.

Picture14

After exporting sounds to a virtual folder you will get an error window.

Picture15

Funny thing is that this operation will succeed. Multiple Music Segments will be created, each with one Music Track.

Picture16

The problem is that your render queue list inside REAPER will remain populated as if operation failed, and your original files in project render path will not be deleted. It is extremely important to know this if you plan to use WAAPI Transfer for this type of operation.

WARNING: Music Playlist Container and Music Switch Container objects are not supported and can’t even be added to WAAPI Transfer object list.

  

Project recall

Project recall is an option which lets you open the original .RPP project file of selected Wwise object. This is something like Open in Nuendo command but it’s not very well implemented. I could explain how it works but I actually created a script called ReaOpen that does this better. I will write a separate blog post on that topic, so stay tuned.


Additional warnings

CTRL+A problem

Shortcut for selecting all list items inside the plugin is CTRL+A. It’s the most common shortcut for this type of operation. The problem is that WAAPI Transfer hijacks this keystroke globally while plugin window is open, even when it’s inactive. You will be unable to perform selections in other programs until you close the plugin window.

ESC key problem

Escape key does not close WAAPI Transfer window which is a little bit disappointing.


Conclusion

WAAPI Transfer could definetely be improved in many ways. My guess is that a really small number of people is actually using it and even smaller number is sending some feedback to the author. This is due to the fact that existence of this plugin is not something people really know about. It lives under the radar. I believe that should be changed and I highly encourage everyone using REAPER to try it. Even if you are not a REAPER user you can download the demo version and try this workflow for free. This piece of software is a great gift to the game audio community and we should all at least test it and send some feedback to the author. It’s  the best way to continue the development of this particular and other similar tools. I hope that I managed to put some light on the usage of this plugin and that I inspired and informed you enough to be bold and try it.


 

Nikola Lukić

Technical Sound Designer

Mad Head Games

Nikola Lukić

Technical Sound Designer

Mad Head Games

Nikola is a technical sound designer at Mad Head Games (Belgrade, Serbia). He has a MA degree in sound design but he started his career in game development as a gameplay programmer. After a year of coding he switched to work in audio sector. With the discovery of REAPER and languages like Python and LUA he quickly started working on creating tools and workflow procedures to speed up and increase efficiency in the department. Now he wants to share his knowledge and ideas with the world.

lkctools.com/

 @lkctools

Comments

Daniel Nielsen

February 21, 2019 at 08:55 am

This is actually pretty god damn awesome besides it's current limitations. I don't use Reaper or Nuendo (would love to, if I could afford it) but know I'm seriously considering changing my workflow to use Reaper instead. It would make things so much easier. Thanks for the article!

Leave a Reply

Your email address will not be published.

Also from this series

Connecting Wwise and REAPER: Part 2 - ReaOpen

ReaOpen is a free lightweight program that allows you to select an audio file and open its original...

9.4.2019 - By Nikola Lukić

Also from this series

Connecting Wwise and REAPER: Part 2 - ReaOpen

ReaOpen is a free lightweight program that allows you to select an audio file and open its original...