- Wwise is the most advanced, feature-rich interactive audio solution for games. Whether you're an indie or a multi-million dollar production, Wwise will work for you. The Wwise audio solution has made its mark in the gaming industry and is now facilitating the advancement of interactive audio across multiple sectors.
- Audiokinetic Learning Videos.
- Shrinking Audio Files. Now, let’s talk about getting sounds that are slightly too big over a smaller sound. We can do this with Wwise and Audacity. Start Wwise and create a new project. Make note of where the project is located. We’re going to need to go to this location later to get our file.
Sound Swapping and the Wwise Format
What you need before sound swapping:
Wwise Download
- Wwise (Optional)--IMPORTANT: Newer versions of Wwise may not work! The .wem format seems to have changed in v2016.1.1. Download v2015.1.9 to be safe!
- A method to get your modified soundbank back into the game (either the QAR Tool or SnakeBite)
This tutorial is specifically for voice swapping. It can be used for some other audio files as well, but may not work for all audio files.
Created By: Game Audio Resource Ltd Date: Version: 2.00 In this guide, we will script material types to texture tiles, so the game engine can inform Wwise which footstep material type is being moved on by any entity in game.
First thing’s first. Update your GzsTool’s qar_dictionary.txt with the updated one you downloaded. Now you’re ready to unpack the chunk.dat files (with GzsTool) and find the soundbanks you want.
If you’re looking to swap a character’s voice, Snake’s soundbank is in chunk0, and all of the playable staff members’ are in chunk1. Inside either folder, go to “Assetstppsoundasset” and you’ll find the respective soundbanks. All soundbanks have the .sbp extension.
Wise Audio
Now, that you’ve found your soundbank, we can start getting sounds out of it! If you are planning on modifying this soundbank, there’s an extra step first. Drag the .sbp file onto GzsTool. GzsTool will unpack it and inside will be a .bnk, .sab and .stp file. The .bnk is a wwise audio container. The other two file formats seem to be related to 3D animation, but the .stp also contains wwise audio files.
The file we care about right now is the .bnk. Run Ravioli’s RScanner. Click “New Scan…”. Navigate to the folder that GzsTool unpacked the contents of the .sbp into and select the .bnk file. The contents of the .bnk will show up in RScanner’s window. Scroll to the bottom and look for the last file listed. There may be a file called Unkn####.dat after this file, but we can ignore it. We only care about the last file named File####.wwise_x (note that “x” can be any letter). In example, the last file in Snake’s voice’s .bnk is File0075.wwise_v. We need to remember the number of the file, this is important later. Following my example, I would need to remember 75.
Now, we can close RScanner and delete the folder and xml file that GzsTool extracted from the .sbp file. We don’t need the files inside the folder or the xml file anymore. All we needed was the number we found on the last file.
Next, we need to get all of the audio files in an audible format. Create a new folder that will hold the audible versions of your files. Change the extension on the .sbp file you’ve been working with to “.bnk”. Now, start RExtractor. Under “Input file(s)” select the .sbp file you just changed the extension on. Under “Output directory” select the new folder you created. Under options, select “Convert sounds to: Wave” and “Allow scanning of unknown files”. After that, click “Start” and allow it to finish. It may say some files failed to convert. Ignore and delete these files. They are likely not voice files anyway.
Hooray! You now have the files in an audible format! You can now close RExtractor. Now, we need to get the files in their original format. Create another new folder, which will hold the files in their original format. Change the extension of the .sbp you changed back to “.sbp”. Start RScanner again. Once again, click “New scan…”. Choose your .sbp file. This time, click “Extract All…” and select the newly created folder. Now we have the files both in an audible format and their original format!
Now, you’ll need to repeat the whole process up to this point on a second .sbp to get the files you want to swap in. However, you can skip the part where we opened the .sbp with GzsTool and opened the .bnk file with RScanner to see what the last file’s number was. We do not need this number since we aren’t editing this file.
Once you’ve got the files you want to swap in, we can get started on the fun part (by fun I mean very long and tedious). The first thing to do is to listen to all of the audio you extracted, so you know exactly what each file contains. It’s a good idea to note what every file is in a text editor and then reference your notes later. Once you’ve got your notes down, we can begin.
Remember the number we got earlier? This is where it’s going to come in handy. That number tells you which files came from the .bnk and which files came from the .stp. Using my Snake example, the number was 75. This means that File0001 - File0075 came from the .bnk. All of the others came from the .stp. Why is it important to know this? It’s much easier to swap over files from the .stp! You can just rename the file you want to swap in and replace the old one! This is NOT the case with .bnk files though. They require some manual hex editing to work correctly. When swapping in files, be weary of their file size. The size of the sound you’re swapping in must be smaller than or equal to the file size of the original. If a file is slightly too big to fit in, we can fix it with Audacity and Wwise (I’ll cover this later). If it’s much too big, it will not work. Find another file.
So now that you know the limitations of sound swapping, you can begin! Start by replacing all of the wwise files that came from the .stp. Again, you can do this by renaming the file you want to swap in to the original file’s name and then overwriting it.
Once you’re done that, we can talk about how to replace files from the .bnk. For each of these files, you’re going to need to edit them in HxD. (Note: size restrictions still apply with hex editing files.)
Don’t understand what the hex says? No problem! All of the work has been done for you already:
- 0x00 - 0x03: (32) 'RIFF' name
- 0x04 - 0x07: (32) Riff size
- 0x08 - 0x0A: (32) 'WAVE' name
- 0x0B - 0x0F: (32) Chunk type: 'fmt '
- 0x10 - 0x13: (32) Chunk size
- 0x14 - 0x15: (16) 0xFFFF (audio format) 0xFFFF means experimental
- 0x16 - 0x17: (16) Num of channels
- 0x18 - 0x1B: (32) Sample rate in Hz (stored backwards) ex: 44 AC 00 00 = 44100Hz
- 0x1C - 0x1F: (32) Avg bytes per second
- 0x20 - 0x21: (16) 0x0000 (block align)
- 0x22 - 0x23: (16) 0x0000 bits per sample (expected 0bps)
- 0x24 - 0x25: (16) Chunk size
- 0x26 - 0x27: (16) Extra fmt? (1 = yes)
- 0x28 - 0x2B: (32) Subtype (4 = 1 channel, no seek table)
- 0x2C - 0x2F: (32) Num of samples (num of bit per sample)
- 0x30 - 0x33: (32) Mod signal
- 0x34 - 0x35: (16) Data size (go to 0x5A - 0x5D)
- 0x36 - 0x39: (32) Setup packet offset
- 0x3A - 0x3D: (32) First audio packet offset
- 0x3E - 0x3F: Unknown
- 0x40 - 0x43: (32) Mod signal
- 0x44 - 0x47: Unknown
- 0x48 - 0x4D: Unknown relation to subtype
- 0x4E - 0x4F: (16) Padding(?)
- 0x50 - 0x53: (32) Uid
- 0x54: _blocksize_0_pow
- 0x55: _blocksize_1_pow
This is the layout for the wwise format’s header. It’s not necessary to understand what most of it means for what we’re doing. But if you’re getting into more advanced sound modding, this information is important.
Open up both the file you’re replacing and the file you want to replace it with in HxD. You’ll want to overwrite the following sections on the file you’re replacing by copying the same section from the file you’re replacing it with:
Wwise Spatial Audio
- 0x16 - 0x17 (very rarely necessary, but if it does differ, this needs to be overwritten)
- 0x18-0x1B
- 0x28-0x2B (again, very rarely necessary, but if it does differ, this needs to be overwritten)
- 0x48-0x4D (also rarely necessary, but if it differs, overwrite it)
- 0x50-0x53
That covers the header. Now to get the actual data in. On the file you’re replacing the original with, look for a string of text that says “data”. In most of MGSV’s wwise files there are two of these strings. We want the second one. (The first one is usually followed by a bunch of periods and then LIST. If you see this one, ignore it. If you find a wwise file that only has one data string, like custom built ones, follow the same process, but use the single data string.) After the four bytes following the string is the actual data. You’re going to want to highlight from this point all the way to the bottom of the file and copy it. You’re going to want to highlight this same section in the original file and paste over it.
Example: If I see “dataø...É” I want to start highlighting at the É since it is the fifth byte after the data string.
Once you’ve done that, you’re done editing the file! HxD will have created a .bak file of the file you edited. Delete the .bak file. We do not need it. Repeat this process for every file that came from the .bnk.
Done editing all of your files? Good! We can put the .sbp back together now. Start RScanner. Click “New scan…” and choose the .sbp. This time, click “Combine…”. Now choose the folder that contains the edited/replaced wwise files. It will probably tell you that it needs to add padding to the files to make them the correct size. Just keep clicking ok (or hold enter) until it’s done. Once it’s finished, you can either save the edited soundbank in a new place, or just overwright the old one. With that, you’re done! Just put the edited soundbank in the game and you should hear your changes.
Unleash your potential as an audio programmer or sound designer by learning the most reputable interactive audio software, Wwise. Getting certified online has never been easier with our free course material designed with your learning needs in mind.
The Wwise-101 Certification covers all the essentials you need to learn to get started with Wwise. Becoming Wwise-101 Certified grants you the opportunity of getting listed on the Creators Directory as a Content Provider, where you’ll be able to list your services where developers and content providers source interactive audio talent!
The Wwise certification program was developed in collaboration with CRAS, the Conservatory of Recording Arts and Sciences.
Contents of the certification
Get certifiedWatch related videosThe Wwise-201 Certification covers all the essentials you need to learn about Wwise for interactive music. We recommend that you take the Wwise-101 Certification prior to taking the Wwise-201 Certification.
The Wwise certification program was developed in collaboration with CRAS, the Conservatory of Recording Arts and Sciences.
Contents of the certification
Get certifiedWatch related videosThe Wwise-251 Certification covers a series of performance optimization techniques using Wwise. You will be able to apply course material and practice with the Wwise Adventure Game (WAG) while you learn to optimize performance for any platform, be it mobile, desktop, or console. We recommend that you take the Wwise-101 Certification prior to taking the Wwise-251 Certification.
Contents of the certification
Get certifiedWatch related videosThe Wwise-301 Certification covers everything you need to know about the Wwise Unity Integration. This is an advanced certification that assumes you already have good knowledge of Wwise. It helps you leverage the existing Wwise Unity Integration, and learn how to develop new custom scripts satisfying the most complex interactive systems. Using the Wwise Adventure Game, you will learn how to achieve artistic and technical goals for any project using the Wwise Unity Integration.
Contents of the certification
Get certifiedWatch related videos