Connecting Wwise and REAPER: Part 1 - WAAPI Transfer

오디오 프로그래밍 / 사운드 디자인

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

댓글

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!

Henrik Jansen

November 12, 2019 at 08:46 am

I use this tool all the time, and it has dramatically improved my workflow. Before, it was really tedious to do minor tweaks to my sounds, but after installing WAAPI Transfer, everything is automated with a couple of mouse clicks. It is also much easier to open old projects and continue working on a sound you did half a year ago, since ReaOpen keeps track of which version you chose back then. The best tool I have seen so far for lazy sound designers like myself.

Kevin Russell

January 15, 2020 at 12:33 pm

Thank you for the great article. So glad I found you here and on Twitter. Now nearly a year later has WAAPI been eclipsed by your ReaOpen script? Asking for MacOS :)

댓글 달기

이메일 주소는 공개되지 않습니다.

다른 글

Wwise / Unreal Engine 4 / Unity 3D를 사용해 발자국 소리의 표면 관리하기

사전 제작의 초기 단계에서 사운드 디자이너는 많은 시스템을 프로토타입화해야 하는데, 이를 도와줄 오디오 프로그래머가 없는 경우도 있죠. 다행히도 Wwise는 Unreal...

17.7.2019 - 작성자: 세바스티앙 겔라르 (Sébastien Gaillard)

Blade Runner: Revelations (블레이드 러너: 리벨레이션)

Blade Runner: Revelations는 잘 알려진 영화 ‘Blade Runner (블레이드 러너)’ 프랜차이즈에 기반한 상호작용 모바일 VR 게임으로, 최근 Seismic...

23.7.2019 - 작성자: Hexany Audio (헥사니 오디오)

ABZÛ - 도전! 물고기 10,000 마리의 게임 오디오 만들기

이 이미지를 가장 처음 봤을 때 여러분은 어떤 생각이 먼저 드나요? 저는 어떻게 하면 이 월드에 현실적이고 진짜 같은 사운드를 만들 수 있는지, 그리고 이 장면의 중심으로 헤엄을...

30.7.2019 - 작성자: 스티브 그린 (Steve Green)

Wwise 오디오 플러그인을 제작하는 간단한 과정

Wwise용 오디오 플러그인을 개발하는 것은 디지털 오디오 편집 프로그램 (DAW)에서 플러그인을 개발하는 것과 꽤 다릅니다. Wwise는 상호작용적이며 수많은 플랫폼을 지원하기...

27.8.2019 - 작성자: 조엘 로비쇼 (Joel Robichaud)

Wwise와 Unity로 12일만에 상호작용 폴리 디자인하기

버튼을 누를 때마다 캐릭터의 외모, 태도, 자세가 끊임없이 새로워지는 캐릭터가 걷는다는 것은 폴리 아티스트에게 정말 꿈만 같으면서도 동시에 악몽이기도 하죠. 꿈이든 악몽이든,...

24.9.2019 - 작성자: 피에르-마리 블랑 (Pierre-Marie Blind)

라우드니스를 처리하는 최상의 방법, 제 1강: 라우드니스 측정 (2부)

이전 블로그인 라우드니스를 처리하는 최상의 방법, 제 1강: 라우드니스 측정 (1부)에서는 지에 양 (디지몽크) 님이 다양한 플랫폼과 콘텐츠 타입에 대한 오디오 표준의 도전 과제와...

20.11.2019 - 작성자: 지에 양 (Jie Yang, 디지몽크)

다른 글

Wwise / Unreal Engine 4 / Unity 3D를 사용해 발자국 소리의 표면 관리하기

사전 제작의 초기 단계에서 사운드 디자이너는 많은 시스템을 프로토타입화해야 하는데, 이를 도와줄 오디오 프로그래머가 없는 경우도 있죠. 다행히도 Wwise는 Unreal...

Blade Runner: Revelations (블레이드 러너: 리벨레이션)

Blade Runner: Revelations는 잘 알려진 영화 ‘Blade Runner (블레이드 러너)’ 프랜차이즈에 기반한 상호작용 모바일 VR 게임으로, 최근 Seismic...

ABZÛ - 도전! 물고기 10,000 마리의 게임 오디오 만들기

이 이미지를 가장 처음 봤을 때 여러분은 어떤 생각이 먼저 드나요? 저는 어떻게 하면 이 월드에 현실적이고 진짜 같은 사운드를 만들 수 있는지, 그리고 이 장면의 중심으로 헤엄을...