menu
 

How Sound Designers Use PureData + Heavy to Develop DSP Plug-ins - Part 3

Wwise에 대한 팁과 도구

How to continue using Heavy Compiler in Wwise 2021.1.x?

Context

Since the release of the new Wwise Major Version (2021.1.x), there has been more and more feedback from users that Heavy Compiler is no longer available with the Wwise 2021.1.x SDK. This is perhaps very bad news for those who want to do more "Procedural" sound design in Wwise.

This made me worry that hvcc would eventually come to the end of its life, unmaintained, and take away the vitality it brought to Wwise about Procedural Audio... until one day, a friend in the community asked a question about it and followed up by telling me that he had found a way to keep hvcc working with Wwise version 2021.1.x!

image003

Instead of asking him directly how exactly he solved this compatibility issue, I chose to try to find the answer myself, hence this blog to share the process with you.

Preparation

If you haven't used hvcc in a long time, it might be good to review the preparation for the plugin build.

Requirements

In order to reproduce the compatibility issues and fix it, we need to:

  • Install Python2. This is because hvcc was based on python2 before it was discontinued, but recently some people in the community have been trying to migrate hvcc to python3.
  • Install Wwise2021.1.5.7749, the latest version of Wwise at the time I am writing this article (remember to download the SDK for the desired deployment plugin platform).
  • Download and extract hvcc, which for the purposes of this article I have placed in C:\hvcc_fix\hvcc-master.
  • Make a simple patch for testing. For example, I made the simple two-channel volume control program shown below, named stereoGain.pd.

  • Prepare the commands to be entered into the command line before compilation, save them in a text file or in streamdeck's shortcuts for quick input, for example: python2 hvcc.py c:\hvcc_fix\hvcc_Workspace\stereoGain.pd -n testTemplateChange -o c:\hvcc_fix\hvcc_Workspace\Builds\ -g wwise, see the following figure for the meaning of the different parts of the command. Refer to the hvcc documentation for more details.

image005

Note: If you are new to using PureData+hvcc to write plugins for Wwise, feel free to review the first two blog posts in this series.

How Sound Designers Use PureData + Heavy to Develop DSP Plug-ins - Part 1

How Sound Designers Use PureData + Heavy to Develop DSP Plug-ins - Part 2

Reproducing errors

Changing the SDK path

To generate plugins for Wwise2021.1.x version, we need to specify the Wwise2021.1.x SDK path for hvcc, which is easy for hvcc to utilize.

Thanks to the previous preparation, we can open the command line tool in the hvcc path and quickly compile the patch.

Go to C:\hvcc_fix\hvcc_Workspace\Builds\wwise\vs2015 after the compilation is done.

image007

When you open Hv_testTemplateChange_WwiseFXPlugin.sln with Visual Studio, you will find that the three .vcxproj's it contains cannot be loaded.

image008

This will happen if you have not changed the SDK information in the template, and I will explain how to change the VS template of hvcc later. The SDK in .vcxproj is still stuck at 2017 as seen in the image below.

We need to change the WwiseSDKPath to the version we expect to use, for example my Wwise2021.1.5.7749 is installed on the M drive, so I made the changes in the image below.

image010

Next reload the .vcxproj and you can start trying to build the plugin (reproduce the error). But before that, let's learn how to modify hvcc's VS project template for faster development.

Modifying the project template

Instead of modifying and reloading the sln every time it is generated, we can directly modify the VS solution template in hvcc's c2wwise framework to generate the sln and project with the correct version information at compile time.

As shown above, the templates to be used by hvcc for Wwise plug-in generation are stored in C:\hvcc_fix\hvcc-master\generators\c2wwise\templates\vs2015. We can open the three .vcxproj files with any text editing tool and modify their 35-37 lines of the SDK path information, then save and exit. This way, we can compile Patch afterwards to get the VS sln of the loaded plugin for the project.

Build (reproduce the compatibility issues)

Now it's time to build (reproduce the compatibility issues)!

Here I select the Profile 64-bit build configuration.

Click on Solution and then right-click and select Build Solution.

Not surprisingly, as reported by my friends in the community, the build failed with an error.

But don't panic yet.

The clue is in the log

Let's look at the Error List and we can notice a message that says: "GetGameObjectID is not a member of AK::IAKVoicePluginInfo".

From this, we can infer that if hvcc was able to build successfully with the previous version of the Wwise SDK, then the fact that GetGameObjectID is not found in AK::IAKVoicePluginInfo is the cause of the build failure, and we just need to find it again in the correct box.

So whose member is GetGameObjectID anyway?

Double click on the error entry C2039 and VS will jump to the location of the problematic code.

The following is the code before we made the change.

I tried replacing GetGameObjectID with GetPlayingID and the build worked! But you get the idea that we may have broken something while building successfully. So we should still go for a more reliable answer.

The answer

To get the exact and safe fix, I asked our CTO - Martin Dufour - and learned from him that GetGameObjectID has indeed been moved from AK::IAKVoicePluginInfo to somewhere else.

The fix is very simple, all we have to do is change GetVoiceInfo to GetGameObjectInfo in line 226!

Save and build again, and all is well!

Conclusion

Although Enzien Audio has stopped updating hvcc, that hasn't stopped people from continuing to use this solution. There are still many projects that use PD+hvcc for plugin prototyping and even in official projects.

It's also good to know that some people in the community are already trying to extend the life of hvcc by upgrading it to python3.

If you are interested, you can check out and subscribe to the news: https://github.com/Wasted-Audio/hvcc 

Chenzhong Hou (侯晨钟)

Senior Technical Sound Designer

Chenzhong Hou (侯晨钟)

Senior Technical Sound Designer

Chenzhong Hou is a sound designer, composer and music tech researcher. He used to work as a Product Expert for Greater China at Audiokinetic. Prior to that, he worked at Ubisoft Shanghai and was involved in the sound design of Just Dance and Far Cry series.

 @houchenzhong

댓글

댓글 달기

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

다른 글

Hitman 2: 최신 CPU에서 잔향(Reverb) 향상시키기

6 코어와 8 코어 CPU의 대중화는 아직 손대지 않은 여유 처리 능력을 게임에 사용할 수 있게 된다는 것을 의미하며, 그 중 일부를 플레이어의 오디오 환경을 향상시키는 데 사용할...

5.8.2020 - 작성자: 스테판 보예프 (STEPAN BOEV)

합성 만으로 빗소리 만들기

몇 년 전 저는 원하는 모든 사운드를 합성할 수 있을까 하는 궁금증이 생겼습니다. 바람, 새의 노랫소리, 곤충 소리 등 다양한 자연 소리를 합성하기 시작했죠. 이런 작업에서는...

3.9.2020 - 작성자: 알렉산더 킬코(ALEKSANDR KHILKO)

Impacter와 Unreal - 게임 물리를 사용하여 Impacter 플러그인 제어하기

소개 Impacter(임팩터)는 Wwise를 위한 새로운 타격음 모델링 플러그인입니다. 플러그인 소개는 이 글을 통해 확인해주세요. 이 글에서는 Impacter를 사용하여...

3.6.2021 - 작성자: 션 소라한 (Sean Soraghan)

Wwise+GME 게임 음성 솔루션: 다양한 음성 플레이 대방출, 생생한 몰입감 선사

AppAnnie2021 모바일 게임 리포트는 강력한 소셜 인터랙션 속성을 가진 배틀 그라운드, 슈팅 및 온라인 MOBA가 플레이어들의 사랑을 많이 받았으며 게임 시간 증가를...

13.1.2022 - 작성자: Tencent Cloud

새로워진 Wwise Audio Lab(WAL)을 소개합니다

Wwise Audio Lab(와이즈 오디오 랩, WAL)은 Unreal Engine 4를 통해 오픈 소스로 개발된 게임 형식의 3D 환경이며 Wwise 런처를 통해 제공됩니다....

19.1.2022 - 작성자: 데미안 캐스트바우어 (Damian Kastbauer)

Wwise 2022.1 새로운 기능

Wwise 2022.1이 출시되었으며 Audiokinetic 런처를 통해 다운받으실 수 있습니다. 이 버전이 제공하는 새로운 기능을 간략하게 소개해드리려고 합니다....

16.11.2022 - 작성자: Audiokinetic (오디오키네틱)

다른 글

Hitman 2: 최신 CPU에서 잔향(Reverb) 향상시키기

6 코어와 8 코어 CPU의 대중화는 아직 손대지 않은 여유 처리 능력을 게임에 사용할 수 있게 된다는 것을 의미하며, 그 중 일부를 플레이어의 오디오 환경을 향상시키는 데 사용할...

합성 만으로 빗소리 만들기

몇 년 전 저는 원하는 모든 사운드를 합성할 수 있을까 하는 궁금증이 생겼습니다. 바람, 새의 노랫소리, 곤충 소리 등 다양한 자연 소리를 합성하기 시작했죠. 이런 작업에서는...

Impacter와 Unreal - 게임 물리를 사용하여 Impacter 플러그인 제어하기

소개 Impacter(임팩터)는 Wwise를 위한 새로운 타격음 모델링 플러그인입니다. 플러그인 소개는 이 글을 통해 확인해주세요. 이 글에서는 Impacter를 사용하여...